Of course, you can do better still. For mac addresses, try:
^([[:xdigit:]]{2}:){5}[[:xdigit:]]{2}$ [:xdigit:] is short for hexadecimal digits, i.e. a-fA-F0-9 We can also loop 5 times over the 'XX:' sections.
How about some sort of vmware (or kqemu etc) hack using dragon, then either write to a named pipe (if that's possible), or make the file network mounted, and auto-save every 10 seconds? Actually, you could set Dragon up to input into a browser text-box, and do some AJAXy stuff to capture stdout....
One thing you can do is use ionice. ionice is the equivalent of "nice", but for disk-bound, rather than cpu-bound processes. That will keep the system a bit more responsive.
> php sucks as a general purpose scripting language
Really? I have to say, I think PHP-CLI is pretty good. I tend to write long scripts in PHP, and shorter ones in bash. I've not come across anything that has ever required me to learn perl yet...
The more money the US pours down the drain, the less remains for them to do harm. If a general watches a DVD, not only does it divert money that would have been spent on weapons for killing people, it also takes an hour of his time away from planning the next crime against humanity.
(I am reminded of the old joke about the fire at the offices of the Inland Revenue Service: the fire-department's prompt response meant that it was extinguished before any serious good could be done.)
I use the internal trackpoint for most navigation, and relegate the external mouse to graphic design. Much quicker, since you don't have to context-switch to use the mouse.w
As a Eurpoean (who used to believe in the "American Dream"), I'm thoroughly sick of the way the US behaves, and I'm disgusted that none of our leaders have the nerve to tell the regime to get lost. The EU should cease all co-operation with the USA until the USA starts behaving like a free country. Guantanamo alone is such a blot that the EU should have imposed trade sanctions over it (like we did to apartheid South-Africa).
I hadn't thought of that. I assumed it was just a case of adding another 1kg or so of whatever isotope is used. But actually, if you doubled the mass of RTG, and used an isotope with a longer half-life, you wouldn't need a larger radiator.
Quite a few spacecraft seem to run out of power due to failing RTGs. Admittedly, these are the ones that already perform *much* better than their design-lifetime (so Kudos to the designers), but why not just equip them with a little more of the relevant isotope? After all, the mass required is really quite small, and when the missions succeed, it would be great to have a 50+ year lifespan. Is there a good reason why the amount of isotope is limited, or is it just that nobody ever expected the craft to function so well and for so long?
The easy way is just to find some subset of your electrical appliances, and arrange them with a switch, to be supplied by either your own electricity, or the grid. This is trivial to do manually, and can be automated with a relay. The downsides are:
- at the moment of switchover, your appliance gets cut off.
- you are always wasting some or all of your power - assuming that both supply and demand vary, and the switching is granular. To some extent, you can improve on this by using a UPS downstream of your switch.
This isn't exactly an "efficient" solution, but it will work, and it's simple and cheap.
I see what you mean. I decided quite early on that I could put the "intelligence" either in the database, or in the PHP, but I didn't want half of each. Given that the PHP has to handle errors, wherever they come from, I decided to do everything in PHP, and treat the database as dumb. By this, I mean that all database queries are guaranteed to succeed without error because the query is known in advance to be valid. (If the database query does return an error, this is allowed to terminate the script with a fatal error).
Also, Postgres doesn't usually require explicit joins - in fact, I've just checked: out of 320 sql queries, I have not a single instance of the join keyword! You can just write much more naturally:
SELECT alpha, beta FROM table_one, table_2 WHERE table_one.gamma = table_two.gamma (in this example, table_one has columns alpha, gamma, and table_two has columns beta, gamma)
Can you give me a reference on the performance improvement from a prepared statement? As for query-builders, I tend to just use kwrite which does pretty much everything I can ask of it. (My dev suite is kwrite, konsole, bash, psql, apache, and firefox). Seriously though - what kind of query takes several *hundred* lines?
Thank you for a very good answer. I do see your points. That said, I still can't see any good reason why magic-quotes is considered harmful to the point of being completely ripped out, only that there might be some people who prefer to turn it off. magic-quotes seems to be getting the same treatment as the (genuinely harmful) register-globals. Also, Postgres doesn't seem to have the issue of escape_string() vs real_escape_string().
I have written quite a lot of detailed SQL, and it's much easier to write in string form. It's certainly easier to understand it when debugging, and it's useful to be able to easily copy-paste between the php-code and the psql terminal, as well as being more helpful when grep-ing. Saving multiple lines of code per query is good too - I find that the increased clarity makes it far easier to "see the wood for the trees."
With the Magic Quotes feature (on by default), PHP is unconditionally safe against SQL injection. All input data (GET,POST,COOKIES) are automatically parsed to backslash-escape single-quote, double-quote, and backslash. So, you can just use the input data, and never worry about compromise. (In my view, this is a very good idea, and the fail-safe nature is well worth the slight-inconvenience of having to occasionally remember to call stripslashes() if your data is not going to end up a database.)
What I cannot understand is why magic-quotes has been deprecated for PHP-6. Can anyone explain?
BTW, I'm not convinced by the advantages of stored procedures. Yes, they save you from SQL-injection risk (similar to magic-quotes), but the complexity of the resulting code is higher, and the readability is lower. Debugging cpomplex queries is hard enough already!
We should be a little more honest here, and call these laptops "shortscreen". You never gain extra area to the sides, you just loose it from the top. Also, the "it's better for DVDs" argument is nonsense: just add black bars to top + bottom in the rare occasions when using it for certain types of film. Even this isn't always true: I just bought a new laptop for video-editing, and specifically hunted down one of the last 4:3 screens, because the camera is 4:3, and because widescreen is idiotic when the subject is people. When you are trying to film one or two people (in dialog, or standing up), the best orientation is actually portrait mode - widescreen forces you to crop the top and bottom, and have wasted space on the sides.
> I'm surprised you haven't suggested that people only run their LCD screens at their native resolution.
Sorry - I thought that was too obvious. Surely, you have to be *insane* to run an LCD at the wrong resolution. That said, I have seen too many cases of people doing it (though surely not slashdot readers;-) )
Turn off antialiasing. (sometimes called "cleartype"). AA-fonts are "blurry" because they try to make the curves smoother than is actually possible with the native resolution. The resulting grey edges appear "out of focus" and give eye-strain. In comparison, non-aa fonts may look slightly less aesthetic, but are far easier to read. Sub-pixel rendering is also bad: it gives colour-fringes.
Then, set the brightness down a little. (I also prefer a very pale yellow background to a white one). Also, sit further back, and use a larger font: focusing too close makes the eye-muscles tired, as well as "stressing" the lens.
Personally, I bought 2 x 20" 1600x1200 LCDs 4 years ago for this very reason. It cost nearly $2500 back then, but I was ruining my eyesight being hunched over a laptop.
On Linux, disable all antialising (except for headline fonts > 15pt); disable sub-pixel rendering; enable full hinting, and choose a font designed to be hinted rather than antialiased: my favourites are MS Tahoma, and Terminus. To make hinting work properly, you have to enable the bytecode interpreter in freetype: Debian/Ubuntu do this by default; Mandriva requires the PLF version of libfreetype, because some unhelpful people have a software-patent on it.
All the older thinkpads had the full 3 audio jacks. I'm actually recording from a mixing desk, so a stereo input at a sensible level (without huge amounts of noise) is much more useful. It costs almost nothing to add, and makes the laptop useful for 5.1 stereo too, so why not keep it? Likewise with firewire - not that useful to that many people, but if you do need it, it's a real pain having to fiddle with PCMCIA cards.
I agree with you that it is useful to have a wider screen. What bugs me is that the the laptops with allegedly "wider" screens have less area than their 4:3 counterparts. I'm not saying that movies are a bad idea, only that most laptop designers seem to think of movies as the *primary* justification for an expensive laptop! Incidentally, I do video-recording and real-time streaming on a T60, for which we explicitly hunted down a rare 4:3 LCD. For most video applications when people, rather than nature are the subject, the field of view has more width than necessary, and never enough height!
The old latches on the A22 etc were actually very very clever - you could open with one hand, one after the other. It was designed for disabled users, but very useful to me when I had only one hand free. Lenovo seem to have missed the point! Also, the thinklight and magnesium case have been standard for years.
I do use the Ctrl/Alt keys a lot, so I miss having large ones, whereas the Win keys are useless to me. Also, the nice thing about the Intel graphics is that is has proper working open-source drivers. The nvidia cards have good drivers, but they are closed source which means they don't "just work". The ATI Linux driver is unstable and crashes at least weekly, so I am stuck with the VESA driver!
My main gripe is just the lack of "love" that goes into the design these days. Look at an X22, and compare to a modern one, and you'll see a huge difference in build quality.
What annoys me is that frequently you get downgraded from a 15.1" regular screen to a 17" widescreen, or even worse, a 15.4" widescreen, both of which are *smaller* than the original 15.1" display. The remaining area is simply wasted. Also, most software is designed to work in "portrait" mode, so by the time you have a widescreen, and then loose the area from the taskbar, title-bar, menus, statusbar, etc, your actual "working" area is very thin! For documents-editing, programming, and even web-browsing, a thin screen is not ideal. And while I do take your point about multiple windows being tile-able, a laptop screen is already so small that most apps need to be full-screen. As for watching movies on a laptop, you can always have black-bars on the top and bottom of the screen. The best I ever used was a 15.1" display at 1600x1200 on the T60p.
Incidentally, why is all TV going widescreen too? It's insane for most things. As a result, almost all the TV images you see are either cropped (tops of heads missing), or stretched (fat people!), or mis-framed (zoomed out too far, so as to get the vertical size, resulting in much wasted area on the sides of the picture). The worst of the lot is when you get a movie that was shot in 16:9, cropped to 4:3 for TV, and then displayed on a widescreen, getting cropped again to 16:9!
As a longtime thinkpad user (since the 770, now with a T60), there are several things Lenovo have got wrong:
- No line-in for audio. This is a big problem for doing audio recordings - No enough ports (only 3 USB, no firewire) - Widescreen. Ugh. Repeat after me, laptops are for documents, not for movies. "Widescreen" just means "missing the top and bottom of the display" - it should be renamed "shortscreen". - Lid catches: IBM used to have two, carefully balanced; Lenovo reduced this to one as a deliberate measure, but it is now harder to open with a single hand. - side-mounted ports for ethernet - so the cable gets in the way on the desk. - Windows keys (used to be absent) - making the Ctrl and Alt keys too small.
Thinkpads are generally quite Linux friendly (see thinkwiki.org), but still, can't we have the nice Intel i810 cards on the high-end models, instead of crippling them with useless ATI cards?
The older models (eg 560, 770) were very well engineered, and seemed to have been designed with a little more "love". The T60 is not a bad machine, but it doesn't inspire affection and delight in the same way.
As Gandhi said, "An Eye for an Eye" leaves us all blind. The possibility of an innocent being executed is quite high, but there are also other issues. The death penalty prevents any possibility of redemption; it isn't always just; it has a bad effect on the family of the victim (in the long term), and the people involved in carrying out the sentence quite rightly feel guilty for killing, even if in a state-sanctioned manner. Furthermore, it may also prevent justice being done: were I to live in a country which had the death penalty, and to serve on a jury in a capital case, conscience would impel me to find "not guilty" - which would be to do "right", but not to do "justice".
The point being that, if you commit perjury resulting in an innocent person being executed, it is tantamount to murder.
Personally, I think we should never use the death penalty: it's just another name for judicial murder. The error-rate is far, far too high as well. (Aside: There is only one valid argument which can ever be made to support the death penalty, namely that the deterrent effect could potentially save lives; I don't believe it though, because the sort of serial killers who might be executed would not have been rational enough to have been deterred.)
Agreed. The gentoo docs are the best for a lot of things. Also, gentoo's boot system is by far the prettiest and clearest of any I have seen. Unfortunately though, when I tried the installer, it crashed out, and I didn't have the time to get everything fixed - so back to Ubuntu and Mandriva.
FWIW, I'd love to see Gentoo and Mandriva merge. They are both great projects, and both slightly too small. Also, they have different aims, which would dovetail quite nicely...
What a really stupid thing to do. Never mind that it's unethical, they just lost their common-carrier status. Now the RIAA can sue them for contributory infringement;-)
At least, that's my understanding of it - ISPs and postal services are legally "common carriers", i.e. they just deliver stuff; they aren't responsible for any legal ramifications of what they deliver. Eg the post service isn't liable if someone mails a forged cheque. BUT...if they demonstrate that they control, inspect, and modify what they are delivering, they might just be liable when someone uses their network to commit fraud.
Of course, you can do better still. For mac addresses, try:
^([[:xdigit:]]{2}:){5}[[:xdigit:]]{2}$
[:xdigit:] is short for hexadecimal digits, i.e. a-fA-F0-9
We can also loop 5 times over the 'XX:' sections.
How about some sort of vmware (or kqemu etc) hack using dragon, then either write to a named pipe (if that's possible), or
make the file network mounted, and auto-save every 10 seconds? Actually, you could set Dragon up to input into a browser text-box, and do some AJAXy stuff to capture stdout....
One thing you can do is use ionice. ionice is the equivalent of "nice", but for disk-bound, rather than cpu-bound processes.
That will keep the system a bit more responsive.
> php sucks as a general purpose scripting language
Really? I have to say, I think PHP-CLI is pretty good. I tend to write long scripts in PHP, and shorter ones in bash. I've not come across anything that has ever required me to learn perl yet...
The more money the US pours down the drain, the less remains for them to do harm. If a general watches a DVD, not only does it divert money that would have been spent on weapons for killing people, it also takes an hour of his time away from planning the next crime against humanity.
(I am reminded of the old joke about the fire at the offices of the Inland Revenue Service: the fire-department's prompt response meant that it was extinguished before any serious good could be done.)
Buy one of these. They're excellent.
http://www.amazon.com/IBM-USB-Keyboard-UltraNav-31P8950/dp/B00009APTK
I use the internal trackpoint for most navigation, and relegate the external mouse to graphic design.
Much quicker, since you don't have to context-switch to use the mouse.w
As a Eurpoean (who used to believe in the "American Dream"), I'm thoroughly sick of the way the US behaves, and I'm disgusted that none of our leaders have the nerve to tell the regime to get lost. The EU should cease all co-operation with the USA until the USA starts behaving like a free country. Guantanamo alone is such a blot that the EU should have imposed trade sanctions over it (like we did to apartheid South-Africa).
I hadn't thought of that. I assumed it was just a case of adding another 1kg or so of whatever isotope is used. But actually, if you doubled the mass of RTG, and used an isotope with a longer half-life, you wouldn't need a larger radiator.
Quite a few spacecraft seem to run out of power due to failing RTGs. Admittedly, these are the ones that already perform *much* better than their design-lifetime (so Kudos to the designers), but why not just equip them with a little more of the relevant isotope? After all, the mass required is really quite small, and when the missions succeed, it would be great to have a 50+ year lifespan. Is there a good reason why the amount of isotope is limited, or is it just that nobody ever expected the craft to function so well and for so long?
The easy way is just to find some subset of your electrical appliances, and arrange them with a switch, to be supplied by either your own electricity, or the grid. This is trivial to do manually, and can be automated with a relay. The downsides are:
- at the moment of switchover, your appliance gets cut off.
- you are always wasting some or all of your power - assuming that both supply and demand vary, and the switching is granular.
To some extent, you can improve on this by using a UPS downstream of your switch.
This isn't exactly an "efficient" solution, but it will work, and it's simple and cheap.
I see what you mean. I decided quite early on that I could put the "intelligence" either in the database, or in the PHP, but I didn't want half of each. Given that the PHP has to handle errors, wherever they come from, I decided to do everything in PHP, and treat the database as dumb. By this, I mean that all database queries are guaranteed to succeed without error because the query is known in advance to be valid. (If the database query does return an error, this is allowed to terminate the script with a fatal error).
Also, Postgres doesn't usually require explicit joins - in fact, I've just checked: out of 320 sql queries, I have not a single instance of the join keyword! You can just write much more naturally:
SELECT alpha, beta FROM table_one, table_2 WHERE table_one.gamma = table_two.gamma
(in this example, table_one has columns alpha, gamma, and table_two has columns beta, gamma)
Can you give me a reference on the performance improvement from a prepared statement? As for query-builders, I tend to just use kwrite which does pretty much everything I can ask of it. (My dev suite is kwrite, konsole, bash, psql, apache, and firefox). Seriously though - what kind of query takes several *hundred* lines?
Thank you for a very good answer. I do see your points. That said, I still can't see any good reason why magic-quotes is considered harmful to the point of being completely ripped out, only that there might be some people who prefer to turn it off. magic-quotes seems to be getting the same treatment as the (genuinely harmful) register-globals. Also, Postgres doesn't seem to have the issue of escape_string() vs real_escape_string().
I have written quite a lot of detailed SQL, and it's much easier to write in string form. It's certainly easier to understand it when debugging, and it's useful to be able to easily copy-paste between the php-code and the psql terminal, as well as being more helpful when grep-ing. Saving multiple lines of code per query is good too - I find that the increased clarity makes it far easier to "see the wood for the trees."
With the Magic Quotes feature (on by default), PHP is unconditionally safe against SQL injection. All input data (GET,POST,COOKIES) are automatically parsed to backslash-escape single-quote, double-quote, and backslash. So, you can just use the input data, and never worry about compromise. (In my view, this is a very good idea, and the fail-safe nature is well worth the slight-inconvenience of having to occasionally remember to call stripslashes() if your data is not going to end up a database.)
What I cannot understand is why magic-quotes has been deprecated for PHP-6. Can anyone explain?
BTW, I'm not convinced by the advantages of stored procedures. Yes, they save you from SQL-injection risk (similar to magic-quotes), but the complexity of the resulting code is higher, and the readability is lower. Debugging cpomplex queries is hard enough already!
We should be a little more honest here, and call these laptops "shortscreen". You never gain extra area to the sides, you just loose it from the top. Also, the "it's better for DVDs" argument is nonsense: just add black bars to top + bottom in the rare occasions when using it for certain types of film. Even this isn't always true: I just bought a new laptop for video-editing, and specifically hunted down one of the last 4:3 screens, because the camera is 4:3, and because widescreen is idiotic when the subject is people. When you are trying to film one or two people (in dialog, or standing up), the best orientation is actually portrait mode - widescreen forces you to crop the top and bottom, and have wasted space on the sides.
> I'm surprised you haven't suggested that people only run their LCD screens at their native resolution.
;-) )
Sorry - I thought that was too obvious. Surely, you have to be *insane* to run an LCD at the wrong resolution. That said, I have seen too
many cases of people doing it (though surely not slashdot readers
Turn off antialiasing. (sometimes called "cleartype"). AA-fonts are "blurry" because they try to make the curves smoother than is actually possible with the native resolution. The resulting grey edges appear "out of focus" and give eye-strain. In comparison, non-aa fonts may look slightly less aesthetic, but are far easier to read. Sub-pixel rendering is also bad: it gives colour-fringes.
Then, set the brightness down a little. (I also prefer a very pale yellow background to a white one). Also, sit further back, and use a larger font: focusing too close makes the eye-muscles tired, as well as "stressing" the lens.
Personally, I bought 2 x 20" 1600x1200 LCDs 4 years ago for this very reason. It cost nearly $2500 back then, but I was ruining my eyesight being hunched over a laptop.
On Linux, disable all antialising (except for headline fonts > 15pt); disable sub-pixel rendering; enable full hinting, and choose a font designed to be hinted rather than antialiased: my favourites are MS Tahoma, and Terminus. To make hinting work properly, you have to enable the bytecode interpreter in freetype: Debian/Ubuntu do this by default; Mandriva requires the PLF version of libfreetype, because some unhelpful people have a software-patent on it.
All the older thinkpads had the full 3 audio jacks. I'm actually recording from a mixing desk, so a stereo input at a sensible level (without huge amounts of noise) is much more useful. It costs almost nothing to add, and makes the laptop useful for 5.1 stereo too, so why not keep it? Likewise with firewire - not that useful to that many people, but if you do need it, it's a real pain having to fiddle with PCMCIA cards.
I agree with you that it is useful to have a wider screen. What bugs me is that the the laptops with allegedly "wider" screens have less area than their 4:3 counterparts. I'm not saying that movies are a bad idea, only that most laptop designers seem to think of movies as the *primary* justification for an expensive laptop! Incidentally, I do video-recording and real-time streaming on a T60, for which we explicitly hunted down a rare 4:3 LCD. For most video applications when people, rather than nature are the subject, the field of view has more width than necessary, and never enough height!
The old latches on the A22 etc were actually very very clever - you could open with one hand, one after the other. It was designed for disabled users, but very useful to me when I had only one hand free. Lenovo seem to have missed the point! Also, the thinklight and magnesium case have been standard for years.
I do use the Ctrl/Alt keys a lot, so I miss having large ones, whereas the Win keys are useless to me. Also, the nice thing about the Intel graphics is that is has proper working open-source drivers. The nvidia cards have good drivers, but they are closed source which means they don't "just work". The ATI Linux driver is unstable and crashes at least weekly, so I am stuck with the VESA driver!
My main gripe is just the lack of "love" that goes into the design these days. Look at an X22, and compare to a modern one, and you'll see a huge difference in build quality.
What annoys me is that frequently you get downgraded from a 15.1" regular screen to a 17" widescreen, or even worse, a 15.4" widescreen, both of which are *smaller* than the original 15.1" display. The remaining area is simply wasted. Also, most software is designed to work in "portrait" mode, so by the time you have a widescreen, and then loose the area from the taskbar, title-bar, menus, statusbar, etc, your actual "working" area is very thin! For documents-editing, programming, and even web-browsing, a thin screen is not ideal. And while I do take your point about multiple windows being tile-able, a laptop screen is already so small that most apps need to be full-screen. As for watching movies on a laptop, you can always have black-bars on the top and bottom of the screen. The best I ever used was a 15.1" display at 1600x1200 on the T60p.
Incidentally, why is all TV going widescreen too? It's insane for most things. As a result, almost all the TV images you see are either cropped (tops of heads missing), or stretched (fat people!), or mis-framed (zoomed out too far, so as to get the vertical size, resulting in much wasted area on the sides of the picture). The worst of the lot is when you get a movie that was shot in 16:9, cropped to 4:3 for TV, and then displayed on a widescreen, getting cropped again to 16:9!
As a longtime thinkpad user (since the 770, now with a T60), there are several things Lenovo have got wrong:
- No line-in for audio. This is a big problem for doing audio recordings
- No enough ports (only 3 USB, no firewire)
- Widescreen. Ugh. Repeat after me, laptops are for documents, not for movies. "Widescreen" just means "missing the top and bottom of the display" - it should be renamed "shortscreen".
- Lid catches: IBM used to have two, carefully balanced; Lenovo reduced this to one as a deliberate measure, but it is now harder to open with a single hand.
- side-mounted ports for ethernet - so the cable gets in the way on the desk.
- Windows keys (used to be absent) - making the Ctrl and Alt keys too small.
Thinkpads are generally quite Linux friendly (see thinkwiki.org), but still, can't we have the nice Intel i810 cards on the high-end models, instead of crippling them with useless ATI cards?
The older models (eg 560, 770) were very well engineered, and seemed to have been designed with a little more "love". The T60 is not a bad machine, but it doesn't inspire affection and delight in the same way.
As Gandhi said, "An Eye for an Eye" leaves us all blind. The possibility of an innocent being executed is quite high, but there are also other issues. The death penalty prevents any possibility of redemption; it isn't always just; it has a bad effect on the family of the victim (in the long term), and the people involved in carrying out the sentence quite rightly feel guilty for killing, even if in a state-sanctioned manner. Furthermore, it may also prevent justice being done: were I to live in a country which had the death penalty, and to serve on a jury in a capital case, conscience would impel me to find "not guilty" - which would be to do "right", but not to do "justice".
The point being that, if you commit perjury resulting in an innocent person being executed, it is tantamount to murder.
Personally, I think we should never use the death penalty: it's just another name for judicial murder. The error-rate is far, far too high as well. (Aside: There is only one valid argument which can ever be made to support the death penalty, namely that the deterrent effect could potentially save lives; I don't believe it though, because the sort of serial killers who might be executed would not have been rational enough to have been deterred.)
http://www.freax.org/ has a little more info
Agreed. The gentoo docs are the best for a lot of things. Also, gentoo's boot system is by far the prettiest and clearest of any I have seen. Unfortunately though, when I tried the installer, it crashed out, and I didn't have the time to get everything fixed - so back to Ubuntu and Mandriva.
FWIW, I'd love to see Gentoo and Mandriva merge. They are both great projects, and both slightly too small. Also, they have different aims, which would dovetail quite nicely...
What a really stupid thing to do. Never mind that it's unethical, they just lost their common-carrier status. Now the RIAA can sue them for contributory infringement ;-)
At least, that's my understanding of it - ISPs and postal services are legally "common carriers", i.e. they just deliver stuff; they aren't responsible for any legal ramifications of what they deliver. Eg the post service isn't liable if someone mails a forged cheque. BUT...if they demonstrate that they control, inspect, and modify what they are delivering, they might just be liable when someone uses their network to commit fraud.