I did something similar, but ported the C X server to Android using the JNI.
If you want to compare approaches my source is at http://github.com/tmzt/androix and a test apk is available at http://db.tt/UkFlvNAm
This seems like a terrible thing.
Given that data costs so much on phones, you would think just the internet background noise would cost quite a lot per month.
According to that article the background noise is about 20 bits per second. According to my back of the envolope calculation that is about 6.1 megabytes per month.
I get around 50 megabytes per $6 on my phone so this is costing me 73c per month!
Saunalahti in Finland also have publicly routed 3G. I wish this were far more common, it feels very 22nd century to effortlessly ssh to the phone in your pocket, even if the capability existed since the 20th. Such a shame contemporary networks are usually so brain damaged
How about denial of service attacks? I could easily kill your battery and drain your quota for the month with a few keystrokes - and there's not much you can do about it.
Yes, I prefer NAT for my mobile connections. Just use a VPN if you want external access.
The point about battery remains though. And the solution you propose can easily be exploited to allow unlimited data for say, video streaming.
In the case of power management I'm not sure it's that simple, it's at least true that the HTC Dream would not usually respond to pings while the display was off (haven't experimented with other devices). Presumably the application processor only awoke when a kernel timer fires, which only applies to client sockets the device itself created. Actually it makes sense that random inbound data traffic wouldn't wake the phone, otherwise you risk your OS getting a bad reputation because of some crappy telcos sending ARP every 1 second or something.
My phone (Nexus S) always responds to the pings I send. Which kind of makes sense, the default is to have a constant connection to google anyway (so that it can receive any push messages). Apparently google already made the decision that it is worth the battery drain. And android has already gotten plenty of bad reputation for applications misbehaving. While I'm sure some telcos are misbehaving in all ways imaginable as well it is probably nothing compared to the apps users gladly install for themselves.
This is what happens when you debate random tangential topics online while hung over.. so basically I had no point to make, and you made me realize NAT is a pragmatic solution to the imaginary problem I'm complaining about.
> Presumably the application processor only awoke when a kernel timer fires
And of course for the reasons you point out, this presumption was obvious nonsense. :) Now I'm not sure what caused the behaviour I saw on the Dream.
Not exactly related to your post, but I'm not sure why he would be concerned with the phone service's NAT if the x-window app is running on a remote server (making him the client). Now if he were running it on his phone (as the server) and connecting to it through the cellular data service, then I could see why.
Also, the networks were (supposedly) less dangerous security wise, so people worried less about things like authentication and access control back then.
X is celebrating 25 years or so these days: And yet, modern clients can mostly work with 25 year old clients, and modern servers can definitely accept connections from 25 year old clients. And it's very usable.
It's a marvel of engineering, even if it is showing its age.
Kind of like this work implementing the AudioFlinger api on top of pulseaudio:
Also, good on the OP. But X on Android? It's a jfb Hell.
There are numerous solutions for Windows and Mac (eg AirDisplay, SplashTop) but nothing to extend Linux desktops onto Android devices.
I would expect the tablet to be plugged in as a virtual monitor (ie xrandr would should it as another monitor) and if you take the tablet away it should be no different than disconnecting a monitor.
EDIT: And why not link to the play store? https://play.google.com/store/apps/details?id=au.com.darksid...
I wonder whatever happened to the NX projects... they were optimizing X11 for high-latency systems.