There are people in the US federal government who are trying to defend against the serious stuff -- i.e. attacks made by organizations which have the resources of a nation-state. The ones I know of are in Defense, and they're mostly worried about attacks which would affect the course of a conventional war.
Their's one serious problem with their work, and they know it: they don't know what the attacks they're worried about look like. Nobody does, because nobody has ever carried out an attack in that class. Of course there are plans -- the assumption is that any nation with an appreciable military is working on a cyber offense. But those plans aren't available to the researchers doing defense, and they're untested.
Sure, they can figure out what they'd do, and they have some pretty good ideas. But it's still guessing.
I've noticed the following pattern in the few examples I know: cultures in which night soil is used on field crops tend to have culinary traditions in which almost all field crops get cooked. They don't eat green salads. I don't think that's a coincidence. And american farmers are much more likely to use (raw, non-human) manure on crops that do get cooked before eating and crops for animal consumption. It seems to me that -- and this isn't at odds with either the expert advice or your practice -- if something has been near feces-fertilized soil, follow the old "boil it, peel it, cook it, or forget it" rule.
I am quite suspicious of the argument that if it's mostly from you and your family, and you're healthy, it's OK. You probably have guests who use your toilet, and you probably don't know all that much about their health.
The TCPA chip doesn't have access to a big enough pipe to do move high-volume data.
According to this paper, the TCPA chip is on the LPC bus and is accessed by I/O mapped registers. LPC is the "Low Pin Count" bus, a 4-wire bus designed as a cheap way to link the CPU to low-bandwidth stuff like keyboards, serial, parallel, floppy, and maybe USB ports. It maxes out around 5 MBytes/sec -- nowhere near enough to keep up with a hard disk or a 100Mbit link. See the LPC bus spec if you want the gory details.
Here's an attempt at fossil fuel consumption estimates during the lifetime use of a car and a ram chip.
For the chip: I found one 32mbyte chip with a power consumption of 0.7 watts. It's a low-power chip, but let's use it. Say it's life is 25000 hours -- that's 17.5 kwh. Say that's generated with a gas or diesel engine -- unlikely, but it allows a direct comparison to a car. The examples I know come out on the order of 50 hp-hours per gallon of fuel (don't trust this number -- does anybody have a substantiated one?), which means 66kwh per gallon. That means about a quarter gallon of fuel, which is about 1 kg. If we believe the manufacturer's claim that most ram chips use 5x the power, then about 5 kg. So somewhere between 60% and 25% of the total fossil fuel is used during production.
For the car: say a life of 100k miles at 30mpg -- sounds like about 13000 kg fuel. That means that the energy used in production is between 10 and 19% of the total.
I agree that it isn't very meaningful to compare these numbers. And I wish this information were widely available, for many kinds of objects. I'd like to see it in front of people when they're buying.
If the restoration isn't trivial -- and it sounds to me like that's the case -- then she is creating a new work which is a derivative of her grandfather's work. Under that interpretation, she should have copyright to the restored versions. Any one else would be free to use the original. This means they could use the the script however they want, including filming a new version. If they can get hold of a copy of the original, they could do their own restoration. But they can't use the restored images or the new music without a license.
As a rule of thumb, figure 4 calories/gram for carbohydrates and proteins and 9 calories/gram for fats. So the minimum weight for 2000 calories is about a half pound, but that would be pure fat. Following conventional low-fat dietary advice would put it around a pound.
Of course, those are dry weights, so add a gallon of water and you're set for the day.
Some of these things already exist in sour versions, which some people like. And "rich in vitamin C" doesn't have to mean a concentration so high that it dominates the taste.
Bread: sourdough is popular in some regions
milk: how about sour cream? Or yoghurt -- it's usually sweetened until it's mostly sugar, but the acid is still there.
broccoli: the normal kind is a good source of vitamin C, and it doesn't taste sour.
There are probably some sour cheeses, too, but I can't think of any right now. And what is the acid produced by milk fermentation -- is it lactic acid?
Largely through Internet-based campaign
groups, Mr. Roh raised the equivalent of about $1-billion from more
than 180,000 individual donors
A billion dollars is way to much. Since the article is from a Canadian paper, presumably it's in Canadian dollars, equivalent to about $630M US. For the last US presidential election, Bush raised about $90M US and Gore a little less than $50M US. Korea is a much smaller country and a candidate like Roh who uses the net for most voter contact doesn't need as much money as one who buys TV ads. What's more, the average contribution per donor comes out to $5500 CA or $3500 US, which is more than 10 times the average contribution in the US.
That sounds very unusual. Typical US corporate procedure is not to give you a clue until you're done working, and then not to leave you alone until you're out the door. I know a guy at HP who is still technically an employee and doesn't have access to the site or his accounts. (IIRC, he has a couple months to look a job to transfer to within the company before he gets laid off and his severance pay starts.)
I guess it makes sense from the corporate prime directive of "maximize shareholder value". Presumeably the thinking is that you're loyal and you can't figure out you might be in line for the axe, but in the instant you get the news your loyalty evaporates. But it is not a reasonable model of how people work, and it is not humane.
It's been a while, but I believe I was manipulating pointers to objects to avoid all copying. The application was computationally intensive, but it was probably silly of me anyway. My C++ experience isn't extensive, and the implementation wasn't exactly modern.
You don't have to have amazing genes. The key is to start riding now, keep at it. Maintaining fitness is a lot easier at that age than building it. Here's
a guy I used to ride with.... he recently celebrated his 80th birthday with a big group ride of 80 kilometers...
And arthritis? I was diagnosed with it at 21. Tying this suit to a particular age is very crude at best.
Since even 1 amp of current can kill you (eg. a small battery), it
really is the voltages that chages the outcome.
Lethal current levels are much less than 1A. Most sources say fibrillation will start between 100-200mA for most people. One source said 75mA. And much lower currents than that will stop breathing for as long as a current flows -- some sources say 20mA. And if you read this as an assertion on my part that currents lower than that are safe, you seriously misread it. The information in this paragraph was mostly drawn from:
I'm not sure that a lower voltage would reduce fatalities,
though. It would increase current, and probably increase the risk
of fire from overheated wires. Which kills more, electrocution or
home fires?
Wires don't just combust. It's usually two nearby electrical contacts
(not sufficiently insulated) that cause a fire. If you increase the
voltage, the further away those two contacts could be while still
causing a short, and the more insulation would be needed to prevent
shorts. eg. Think of Lightning, Tesla Coil, Static, etc.
Wires are resistors. Connections, especially connections made by sloppy amateurs, are likely to have higher resistance than the wire around them. Too much current through a resister and it will get hot. When wires get hot enough, their insulation melts, and then the real trouble can begin. This may not seem like a likely problem, but much of typical US residential electrical code is aimed at it.
Lower voltage at the same power means higher current. Higher current means larger wires and bigger, more serious connectors that are more expensive and -- in my limited experience -- take more tools, skill and care to get right. My opinion, based on the above, is that if we ran our high-power appliances on a lower voltages, there would be more electrical fires.
Do not trust your life to the info in this comment. IANA
electrician or safety expert.
I don't think your disclaimer is suffecient. Through your whole post
you state these things as fact. Changing your style through the whole
article might have told people that you weren't sure of this
information... A disclaimer rarely makes an impact on a person's faith
in the information.
You wrote this about a short comment containing "As I understand it" and "(I'm not sure I completely believe that.)". And you wrote it in a post in which you confidently misstated a danger level by a factor of 10.
220 isn't much more dangerous than 110
on
Hardware Bits
·
· Score: 4, Informative
Perhaps if the standard US voltage was 220V like much of the world, there might be far
more fatalities.
The danger doesn't always increase with voltage. It's the current, and the duration of the current, that kills. And the resistance of a human body varies so much with so many variables that a factor of 2 in the voltage isn't likely to be the difference between life and death.
Voltage does affect how your muscles react to a shock, though. As I understand it, you are likely to close your hand tightly and involuntarily if you come into contact with voltages in the 100-250 range. If you can't break contact, you're in serious trouble, hence the old advice to touch the wire with the back of your hand first. But for voltages more than a few hundred volts, muscles react so strongly that you're likely to throw yourself clear, even if you make contact with your palm. (I'm not sure I completely believe that.) So both US and european line voltages are about as dangerous as any voltage we could have chosen.
I'm not sure that a lower voltage would reduce fatalities, though. It would increase current, and probably increase the risk of fire from overheated wires. Which kills more, electrocution or home fires?
Do not trust your life to the info in this comment. IANA electrician or safety expert.
I am aware of roundoff error. That's why there's a parenthetical "within roundoff error" in my previous message.:)
I don't have a much experience reading other people's code with overloaded operators. But I think overloading would help clarity if, and only if, the overloaded function is enough like the builtin version of the operator. At a minimum, the semantics need to be analogous and the presence or absense of side-effects needs to be the same. Overloading "=" to implement reference counting doesn't qualify in my book. (This is closer to what you just said than to what I initially proposed.)
After all, in many languages the builtins are essentially overloaded -- int+int isn't the same thing as double+double.
Re:But you can't guess what other types it would h
on
Java Gets Templates
·
· Score: 2
I've already included string concatenation with + -- the set of all finite strings from a given alphabet forms a semigroup under concatenation.
But you're basically right. I don't know how many mathematical types -- or properties -- I would want to add. It would probably be a few dozen, and undoubtedly more in the second release.
I don't want my languages telling me what to do any more than you do. But that's not where I'm going. I need both overloading and automated memory management, and I need them in a compiled general purpose OO language. But I only need overloading in a specific context where it really makes sense. I'd be quite happy with a design-by-contract setup which requires that the class fulfill (within roundoff error) the appropriate mathematical definition. E.g. to be a semigroup, you have to have the operator be associative. That is, (a+b)+c == a+(b+c).
And that shouldn't trigger the (legitimate, IMO) complaints that overloading-heavy code is write-only.
If an elected official and sets the fee at $10k or $100k per call, they've just come clean about being coin-operated. But are these fees campaign contributions? Or are they earned income?
I'm a mathematician. I do arithemetic operations with types that aren't built in to the language. And they aren't all exotic -- things like vector addition. (no, not the misnamed java.util.Vector.) If x,y,z are n-dimensional vectors, how to you code w=x+y+z? I want the code to look the way it does for builtins:
Vector w=x+y+z;
Otherwise, the math gets _badly_ obfuscated and buried in minutia. I have yet to use a language that allowed it. (Yes, this is a pet peeve.)
And I don't buy that it won't be clear what "+" means in each case. It means the addition operation that makes mathematical sense given the operands. If that isn't clear to you, you aren't going to get the code no matter how it's written.
Example time. The addition code is written for binary (2 argument) addition, because you shouldn't have to write more than. Assume addition code also allocates the memory or invokes the constructor for the result, because it gets *really* ugly if it doesn't.
C: You have to use a name instead of "+", and you have to manage the memory. I wrote a few thousand of lines of this stuff as a grad student.
C++: You can use "+", but you still have to manage the memory. [It's possible to do better if you overload "=" to do reference counting. But if you don't like overloading "+", you really won't like that.]
Vector temp = x+y; Vector w = temp+z; ~temp();
Java: You don't have to manage the memory, but you are back to using names:
Vector w = x.add(y).add(z);
If these examples don't seem very messy, see what (a*x*x+b*x+c)/(d*x*x+e*x+f) turns into if you change the variables from doubles to some object type -- say representing complex numbers. And remember that that's pretty simple as math expressions go.
Here's what I propose: don't let the programmer overload "+" arbitrarily. But for classes which implement certain kinds of mathematical entities, have a set of methods they must implement with the types that make mathematical sense. E.g. if class foo claims to be a vector, it must implement
public foo add(foo, foo) public foo scalarMultiply(double, foo) public foo scalarMultiply(foo, double)
Then overload the standard arithmetic operators with these methods. It should be possible to make it work well for mathematical objects, but unpleasant for anyone who wants to tries to cheat the system.
Plastic is a useful material, and there are times when it is a better choice than anything else. But an awful lot of plastic used today isn't necessary. Consider a typical plastic toy for a preschooler. Plastic is often a good choice for the toy itself -- you can make odd shapes easily, and the result can be smooth, rugged, and rustproof with no paint to put on or chip/wear off. But when you buy it, it's nested in a plastic box-filler, in a box which is shrink-wrapped, and you take it out of the store in a plastic bag. That's four layers of packaging, three of them plastic. One of the layers may be necessary, but only if there are multiple pieces.
Furthermore, plastic is only "easily and cheaply recycleable" if you leave a bunch of things out of the numbers:
Only PETE (#1) and HDPE (#2) are recycled in any volume; other plastics are almost completely burned or landfilled.
Recycled plastic bottles aren't made into new plastic bottles. They're made into things like "plastic lumber" and carpets. Then they're landfilled. So much for repeated use.
Cleaning and de-labeling a plastic bottle isn't usually a big deal -- but do you know how hard it is to wash out a thin plastic bag? How about separating the plastic in a bubble-pack from the paper?
Because beverage bottles are low density (i.e. very bulky for their weight) they are a nuisance to transport. The truck fuel used transporting them isn't trivial.
Plastic recycling is a sham. I do it, because it might someday evolve into something real, and because twice through is better than once through. But mostly I try to buy less plastic packaging.
Intermediaries serving the public should probably be prohibited from
sniffing traffic they relay, with a limited exception maintenance and
debugging needs. They could be prohibited by common-carrier status,
or by contractual obligation to their peers and customers. There is a
contract or a chain of contracts (explicit, traditional contracts made by
humans and put executed before service begins, not implied contracts or
stuff on a TOS page) between each endpoint and their backbone, and explicit
arrangements trump general principles like protocol-is-law.
Of course, if you walk up and use a public 802.11b network, there is no
such contract. But you expect eavesdropping there, don't you? After all,
there's a longstanding principle (with some recent breaches, notably as
cellphone traffic) that it's legal to use any signal that hits your
antenna.
Even without such prohibitions, I have some protection. If a third party
uses my credit card number without my authorization they're committing
fraud, regardless of how they got it. I don't see how I could be said to
have authorized the sniffer to use it. An intermediate host is like a
cashier who runs my card in a store -- it is possible for them to learn the
number, but they are not authorized to use it. Similarly, for most of the
obvious examples -- legal evidence, intellectual property, inside
information on stocks -- the sniffer is prohibited from using the info by
other laws. And if the sniffer cracked the intermediate host, then they're
already across the line.
Not all cases are protected, though. There are cases in which the info can
be used only if it was obtained legally -- suppose the sniffer is a
journalist and the content is a salacious email from Bill to Monica. (If
you want a web example, assume Monica is using hotmail and that it's the
web traffic that is sniffed.)
Web interactions can be described at two levels. The first, and the only one nontechnical folks know about, is the human level. Here interactions are described as they are perceived by a human using standard tools. That is, when I click a link I'm asking for a page as rendered by default configuration Netscape or IE -- a bundle of content which you're offering as a bundle and which I see only as a bundle. If this is the way you understand web interactions, then accusations of theft make sense. But it's an abstraction that doesn't reflect what's really going on.
The truth is at another level, which is network level. Under HTTP, I request a chunk of data and, your server may or may not send it to me. That's it. The protocol says nothing about what I do with the data once I have it -- my computer is my agent, not yours. In particular, it says nothing about whether or not I will follow any suggestions to request other chunks of data. The protocol says nothing about what whether or not I'm using the standard tools. (It does suggest that I tell you, but I see that as a detail of the request -- "I want the version you've prepared for IE5".) Those are the real terms of use. If you're server sends out data on those conditions, you've implicitly agreed to them
(This doesn't give me license to violate copyright law or commit identity theft. Those are illegal independently of any protocol.)
If you want to make sure I download your ads, use a protocol (or server configuration) which is a better fit for your abstraction. You can:
Configure your server to deny content requests until the ads has been downloaded. E.g. don't serve me part 2 unless I've downloaded the ads in part 1 (tale.com does this), or put the content I want in a frame that I have to load last. [But there's no way to tell whether or not I've displayed the ads.]
Use a protocol in which the whole page -- text, images, and all -- are transfered in a single bundle, like a zipfile or tarball. The protocol makes it clear that the ads and the content are a package. [There's no way to tell whether or not I've displayed them here, either].
Require me to use code you trust. It could be a signed version of a standard app or your own applet. [But the only way you can require it is by serving the content only to machines that have proven that they know some secret. With fully programmable computers -- i.e. not crippled by "trusted computing" hardware -- the secret will be be DeCSSed.]
In other words, you can readily force me to download the ads, but forcing me to display them is just another DRM use case. Or maybe it's a DMCA issue.
The protocol is the law. Or at least it should be -- reality may differ.
This is the real point here. Think about the business travellers who fly weekly or more. They'll jump through the hoops for convenience, and they are the airlines' bread and butter.As long as they are in the same line with everybody else, the security checks can't be too slow or invasive. When they get the option of a fast lane, they'll take it. Once they're gone, the "normal" lane can get more and more onerous.
Comcast is buying the service away from AT&T, so AT&T's business plan and history running common-carrier networks are irrelevant. As far as I can tell, Comcast is doesn't get it. But there's some hope, because (last I heard) some of the AT&T execs will be moving to Comcast as well.
If the intruder is sitting behind the dumpster typing on his laptop, and it's the middle of the night, then your security guards have a number of courses of action that could be quite effective. But if he's in a busy starbucks, appearing to mind his own business, what can the security guard practically do?
I'd guess that you'd have enough data show probable cause and get a warrant, but the latency is a bit long.
I do agree that spatially locating the intruder would be useful. At the very least, it's another way of detecting (most) intruders. And if you really want to use location info to do the vigilante thing, maybe you could fry his wifi card with a few hundred watts of microwaves in a directed beam.
... A public e-mail address does not
provide a way to ensure that 10th District residents get priority in reaching
me over the Internet.
If you want the writerep page for a rep who isn't yours, all you need is the state and the zip+4 of some address in his district. (Or just a zip, assuming USPS's zip+4 lookup works. It tells me I don't exist.) Conveniently, every rep has an office in their district, and makes its address easy to find.
At least someone on Wolf's staff knows the difference between email and webforms. Everytime I see a rep's "email me"
link lead to writerep, I want to flood them with messages saying "WEBFORMS ARE NOT EMAIL!"
Their's one serious problem with their work, and they know it: they don't know what the attacks they're worried about look like. Nobody does, because nobody has ever carried out an attack in that class. Of course there are plans -- the assumption is that any nation with an appreciable military is working on a cyber offense. But those plans aren't available to the researchers doing defense, and they're untested.
Sure, they can figure out what they'd do, and they have some pretty good ideas. But it's still guessing.
I've noticed the following pattern in the few examples I know: cultures in which night soil is used on field crops tend to have culinary traditions in which almost all field crops get cooked. They don't eat green salads. I don't think that's a coincidence. And american farmers are much more likely to use (raw, non-human) manure on crops that do get cooked before eating and crops for animal consumption. It seems to me that -- and this isn't at odds with either the expert advice or your practice -- if something has been near feces-fertilized soil, follow the old "boil it, peel it, cook it, or forget it" rule.
I am quite suspicious of the argument that if it's mostly from you and your family, and you're healthy, it's OK. You probably have guests who use your toilet, and you probably don't know all that much about their health.
According to this paper, the TCPA chip is on the LPC bus and is accessed by I/O mapped registers. LPC is the "Low Pin Count" bus, a 4-wire bus designed as a cheap way to link the CPU to low-bandwidth stuff like keyboards, serial, parallel, floppy, and maybe USB ports. It maxes out around 5 MBytes/sec -- nowhere near enough to keep up with a hard disk or a 100Mbit link. See the LPC bus spec if you want the gory details.
Here's an attempt at fossil fuel consumption estimates during the lifetime use of a car and a ram chip.
For the chip: I found one 32mbyte chip with a power consumption of 0.7 watts. It's a low-power chip, but let's use it. Say it's life is 25000 hours -- that's 17.5 kwh. Say that's generated with a gas or diesel engine -- unlikely, but it allows a direct comparison to a car. The examples I know come out on the order of 50 hp-hours per gallon of fuel (don't trust this number -- does anybody have a substantiated one?), which means 66kwh per gallon. That means about a quarter gallon of fuel, which is about 1 kg. If we believe the manufacturer's claim that most ram chips use 5x the power, then about 5 kg. So somewhere between 60% and 25% of the total fossil fuel is used during production.
For the car: say a life of 100k miles at 30mpg -- sounds like about 13000 kg fuel. That means that the energy used in production is between 10 and 19% of the total.
I agree that it isn't very meaningful to compare these numbers. And I wish this information were widely available, for many kinds of objects. I'd like to see it in front of people when they're buying.
If the restoration isn't trivial -- and it sounds to me like that's the case -- then she is creating a new work which is a derivative of her grandfather's work. Under that interpretation, she should have copyright to the restored versions. Any one else would be free to use the original. This means they could use the the script however they want, including filming a new version. If they can get hold of a copy of the original, they could do their own restoration. But they can't use the restored images or the new music without a license.
As a rule of thumb, figure 4 calories/gram for carbohydrates and proteins and 9 calories/gram for fats. So the minimum weight for 2000 calories is about a half pound, but that would be pure fat. Following conventional low-fat dietary advice would put it around a pound.
Of course, those are dry weights, so add a gallon of water and you're set for the day.
-
Bread: sourdough is popular in some regions
-
milk: how about sour cream? Or yoghurt -- it's usually sweetened until it's mostly sugar, but the acid is still there.
-
broccoli: the normal kind is a good source of vitamin C, and it doesn't taste sour.
There are probably some sour cheeses, too, but I can't think of any right now. And what is the acid produced by milk fermentation -- is it lactic acid?groups, Mr. Roh raised the equivalent of about $1-billion from more
than 180,000 individual donors
A billion dollars is way to much. Since the article is from a Canadian paper, presumably it's in Canadian dollars, equivalent to about $630M US. For the last US presidential election, Bush raised about $90M US and Gore a little less than $50M US. Korea is a much smaller country and a candidate like Roh who uses the net for most voter contact doesn't need as much money as one who buys TV ads. What's more, the average contribution per donor comes out to $5500 CA or $3500 US, which is more than 10 times the average contribution in the US.
I suspect the reporter slipped a digit or two.
That sounds very unusual. Typical US corporate procedure is not to give you a clue until you're done working, and then not to leave you alone until you're out the door. I know a guy at HP who is still technically an employee and doesn't have access to the site or his accounts. (IIRC, he has a couple months to look a job to transfer to within the company before he gets laid off and his severance pay starts.)
I guess it makes sense from the corporate prime directive of "maximize shareholder value". Presumeably the thinking is that you're loyal and you can't figure out you might be in line for the axe, but in the instant you get the news your loyalty evaporates. But it is not a reasonable model of how people work, and it is not humane.
It looks like you're right and I was wrong.
It's been a while, but I believe I was manipulating pointers to objects to avoid all copying. The application was computationally intensive, but it was probably silly of me anyway.
My C++ experience isn't extensive, and the implementation wasn't exactly modern.
And arthritis? I was diagnosed with it at 21. Tying this suit to a particular age is very crude at best.
evilviper (135110) wrote:
http://www.cdc.gov/niosh/elecovrv.html
Since even 1 amp of current can kill you (eg. a small battery), it
really is the voltages that chages the outcome.
Lethal current levels are much less than 1A. Most sources say fibrillation
will start between 100-200mA for most people. One source said 75mA. And
much lower currents than that will stop breathing for as long as a current
flows -- some sources say 20mA. And if you read this as an assertion on my
part that currents lower than that are safe, you seriously misread it. The
information in this paragraph was mostly drawn from:
http://pchem.scs.uiuc.edu/pchemlab/electric.htm
http://msis.jsc.nasa.gov/sections/section06.htm
I'm not sure that a lower voltage would reduce fatalities,
though. It would increase current, and probably increase the risk
of fire from overheated wires. Which kills more, electrocution or
home fires?
Wires don't just combust. It's usually two nearby electrical contacts
(not sufficiently insulated) that cause a fire. If you increase the
voltage, the further away those two contacts could be while still
causing a short, and the more insulation would be needed to prevent
shorts. eg. Think of Lightning, Tesla Coil, Static, etc.
Wires are resistors. Connections, especially connections made by sloppy
amateurs, are likely to have higher resistance than the wire around them.
Too much current through a resister and it will get hot. When wires get
hot enough, their insulation melts, and then the real trouble can begin.
This may not seem like a likely problem, but much of typical US residential
electrical code is aimed at it.
Lower voltage at the same power means higher current. Higher current means
larger wires and bigger, more serious connectors that are more expensive
and -- in my limited experience -- take more tools, skill and care to get
right. My opinion, based on the above, is that if we ran our high-power
appliances on a lower voltages, there would be more electrical fires.
Do not trust your life to the info in this comment. IANA
electrician or safety expert.
I don't think your disclaimer is suffecient. Through your whole post
you state these things as fact. Changing your style through the whole
article might have told people that you weren't sure of this
information... A disclaimer rarely makes an impact on a person's faith
in the information.
You wrote this about a short comment containing "As I understand it" and
"(I'm not sure I completely believe that.)". And you wrote it in a post in
which you confidently misstated a danger level by a factor of 10.
The danger doesn't always increase with voltage. It's the current, and the duration of the current, that kills. And the resistance of a human body varies so much with so many variables that a factor of 2 in the voltage isn't likely to be the difference between life and death.
Voltage does affect how your muscles react to a shock, though. As I understand it, you are likely to close your hand tightly and involuntarily if you come into contact with voltages in the 100-250 range. If you can't break contact, you're in serious trouble, hence the old advice to touch the wire with the back of your hand first. But for voltages more than a few hundred volts, muscles react so strongly that you're likely to throw yourself clear, even if you make contact with your palm. (I'm not sure I completely believe that.) So both US and european line voltages are about as dangerous as any voltage we could have chosen.
I'm not sure that a lower voltage would reduce fatalities, though. It would increase current, and probably increase the risk of fire from overheated wires. Which kills more, electrocution or home fires?
Do not trust your life to the info in this comment. IANA electrician or safety expert.
I am aware of roundoff error. That's why there's a parenthetical "within roundoff error" in my previous message. :)
I don't have a much experience reading other people's code with overloaded operators. But I think overloading would help clarity if, and only if, the overloaded function is enough like the builtin version of the operator. At a minimum, the semantics need to be analogous and the presence or absense of side-effects needs to be the same. Overloading "=" to implement reference counting doesn't qualify in my book. (This is closer to what you just said than to what I initially proposed.)
After all, in many languages the builtins are essentially overloaded -- int+int isn't the same thing as double+double.
I've already included string concatenation with + -- the set of all finite strings from a given alphabet forms a semigroup under concatenation.
But you're basically right. I don't know how many mathematical types -- or properties -- I would want to add. It would probably be a few dozen, and undoubtedly more in the second release.
I don't want my languages telling me what to do any more than you do. But that's not where I'm going. I need both overloading and automated memory management, and I need them in a compiled general purpose OO language. But I only need overloading in a specific context where it really makes sense. I'd be quite happy with a design-by-contract setup which requires that the class fulfill (within roundoff error) the appropriate mathematical definition. E.g. to be a semigroup, you have to have the operator be associative. That is, (a+b)+c == a+(b+c).
And that shouldn't trigger the (legitimate, IMO) complaints that overloading-heavy code is write-only.
If an elected official and sets the fee at $10k or $100k per call, they've just come clean about being coin-operated. But are these fees campaign contributions? Or are they earned income?
I'm a mathematician. I do arithemetic operations with types that aren't built in to the language. And they aren't all exotic -- things like vector addition. (no, not the misnamed java.util.Vector.) If x,y,z are n-dimensional vectors, how to you code w=x+y+z? I want the code to look the way it does for builtins:
Vector w=x+y+z;
Otherwise, the math gets _badly_ obfuscated and buried in minutia. I have yet to use a language that allowed it. (Yes, this is a pet peeve.)
And I don't buy that it won't be clear what "+" means in each case. It means the addition operation that makes mathematical sense given the operands. If that isn't clear to you, you aren't going to get the code no matter how it's written.
Example time. The addition code is written for binary (2 argument) addition, because you shouldn't have to write more than. Assume addition code also allocates the memory or invokes the constructor for the result, because it gets *really* ugly if it doesn't.
C: You have to use a name instead of "+", and you have to manage the memory. I wrote a few thousand of lines of this stuff as a grad student.
double *temp = vectoradd(x,y);
double *w = vectoradd(temp,z);
free(temp);
C++: You can use "+", but you still have to manage the memory. [It's possible to do better if you overload "=" to do reference counting. But if you don't like overloading "+", you really won't like that.]
Vector temp = x+y;
Vector w = temp+z;
~temp();
Java: You don't have to manage the memory, but you are back to using names:
Vector w = x.add(y).add(z);
If these examples don't seem very messy, see what (a*x*x+b*x+c)/(d*x*x+e*x+f) turns into if you change the variables from doubles to some object type -- say representing complex numbers. And remember that that's pretty simple as math expressions go.
Here's what I propose: don't let the programmer overload "+" arbitrarily. But for classes which implement certain kinds of mathematical entities, have a set of methods they must implement with the types that make mathematical sense. E.g. if class foo claims to be a vector, it must implement
public foo add(foo, foo)
public foo scalarMultiply(double, foo)
public foo scalarMultiply(foo, double)
Then overload the standard arithmetic operators with these methods. It should be possible to make it work well for mathematical objects, but unpleasant for anyone who wants to tries to cheat the system.
Furthermore, plastic is only "easily and cheaply recycleable" if you leave a bunch of things out of the numbers:
Plastic recycling is a sham. I do it, because it might someday evolve into something real, and because twice through is better than once through. But mostly I try to buy less plastic packaging.
Of course, if you walk up and use a public 802.11b network, there is no such contract. But you expect eavesdropping there, don't you? After all, there's a longstanding principle (with some recent breaches, notably as cellphone traffic) that it's legal to use any signal that hits your antenna.
Even without such prohibitions, I have some protection. If a third party uses my credit card number without my authorization they're committing fraud, regardless of how they got it. I don't see how I could be said to have authorized the sniffer to use it. An intermediate host is like a cashier who runs my card in a store -- it is possible for them to learn the number, but they are not authorized to use it. Similarly, for most of the obvious examples -- legal evidence, intellectual property, inside information on stocks -- the sniffer is prohibited from using the info by other laws. And if the sniffer cracked the intermediate host, then they're already across the line.
Not all cases are protected, though. There are cases in which the info can be used only if it was obtained legally -- suppose the sniffer is a journalist and the content is a salacious email from Bill to Monica. (If you want a web example, assume Monica is using hotmail and that it's the web traffic that is sniffed.)
Web interactions can be described at two levels. The first, and the only one nontechnical folks know about, is the human level. Here interactions are described as they are perceived by a human using standard tools. That is, when I click a link I'm asking for a page as rendered by default configuration Netscape or IE -- a bundle of content which you're offering as a bundle and which I see only as a bundle. If this is the way you understand web interactions, then accusations of theft make sense. But it's an abstraction that doesn't reflect what's really going on.
The truth is at another level, which is network level. Under HTTP, I request a chunk of data and, your server may or may not send it to me. That's it. The protocol says nothing about what I do with the data once I have it -- my computer is my agent, not yours. In particular, it says nothing about whether or not I will follow any suggestions to request other chunks of data. The protocol says nothing about what whether or not I'm using the standard tools. (It does suggest that I tell you, but I see that as a detail of the request -- "I want the version you've prepared for IE5".) Those are the real terms of use. If you're server sends out data on those conditions, you've implicitly agreed to them
(This doesn't give me license to violate copyright law or commit identity theft. Those are illegal independently of any protocol.)
If you want to make sure I download your ads, use a protocol (or server configuration) which is a better fit for your abstraction. You can:
- Configure your server to deny content requests until the ads has been downloaded. E.g. don't serve me part 2 unless I've downloaded the ads in part 1 (tale.com does this), or put the content I want in a frame that I have to load last. [But there's no way to tell whether or not I've displayed the ads.]
- Use a protocol in which the whole page -- text, images, and all -- are transfered in a single bundle, like a zipfile or tarball. The protocol makes it clear that the ads and the content are a package. [There's no way to tell whether or not I've displayed them here, either].
- Require me to use code you trust. It could be a signed version of a standard app or your own applet. [But the only way you can require it is by serving the content only to machines that have proven that they know some secret. With fully programmable computers -- i.e. not crippled by "trusted computing" hardware -- the secret will be be DeCSSed.]
In other words, you can readily force me to download the ads, but forcing me to display them is just another DRM use case. Or maybe it's a DMCA issue.The protocol is the law. Or at least it should be -- reality may differ.
This is the real point here. Think about the business travellers who fly weekly or more. They'll jump through the hoops for convenience, and they are the airlines' bread and butter.As long as they are in the same line with everybody else, the security checks can't be too slow or invasive. When they get the option of a fast lane, they'll take it. Once they're gone, the "normal" lane can get more and more onerous.
Comcast is buying the service away from AT&T, so AT&T's business plan and history running common-carrier networks are irrelevant. As far as I can tell, Comcast is doesn't get it. But there's some hope, because (last I heard) some of the AT&T execs will be moving to Comcast as well.
I'd guess that you'd have enough data show probable cause and get a warrant, but the latency is a bit long.
I do agree that spatially locating the intruder would be useful. At the very least, it's another way of detecting (most) intruders. And if you really want to use location info to do the vigilante thing, maybe you could fry his wifi card with a few hundred watts of microwaves in a directed beam.
Put your wireless network segment behind a firewall which proxies encrypted SSH connections and passes nothing else.
If you want the writerep page for a rep who isn't yours, all you need is the state and the zip+4 of some address in his district. (Or just a zip, assuming USPS's zip+4 lookup works. It tells me I don't exist.) Conveniently, every rep has an office in their district, and makes its address easy to find.
At least someone on Wolf's staff knows the difference between email and webforms. Everytime I see a rep's "email me" link lead to writerep, I want to flood them with messages saying "WEBFORMS ARE NOT EMAIL!"