Mod me off-topic if you need to, but this title is why I my relationship with the English language is still slightly iffy.
MagicJack Femtocell Gates Cell Traffic to VoIP
So let's see, proper noun, noun, noun, noun, preposition, noun. Where's the verb? Who's trafficking cells through the gates here? Or wait, the cell traffic of the femtocell gates is to... no, wait. With all the noun-as-adjective and ambiguous noun-or-verb words, your natural parser screws up---assuming your natural parser (like mine) is greedy and wants to impose structure as early and often as possible.
Would it really be that awful to say "MagicJack femtocell gating cell traffic to voip"? Then you need a smaller token (i.e. word) lookahead before you can reduce "MagicJack femtocell" into subject, "gating" into verb, "cell traffic" to object, etc. (or at least, you will sooner make guesses which later turn out to be correct, and so you won't have to backtrack).
I ar dum. Editor buffalo smurf easier to marklar and understand. Plies.
This was not meant to be in the defense of child molesters but rather as an example of a similar situation in which it is easy to get a warped view of reality based on a poorly chosen sample group
It makes me sad that you need to say that. Are people really... meh... fail.
making another living thing which feels pain live or die in agony is as evil an act as i can imagine.
We kill animals and plants to eat them. Is this evil? Should we stop? Then we die...
If we can test new medicine, making n animals suffer but allowing us to make m fewer humans suffer, for what values of m and n is that a good trade in your mind? 1 and any? m equals n? any and 0?
See, absolutist statements have a tendency to blow up when you have to trade off things as you often have to in the real world constrained by the finiteness of resources.
How can you have a patent without divulging the crucial information?
By not playing fair. I'm sure there are lots of companies who deal in IP who can teach you about doing this. In particular, I hear the music, film and software industry players are good at this.
Browser-based proxies are popular with clueless people who don't know better ways of circumnavigating web filtering.
I must have missed Clue, issue #57. What better ways are there?
Tor? That's slow. Set up a shell account and your own proxy? Why bother if it's not on your machine (and so you shouldn't trust it) anyways? Get a VPN exit at Relakks or something? Those cost money; "free" beats that.
Exactly what better alternative do you have in mind?
Your users (family members etc.) think they're safe, and want to be wow'ed. They're going to complain if they can't be.
Don't even *offer* to automatically open a file after downloading.
What's gained by having the user traverse a path of directories before opening the file manually, versus having the user explicitly ask for the file to be opened automatically at some later point? I mean, it's going to get opened one way or the other, right?
When's the last time you downloaded a file and then immediately decided never to open it?
But that's unrealistic! We all know that unicorns are pink and invisible. But by being invisible, the light they emit doesn't fracture in the same way as the sun's, so it couldn't have gone by the rainbow highway.
I think a much more plausible hypothesis is that it was riding a flying pig.
We talk about the principle of 'least privilege' but in practice (with a few notable exceptions) the 'low-privilege' processes have the most important privileges of all: access to all our stuff.
What are you talking about? None of my users---whom I've made the embodiment of "least privilege"---have access to any of my stuff...
It's not easy to do well. So many GUI designers end up doing stuff like "add more themes", flashy stuff and wobbly windows, instead of actually improving things.
I know I may be going off-topic (I can feel the karma burning already), but I'd like to rant about why the Linux GUI rocks. And I'll praise emacs a little too. And I'll shame emacs too.
So, let's talk about usability. What is it? According to Wikipedia, "Usability is a term used to denote the ease with which people can employ a particular tool or other human-made object in order to achieve a particular goal."
So, ease of use. What makes something easy to use? Well, some criteria might be
Learnability: How easy is it for users to accomplish basic tasks the first time they encounter the design?
Efficiency: Once users have learned the design, how quickly can they perform tasks?
Memorability: When users return to the design after a period of not using it, how easily can they re establish proficiency?
Errors: How many errors do users make, how severe are these errors, and how easily can they recover from the errors?
Satisfaction: How pleasant is it to use the design?
One of the most brilliant little things that Linux gets right is alt-dragging to move windows. Instead of having to hit a small title bar, you have a (comparatively) huge window to hit with the mouse. Fitts's Law would predict that you can do it faster, i.e. that there's increased efficiency. My intuition approves of this message:)
Then, if you enable sloppy mouse focus and disable raise-on-focus, you can work in one window looking at information in another window that's on top of a part of the work window that you're not working in. That makes you more efficient, and means you don't have to fiddle with resizing windows. That also makes people more satisfied---people really want their windows to have lots of space (plus, some websites cope poorly with resizing, especially if you also zoom the text).
And if you use the infinitely configurable compiz, you can have increased memorability---nothing helps you remember a bunch of random data better than you yourself choosing which random data to remember. That is, setting your own hotkeys means you can remember them more easily, so it's easier to learn what the hotkeys are.
And here's the part where I praise emacs: putting the text navigation keys on ${ctrl or alt} plus ${some letter} really is a boon for efficiency: if you're typing, you're holding your fingers close to the letters. Besides typing, the most common operation is moving around in your text (I claim without evidence). So you can switch between the most two common tasks without moving your hands, which is much more efficient than having to move your hands to the cursor/endhome/pgupdown keys. Of course, that still works if you want that.
Also, Linux gives you a lot of flexibility, which means you can set up your box to work exactly the way you want it to. Having a tool that works how you like it rather than almost how you like it is bound to affect your level of satisfaction. I know it does that for me.
Now, for the negatives: although I love emacs, it's not exactly the king of learnability. I mean, the emacs tutorial is long. Not particularly hard to follow, but no one's going to guess on their own that C-x C-C is the way to exit, and C-x C-s means `save'.
And even on a fairly vanilla Ubuntu install, the default Metacity configuration could be made better for windows users: have only a single virtual desktop, bind alt-F4 to "close application", make Windows+{E,D,F} (AKA Super+{...}) do what they do in Windows. That way it's easier to learn, because there is nothing to learn---the user already knows how to do things.
So, despite not being perfect, Linux does get some usability things right.
It's not the mass alone that makes something a black hole, it's the density
So, another way to put it is to say that this is where the point-mass simplification breaks down? This is where you can't just treat the earth as having all its mass in the centre---as opposed to trying to solve Newton's three-body problem, or plotting the paths of space vehicles, where it might work out OK.
That means they, not I, control the hardware. That means that the phone, from my vantage point, comes with its security pre-broken.
hardware data encryption
Why? Can't you just implement AES in software? Linux can do full-disk encryption just fine.
and remote wiping capability.
This is either "ssh phone 'rm -rf/'", which Linux should be able to do, or it means some not-me can decide to fuck over my phone. If it's the latter, from my vantage point, it's insecure.
And your TV can only display yellow by tricks of the eyes+brain.
My interpretation of what goes on is this: there's a red dot and a green dot close to each other. These emit intensity-equal streams of "red photons" and "green photons" (of appropriate wavelengths). Pairs of these hit neighbouring cones in your eye, the long-wavelength cone reacting to the red photon and the medium-wavelength cone reacting to the green photon.
Your brain then (acts as if it) assumes the activations of the cones were due to the same photon source. But the only way for one photon source to activate the long and medium wavelength cones equally is if the photon source is yellow.
I thought black holes worked by not letting photons escape due to a sufficiently large gravitational pull towards the centre of the black hole. And gravitational pull is caused by mass.
In my mind, if the earth had sufficient mass to be a black hole, which I think is what you're saying, it would already be a black hole. But gravity sufficient to keep photons contained would also crush (evul villain voice) the puny little bones in a frail human skeleton (muhwahahahaharrr...). This doesn't appear to happen.
The problem of having security on your USB drive that gets plugged into various computers that you might not have control over and may be running trojans is tough to solve.
Storing your data, even temporarily, on computers you don't trust (i.e. down administrate yourself) means the administrator can get your data. If you don't like that, avoid it.
Application level encryption is probably the best way to go
Ermm... what is application level encryption? Either a machine you don't trust is decrypting your data or it isn't. By definition of not trusting the machine, you aren't 100% sure what the application does, even if you've run what appears to be the same application on a machine you do trust.
Yes, I know it's possible to compute on encrypted data; i.e. for some class of function g, there exists functions f such that f(E(x)) = E(g(x)), where E is the encrypting function. That lets you compute on your data on someone else's computer. But what you probably want in 99% of the cases is to see and interact with your data. It's not much fun inserting characters into your document if you can't see where you're inserting them. And why not just insert them on a computer you trust, if you go through the trouble of setting up the function that can do the encrypted computation? I mean, this is not what you mean by application level encryption, right?
The python and java threading tools are still not software transaction memory, so you still have to poke behind abstractions, or not abstract the locking protocols away.
That's the real problem. It's not hard to write pthread_mutex_create(&mutex, pthread_mutex_default_parameters). It takes a little more typing, but it forces you to think explicitly about locking; java gives you the impression that if you just synchronized everything then all is fine.
The problem is that you in many applications want to nest critical sections, but mutex operations don't really nest---you have to manually traverse the critical section nesting tree, pull out all the mutexes, then lock them in some canonical order (say, by address, if they're all embedded or embeddable in the same flat address space).
That part, the killer feature of STM, is not easier in java or python.
You can potentially split a program into user level threads just to simplify code.
Ermm... maybe I just don't have sufficient experience writing real-world code, but when do threads ever simplify anything?
I mean, you have to worry about race conditions and deadlocks all of the sudden, which means you have to pretty much lock everything, and in some consistent order.
Plus, if you have some nice abstraction (say, a shared hash map) which does all its own locking the right way, making every operation (insert, delete, retrieve, etc.) a transaction, you need to break the abstraction and poke at the internal locks to make those operations part of a larger transaction.
Have a look at what Hans Boehm has to say about getting C++ threads right, and what Simon Peyton-Jones has to say about Software Transaction Memory.
See http://www.youtube.com/watch?v=mrvAqvtWYb4 for C++ threads; I can't find SPJ talking about STM, but there are plenty other talks about it on google video and youtube.
But you might of course be right, so I'm eager to hear an example. Please tell me how threads can simplify things.
I hear that's why the US has such fast internet and cheap, reliable telephony service, both with excellent customer service of course, especially compared to the EU and Japan.
</sarcasm>
Sorry if I'm pushing it here. It's just striking to hear about the abuse US ISP and telecomms customers (apparently) have to put up with, compared to what I experience in Denmark.
On the other hand, your government isn't doing much better than failing markets. For instance, take a listen to a recent EconTalk episode about market failures and government failures at http://www.econtalk.org/archives/2009/12/winston_on_mark.html
In summary: it's the lobbyists.
If I recall correctly, the guest, Winston, only looked at government failure in the US. Extrapolating from there to government failure in general might be a wee bit hasty.
The really provocative statement would be that right-wingers don't get that government intervention is the right solution in theory, what left-wingers don't get is that it rarely works in practice, and the elephant in the room nobody is doing anything about is that the lobbyists screw up The Right Thing, making it Not The Right Thing, and so nothing works (as well as it could).
Writers learn through constant repetition that "passive voice" makes sentences dull and boring, readers dislike writing of this kind.
I think you mean "The passive voice should be avoided" ;-)
You may want to start here: http://imgs.xkcd.com/comics/surgery.png
Mod me off-topic if you need to, but this title is why I my relationship with the English language is still slightly iffy.
MagicJack Femtocell Gates Cell Traffic to VoIP
So let's see, proper noun, noun, noun, noun, preposition, noun. Where's the verb? Who's trafficking cells through the gates here? Or wait, the cell traffic of the femtocell gates is to ... no, wait. With all the noun-as-adjective and ambiguous noun-or-verb words, your natural parser screws up---assuming your natural parser (like mine) is greedy and wants to impose structure as early and often as possible.
Would it really be that awful to say "MagicJack femtocell gating cell traffic to voip"? Then you need a smaller token (i.e. word) lookahead before you can reduce "MagicJack femtocell" into subject, "gating" into verb, "cell traffic" to object, etc. (or at least, you will sooner make guesses which later turn out to be correct, and so you won't have to backtrack).
I ar dum. Editor buffalo smurf easier to marklar and understand. Plies.
Recycled
Independently invented, and not exactly equal in meaning due to my comment having a richer context.
This was not meant to be in the defense of child molesters but rather as an example of a similar situation in which it is easy to get a warped view of reality based on a poorly chosen sample group
It makes me sad that you need to say that. Are people really... meh... fail.
making another living thing which feels pain live or die in agony is as evil an act as i can imagine.
We kill animals and plants to eat them. Is this evil? Should we stop? Then we die...
If we can test new medicine, making n animals suffer but allowing us to make m fewer humans suffer, for what values of m and n is that a good trade in your mind? 1 and any? m equals n? any and 0?
See, absolutist statements have a tendency to blow up when you have to trade off things as you often have to in the real world constrained by the finiteness of resources.
[...] on your home server
And when traffic between my home and the tpb ip range (all tpb ranges?) is blocked, how do I get to the tpb from home?
When there already are plenty of other machines I can bounce off of, why set up my own? Exactly what is gained?
How can you have a patent without divulging the crucial information?
By not playing fair. I'm sure there are lots of companies who deal in IP who can teach you about doing this. In particular, I hear the music, film and software industry players are good at this.
Browser-based proxies are popular with clueless people who don't know better ways of circumnavigating web filtering.
I must have missed Clue, issue #57. What better ways are there?
Tor? That's slow. Set up a shell account and your own proxy? Why bother if it's not on your machine (and so you shouldn't trust it) anyways? Get a VPN exit at Relakks or something? Those cost money; "free" beats that.
Exactly what better alternative do you have in mind?
I'd rather be safe than "wow"ed.
Your users (family members etc.) think they're safe, and want to be wow'ed. They're going to complain if they can't be.
Don't even *offer* to automatically open a file after downloading.
What's gained by having the user traverse a path of directories before opening the file manually, versus having the user explicitly ask for the file to be opened automatically at some later point? I mean, it's going to get opened one way or the other, right?
When's the last time you downloaded a file and then immediately decided never to open it?
But that's unrealistic! We all know that unicorns are pink and invisible. But by being invisible, the light they emit doesn't fracture in the same way as the sun's, so it couldn't have gone by the rainbow highway.
I think a much more plausible hypothesis is that it was riding a flying pig.
We talk about the principle of 'least privilege' but in practice (with a few notable exceptions) the 'low-privilege' processes have the most important privileges of all: access to all our stuff.
What are you talking about? None of my users---whom I've made the embodiment of "least privilege"---have access to any of my stuff...
-- your friendly neighbourhood BOFH
It's not easy to do well. So many GUI designers end up doing stuff like "add more themes", flashy stuff and wobbly windows, instead of actually improving things.
I know I may be going off-topic (I can feel the karma burning already), but I'd like to rant about why the Linux GUI rocks. And I'll praise emacs a little too. And I'll shame emacs too.
So, let's talk about usability. What is it? According to Wikipedia, "Usability is a term used to denote the ease with which people can employ a particular tool or other human-made object in order to achieve a particular goal."
So, ease of use. What makes something easy to use? Well, some criteria might be
One of the most brilliant little things that Linux gets right is alt-dragging to move windows. Instead of having to hit a small title bar, you have a (comparatively) huge window to hit with the mouse. Fitts's Law would predict that you can do it faster, i.e. that there's increased efficiency. My intuition approves of this message :)
Then, if you enable sloppy mouse focus and disable raise-on-focus, you can work in one window looking at information in another window that's on top of a part of the work window that you're not working in. That makes you more efficient, and means you don't have to fiddle with resizing windows. That also makes people more satisfied---people really want their windows to have lots of space (plus, some websites cope poorly with resizing, especially if you also zoom the text).
And if you use the infinitely configurable compiz, you can have increased memorability---nothing helps you remember a bunch of random data better than you yourself choosing which random data to remember. That is, setting your own hotkeys means you can remember them more easily, so it's easier to learn what the hotkeys are.
And here's the part where I praise emacs: putting the text navigation keys on ${ctrl or alt} plus ${some letter} really is a boon for efficiency: if you're typing, you're holding your fingers close to the letters. Besides typing, the most common operation is moving around in your text (I claim without evidence). So you can switch between the most two common tasks without moving your hands, which is much more efficient than having to move your hands to the cursor/endhome/pgupdown keys. Of course, that still works if you want that.
Also, Linux gives you a lot of flexibility, which means you can set up your box to work exactly the way you want it to. Having a tool that works how you like it rather than almost how you like it is bound to affect your level of satisfaction. I know it does that for me.
Now, for the negatives: although I love emacs, it's not exactly the king of learnability. I mean, the emacs tutorial is long. Not particularly hard to follow, but no one's going to guess on their own that C-x C-C is the way to exit, and C-x C-s means `save'.
And even on a fairly vanilla Ubuntu install, the default Metacity configuration could be made better for windows users: have only a single virtual desktop, bind alt-F4 to "close application", make Windows+{E,D,F} (AKA Super+{...}) do what they do in Windows. That way it's easier to learn, because there is nothing to learn---the user already knows how to do things.
So, despite not being perfect, Linux does get some usability things right.
It's not the mass alone that makes something a black hole, it's the density
So, another way to put it is to say that this is where the point-mass simplification breaks down? This is where you can't just treat the earth as having all its mass in the centre---as opposed to trying to solve Newton's three-body problem, or plotting the paths of space vehicles, where it might work out OK.
I think that problem would be easily solved by taking backup copies of your phone's disk image.
Then if some twerp wipes your phone, you just restore the last know good disk image and are ready to go again.
I mean, you do keep backups, right? ;-)
corporate enforcement of security settings
That means they, not I, control the hardware. That means that the phone, from my vantage point, comes with its security pre-broken.
hardware data encryption
Why? Can't you just implement AES in software? Linux can do full-disk encryption just fine.
and remote wiping capability.
This is either "ssh phone 'rm -rf /'", which Linux should be able to do, or it means some not-me can decide to fuck over my phone. If it's the latter, from my vantage point, it's insecure.
True.
And your TV can only display yellow by tricks of the eyes+brain.
My interpretation of what goes on is this: there's a red dot and a green dot close to each other. These emit intensity-equal streams of "red photons" and "green photons" (of appropriate wavelengths). Pairs of these hit neighbouring cones in your eye, the long-wavelength cone reacting to the red photon and the medium-wavelength cone reacting to the green photon.
Your brain then (acts as if it) assumes the activations of the cones were due to the same photon source. But the only way for one photon source to activate the long and medium wavelength cones equally is if the photon source is yellow.
See also http://en.wikipedia.org/wiki/Color_vision
Pedantry is fun. And the brain always computes on the information it is fed; there's never raw access (what would that even mean?).
Not surprisingly, we design display/video technology such that after processing by our brains, we have the desired perception.
So what if it's stereoscopic and not real 3D? The real world is always viewed through a stereoscopic lens (figuratively speaking).
It would have the same mass as the earth
Wait, what?
I thought black holes worked by not letting photons escape due to a sufficiently large gravitational pull towards the centre of the black hole. And gravitational pull is caused by mass.
In my mind, if the earth had sufficient mass to be a black hole, which I think is what you're saying, it would already be a black hole. But gravity sufficient to keep photons contained would also crush (evul villain voice) the puny little bones in a frail human skeleton (muhwahahahaharrr...). This doesn't appear to happen.
Where's my wrong assumption or misunderstanding?
Application level encryption is like a password on your document or RAR file.
Ah, per-file encryption.
assuming you didn't do anything stupid like assign the same password to all the files on the disk
Right. I'm going to remember a high-entropy password for each of my files. My long-term memory is capable of that. And it's capable of rotating them.
the adversary only got access to that particular document
If you don't mind the adversary getting access, why encrypt in the first place? Which threat are you secure against?
On the other hand, if you do mind, which threat are you secure against?
The problem of having security on your USB drive that gets plugged into various computers that you might not have control over and may be running trojans is tough to solve.
Storing your data, even temporarily, on computers you don't trust (i.e. down administrate yourself) means the administrator can get your data. If you don't like that, avoid it.
Application level encryption is probably the best way to go
Ermm... what is application level encryption? Either a machine you don't trust is decrypting your data or it isn't. By definition of not trusting the machine, you aren't 100% sure what the application does, even if you've run what appears to be the same application on a machine you do trust.
Yes, I know it's possible to compute on encrypted data; i.e. for some class of function g, there exists functions f such that f(E(x)) = E(g(x)), where E is the encrypting function. That lets you compute on your data on someone else's computer. But what you probably want in 99% of the cases is to see and interact with your data. It's not much fun inserting characters into your document if you can't see where you're inserting them. And why not just insert them on a computer you trust, if you go through the trouble of setting up the function that can do the encrypted computation? I mean, this is not what you mean by application level encryption, right?
Fair enough, that's a good example.
Though threads simplify the asynchronicity scheduling at the expense of making the asynchronous communication more complex.
One must decide wisely what to trade off for what.
The python and java threading tools are still not software transaction memory, so you still have to poke behind abstractions, or not abstract the locking protocols away.
That's the real problem. It's not hard to write pthread_mutex_create(&mutex, pthread_mutex_default_parameters). It takes a little more typing, but it forces you to think explicitly about locking; java gives you the impression that if you just synchronized everything then all is fine.
The problem is that you in many applications want to nest critical sections, but mutex operations don't really nest---you have to manually traverse the critical section nesting tree, pull out all the mutexes, then lock them in some canonical order (say, by address, if they're all embedded or embeddable in the same flat address space).
That part, the killer feature of STM, is not easier in java or python.
You can potentially split a program into user level threads just to simplify code.
Ermm... maybe I just don't have sufficient experience writing real-world code, but when do threads ever simplify anything?
I mean, you have to worry about race conditions and deadlocks all of the sudden, which means you have to pretty much lock everything, and in some consistent order.
Plus, if you have some nice abstraction (say, a shared hash map) which does all its own locking the right way, making every operation (insert, delete, retrieve, etc.) a transaction, you need to break the abstraction and poke at the internal locks to make those operations part of a larger transaction.
Have a look at what Hans Boehm has to say about getting C++ threads right, and what Simon Peyton-Jones has to say about Software Transaction Memory.
See http://www.youtube.com/watch?v=mrvAqvtWYb4 for C++ threads; I can't find SPJ talking about STM, but there are plenty other talks about it on google video and youtube.
But you might of course be right, so I'm eager to hear an example. Please tell me how threads can simplify things.
Imagine that! Competition works!
I hear that's why the US has such fast internet and cheap, reliable telephony service, both with excellent customer service of course, especially compared to the EU and Japan.
</sarcasm>
Sorry if I'm pushing it here. It's just striking to hear about the abuse US ISP and telecomms customers (apparently) have to put up with, compared to what I experience in Denmark.
On the other hand, your government isn't doing much better than failing markets. For instance, take a listen to a recent EconTalk episode about market failures and government failures at http://www.econtalk.org/archives/2009/12/winston_on_mark.html
In summary: it's the lobbyists.
If I recall correctly, the guest, Winston, only looked at government failure in the US. Extrapolating from there to government failure in general might be a wee bit hasty.
The really provocative statement would be that right-wingers don't get that government intervention is the right solution in theory, what left-wingers don't get is that it rarely works in practice, and the elephant in the room nobody is doing anything about is that the lobbyists screw up The Right Thing, making it Not The Right Thing, and so nothing works (as well as it could).
Not true. If you lose the ability to procreate before(?) having done so and live you are eligible
Thank you for clarifying and correcting me :)
Though I think my original parent is much more likely to die than self-sterilize; at least the imaginary self-caricature personae is...