<div dir="ltr"><div><div><div>Go, being created at Google, has *really* nice HTTP server features in its standard set of packages.<br><br></div>You could consider running a web server in Go on your laptop and a browser on your tablet.  The browser would be the GUI.  You could use Go&#39;s HTTP server and HTML templating features for dynamic web server stuff.  &quot;Effective Go&quot; ends with an example like that.<br>
<br></div>You can draw on jQuery and such to create an elaborate GUI if needed, because I don&#39;t immediately know of a way to run client-side Go on the tablet, while running Javascript in the browser remains a normal and easy way to get responsive GUIs up and running quickly.<br>
<br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Dec 29, 2012 at 8:05 PM, Ron Frazier (ALE) <span dir="ltr">&lt;<a href="mailto:atllinuxenthinfo@techstarship.com" target="_blank">atllinuxenthinfo@techstarship.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5"><br>
<br>
JD &lt;<a href="mailto:jdp@algoloma.com">jdp@algoloma.com</a>&gt; wrote:<br>
<br>
&gt;On 12/29/2012 03:31 PM, Ron Frazier (ALE) wrote:<br>
&gt;&gt; Hi all,<br>
&gt;&gt;<br>
&gt;&gt; I&#39;ve been trying to figure out how to attach a program running in the<br>
&gt;GO<br>
&gt;&gt; language to a GUI, since it doesn&#39;t have a built in GUI.  I&#39;ve found<br>
&gt;a couple of<br>
&gt;&gt; X11 server programs in the Google Play store entitled, cleverly, X<br>
&gt;Server.  I&#39;m<br>
&gt;&gt; wondering if I can run the X server on the Android tablet and control<br>
&gt;or drive<br>
&gt;&gt; it remotely from another PC with a GO program or even a bash script.<br>
&gt;So, if I<br>
&gt;&gt; install the X Server program on the tablet, and say its address is<br>
&gt;192.168.50.5,<br>
&gt;&gt; and the pc&#39;s address is 192.168.50.1, how do I run Ubuntu graphical<br>
&gt;apps (say<br>
&gt;&gt; Firefox?) on the PC and have them appear on the tablet?  Furthermore,<br>
&gt;how do I<br>
&gt;&gt; use a program or script to drive the X11 server directly, so I can<br>
&gt;use the<br>
&gt;&gt; tablet as the GUI for the GO program?<br>
&gt;&gt;<br>
&gt;<br>
&gt;Unless something major has changed in the last 4 months, there isn&#39;t an<br>
&gt;X-server<br>
&gt;that runs on Android.  I&#39;ve done this. The way to achieve that is to<br>
&gt;run a<br>
&gt;chroot copy of an Arm-linux, run the program inside that Linux plus a<br>
&gt;VNC server<br>
&gt;the connect to your local arm-Linux using a VNC program from google&#39;s<br>
&gt;store.  It<br>
&gt;sorta works, but not anywhere as well as most people would need.  It<br>
&gt;was a<br>
&gt;curiosity to me. Nothing more.<br>
&gt;<br>
&gt;X-servers and X-clients work backwards of what most C/S architectures<br>
&gt;involve.<br>
&gt;The physical machine where you want to display things - THAT is the<br>
&gt;X-server.<br>
&gt;The remote machine is where the X-client runs.  Last time I needed to<br>
&gt;help<br>
&gt;someone understand it, wikipedia had a good explanation.<br>
&gt;<br>
&gt;Having a fully functioning X-Server for Android would be nice. REALLY<br>
&gt;nice.  To<br>
&gt;get the needed performance, I can&#39;t see that being written in java, so<br>
&gt;a native<br>
&gt;build will be needed for each platform.<br>
&gt;<br>
&gt;Ok, so back to your final question - how to run remote GUI programs on<br>
&gt;Android?<br>
&gt;VNC.  I wish there were a working NX client, since NX is 2x-3x more<br>
&gt;efficient<br>
&gt;than VNC or RDP.  Don&#39;t forget that VNC usually doesn&#39;t include any<br>
&gt;encryption,<br>
&gt;so do this on a LAN only, not over the internet without adding a VPN to<br>
&gt;the mix.<br>
&gt;<br>
&gt;BTW, I have an A500 tablet.<br>
&gt;I hope this helps.<br>
&gt;<br>
<br>
</div></div>Hi JD,<br>
<br>
Thanks for the note.  I&#39;m not afraid to admit that I don&#39;t really know what you meant in your first paragraph.  As I mentioned in my reply to Sam, I almost got it to work with a program called X Server which is available in the Google Play store.  There is another one as well, which is somehow attached to VNC, but I couldn&#39;t figure that out in a short time.  I installed X Server on the tablet, then used the command Sam recommended to export my display from my Ubuntu laptop, specifying the IP of the tablet as the target.  I then started firefox from a terminal window on the laptop.  I saw the firefox window appear on the tablet&#39;s screen.  However, I couldn&#39;t interact with it or control it in any way.  I could only look at it and reposition the mouse cursor by touching the tablet screen.  It was tantalisingly close to working.<br>

<br>
Let me elaborate a bit on what I want to do.  VNC might work, but I&#39;m not sure it will.  I&#39;m just beginning to learn the GO language.  It really doesn&#39;t have a GUI, so it&#39;s not very good for desktop user driven programs.  I think there are some bindings to C Libraries for FLTK or GTK.  However, I&#39;m trying to do something with what GO has built in and only minimal additional stuff.  It occurred to me that an X client can export its display to any X server on the net via TCP/IP (with proper authentication, etc.).  Well, GO does have networking built in.  So, if I can send out X commands through the TCP/IP connection to any X server, then I can have instant programmatical access to a GUI that I can drive to do what I want.  So, here&#39;s an example off what I want to do.<br>

<br>
Let&#39;s say I want to initialize a GUI for the user.  The user is on the tablet, the GO program is on my laptop.  I use GO&#39;s networking commands to issue X requests directly to the X server running on the tablet, and a program window appears on the tablet.  I don&#39;t know exactly how to do this, but you would have to manipulate the TCP/IP data stream directly.  I send other X commands from the GO program on the laptop to the tablet and menus and buttons appear on the tablet.  I initialize text entry blanks, and even images, all programmatically, and X server becomes my GUI.  Any computer that can run X can be my display, even the same one that is running the GO program.  I get an instant GUI and cross platform ability without linking in custom libraries on every target machine.<br>

<br>
What do you think?<br>
<div class="im HOEnZb"><br>
Sincerely,<br>
<br>
Ron<br>
<br>
<br>
<br>
<br>
<br>
--<br>
<br>
Sent from my Android Acer A500 tablet with bluetooth keyboard and K-9 Mail.<br>
Please excuse my potential brevity.<br>
<br>
</div><div class="im HOEnZb">(To whom it may concern.  My email address has changed.  Replying to former<br>
messages prior to 03/31/12 with my personal address will go to the wrong<br>
address.  Please send all personal correspondence to the new address.)<br>
<br>
(PS - If you email me and don&#39;t get a quick response, you might want to<br>
call on the phone.  I get about 300 emails per day from alternate energy<br>
mailing lists and such.  I don&#39;t always see new email messages very quickly.)<br>
<br>
Ron Frazier<br>
<a href="tel:770-205-9422" value="+17702059422">770-205-9422</a> (O)   Leave a message.<br>
linuxdude AT <a href="http://techstarship.com" target="_blank">techstarship.com</a><br>
<br>
<br>
</div><div class="HOEnZb"><div class="h5">_______________________________________________<br>
Ale mailing list<br>
<a href="mailto:Ale@ale.org">Ale@ale.org</a><br>
<a href="http://mail.ale.org/mailman/listinfo/ale" target="_blank">http://mail.ale.org/mailman/listinfo/ale</a><br>
See JOBS, ANNOUNCE and SCHOOLS lists at<br>
<a href="http://mail.ale.org/mailman/listinfo" target="_blank">http://mail.ale.org/mailman/listinfo</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>  Ed Cashin &lt;<a href="mailto:ecashin@noserose.net">ecashin@noserose.net</a>&gt;<br>  <a href="http://noserose.net/e/">http://noserose.net/e/</a><br>  <a href="http://www.coraid.com/">http://www.coraid.com/</a>
</div>