PDA

View Full Version : Point of Sale


Remote User
2006-01-18, 00:19
For anyone who is interested I have established a point of sale client application to which anyone using the 770 can open a touchscreen display and operate the POS app on the remote computer. You need only have openSSH installed and X forwarding enabled.

Let's first see if you can display our instance of "X Eyes" - xeyes - on your 770. If openSSH is installed, open the X terminal and type ssh -X viewtouch@demo.viewtouch.com xeyesThe POS computer will ask for a logon password: demo when the password is entered the 770 will download some fonts and textures, then get xeyes.

If that works, close the terminal to close the xeyes display. Open it again and type
ssh -X viewtouch@demo.viewtouch.com opentermThe POS computer will ask for a logon password: demo
when the password is entered the 770 will download some fonts and textures, then get a START screen.

Any user ID from 1 to 5 is OK, then select FastStart and you should see the pizza menu. Any button that has '2X' on it is a double-tap or double-touch button.

I'll await for feedback to finetune the demo.

There is an entry in the Wiki that covers the setup for X terminal and OpenSSH.

The demo works for anyone running a desktop with an X terminal and SSH, too, as long as SSH is configured to allow X forwarding.

christianhauck
2006-01-18, 09:54
I got the openssh deb from here: http://maemo.org/maemowiki/ApplicationCatalog#head-a9cdc5b8981db478bc554e3dc9b23c6c80b9d4f2

From the description, it reads as if I need to be root to install it.
1. How do I become root? There's this thread http://www.internettablettalk.com/forums/showthread.php?t=1098 about becoming root without flashing .
2. Is it really necessary to be root to install openssh or is the installer-workarounds mentioned in that thread above good enough?

Remote User
2006-01-18, 18:27
I don't know the answers to the questions about being root to install openSSH on the 770. I hope someone who knows the answers will step in here and provide that.

Reggie
2006-01-18, 18:37
Same problem here. I'm not sure how to run ssh directly from XTerminal.

Remote User
2006-01-18, 19:09
Reggie; If you have SSH installed and X forwarding enabled you just open the terminal window and type that command in. Thoughtfix was requesting that somebody explain how to create an icon that could run a script or execute a command. That would be another way to bring up a display to the remote app.

Dirk
2006-01-18, 19:15
I have tried it but got this:
Warning: No xauth data; using fake authentication data for X11 forwarding.
connect Connection refused at /usr/viewtouch/bin/vt_openterm line 128.

Hedgecore
2006-01-18, 19:33
Remote: I'll try this tonight, time permitting.

Remote User
2006-01-18, 20:12
Connection refused at /usr/viewtouch/bin/vt_openterm line 128

This means that I had the program down for a couple of minutes to refresh some of the data in it. Sorry about that.

Xauth I don't know about - something on your end. Are you sure that X forwarding is enabled?

christianhauck
2006-01-18, 20:15
status:
installed Xterm deb (from maemo.org applications), fine.
installed openssh deb (from maemo.org applications), fine.
opened xterm (was in extras).
entered /var/lib/install/sbin/setup-ssh.sh
clicked enter.

the keys were created, messages appeared, took about 15 minutes.

switched off, and on again.

Xterm again, entered
ssh -X viewtouch@demo.viewtouch.com /home/viewtouch/bin/openterm

error message, don't remember exactly, like "no ssh".

I tried /etc/init.de/sshd start
did not work, not found.

My guess: I need more privileges to start ssh. But someone else might know more?

Remote User
2006-01-18, 20:58
Somebody from Marina Del Rey, California, was able to access the demo this morning. I'm accessing it from a Debian 3.1 desktop on an ongoing basis. Every little bit of info gets us closer. Thanks for your efforts so far. I think we'll have this nailed pretty soon.

Reggie
2006-01-19, 03:18
ok, I finally got ssh to work by executing it from:
/var/lib/install/bin/ssh

but I'm getting the same error:
Connection refused at /usr/viewtouch/bin/vt_openterm line 128

christianhauck
2006-01-19, 08:52
ok, I finally got ssh to work by executing it from:
/var/lib/install/bin/ssh

worked for me as well. Thus, at least, it looks as if that issue of becoming root is not the problem.

I'll try the X-connection later today; currently I have no connection from the 770.

christianhauck @desktop.

Hedgecore
2006-01-19, 13:22
I understand that it's supposed to download some textures et cetera, but after putting in the PW I get a list of switches and it's sitting there (presumably downloading). I'm also unfortunately going to be late for work so I'll have to leave this connected as I run to the streetcar stop. Hopefully it works.

Remote User
2006-01-19, 18:43
but I'm getting the same error:
Connection refused at /usr/viewtouch/bin/vt_openterm line 128There was someone on another project who was logging on and executing another version of the application and bypassing the startup script (which would have prevented another copy from running). When he shut down the program it shut down both copies. That message meant that the POS program had been shut down. openterm is only smart enough to serve you a display if the program is running, but not smart enough to start the program up unless you are the same user who shut it down.

It's running again now. Again, thanks to all who are being patient.

Hedgecore
2006-01-19, 19:06
Is a 5-10 minute wait normal Remote? I assume this is when the download is occuring, after I enter the password I get a list of switches and then it sits there. I'm not sure what's going on as I'm receiving no visual queues.

christianhauck
2006-01-19, 19:08
looks like I'm too stupid : when I type "ssh" in Xterm, I get help about using ssh, so I assume ssh is there. But when I enter the whole line "ssh -X viewtouch@demo.viewtouch.com /home/viewtouch/bin/openterm" I get "sh: ssh: not found".

Hedgecore
2006-01-19, 19:16
Put a "./" in front of it (to execute from the current directory).

Looks confusing, sh (the shell) is telling you ssh doesn't exist :)

Remote User
2006-01-19, 19:53
Is a 5-10 minute wait normal Remote? I assume this is when the download is occuring, after I enter the password I get a list of switches and then it sits there. I'm not sure what's going on as I'm receiving no visual queues.The list of switches you see is from the 770's SSH program. It shows you the switchable commands that your SSH supports. The implication of your SSH program showing its commands to you implies its rejection of the X forwarding command.
(This is corrected) The list of switches you see is from the POS demo program - you see it because there is no X display environment accompanying your logon request. I'll next be providing information on how to overcome this.

aflegg
2006-01-19, 20:18
No, the list of switches is from vt_openterm... I figured I'd try it from my Mac first to see what the performance was like (obviously a POS app would generally be on a LAN, rather than over home broadband):

andrew@willow:~ $ ssh -X viewtouch@demo.viewtouch.com /home/viewtouch/bin/openterm
Password:
Usage: vt_openterm [OPTIONS] <display address>
OPTIONS:
-c Close the terminal instead of opening it
-C Clone an already open terminal
-d <number> Number of drawers attached to terminal
-D Enable debug mode
-h Show this help screen
-n <name> Terminal name
-p <port> Remote port to connect to
-P <printer> Printer host
-r <remote> Remote host to connect to
-t <type> 'kitchen' or 'normal'
-T <printer type> 'epson', 'star', 'ithaca', or 'text'

...and then it just sits there.

HTH,

Andrew

Remote User
2006-01-19, 22:19
No, the list of switches is from vt_openterm... (obviously a POS app would generally be on a LAN, rather than over home broadband):
HTH,
AndrewI just tried to email you and your domain is down.
------------
There's a shorter command now:
ssh -X viewtouch@demo.viewtouch.com openterm
------------
Here's what we've learned...
You get the switch (i.e., program arguments) info because the openterm program fails, and that's because your DISPLAY environment variable hasn't been set for the user you are at the moment. In other words, you are not the user who has the X display privileges on your 770 and your 770 is not going to give you a display built out of X primitives - the POS app. You must have su'ed to root, for instance, and root does not have an X display environment.

If you are a user for whom the X display environment has been established, if you are the normal user, then ssh will then set up the forwarding channel, forward your X environment info and everything will be fine.

On my own desktop I opened an X terminal console and an X terminal root console. When I executed the ssh command coming in from a root X terminal console it failed for me, too. When I executed it in a non-root X terminal console it worked.
----------
Yes, normally POS is done on a LAN, which means that there has to be at least one computer on the LAN. The significance of this test is that it is to be done on the WAN, which means that there will be no need for any computers on the LAN. Software without computers, but with only a handheld wireless X terminal like the 770, at least as far as any software user is concerned. In the past a user of software has always meant a user of computer hardware, too. A user of software will not necessarily continue to mean a user of computer hardware, too as soon as we're over this hump. If people like software but they don't like computers, then that's the target we're aiming at - to replace the computer the display is attached to with an X environment that the display is attached to.

Hedgecore
2006-01-20, 00:25
Confirmed (as root):

You must set the DISPLAY environment variable for X

When I connected as 'user' I get:

Warning: No xauth data; using fake authentication data for X11 forwarding.

...then it just sits there.

*edit: This wouldn't have anything to do with needing to switch ttys would it? Seems like a window's jusrt not popping up.

Remote User
2006-01-20, 01:13
Confirmed (as root):
You must set the DISPLAY environment variable for X

When I connected as 'user' I get:
Warning: No xauth data; using fake authentication data for X11 forwarding....then it just sits there.
The xauth message is just that - a warning message. I don't know yet why you would get that.
I've also placed xeyes on the application host. Can you display that? If no then the problem is not the POS code and we can take the focus away from it. If yes, then it's our problem here and we can narrow our focus to it. It's been a good day - we're learning.
ssh -X viewtouch@demo.viewtouch.com xeyes

Hedgecore
2006-01-20, 03:10
Beautiful!!! xeyes occupied the full window and would look wherever I touched the stylus to the screen. Dragging also mimicked the effect they normally exhibit with a mouse. So your host was doing all the background processing and the 770 was just responsible for the rendering? Good lord, I finally 'get' the ramifications of everything you've been saying. I think we'rein for some interesting times.

Reggie
2006-01-20, 03:44
xeyes worked for me too! now, if we can try out the pos... :)

Reggie
2006-01-20, 03:52
Eugene, just to let you know, when running xeyes, tapping the stylus on any part of the screen gives a second of delay before the eyes move. Dragging the stylus however gives around a quarter of a second delay. I'm not sure if this helps.

Remote User
2006-01-20, 12:12
I think we're in for some interesting times.I choose to regard the 770 as a wireless handheld x terminal - a touchscreen display that is network-driven. For me, the 770's 'desktop' is not so much a view of what is contained within the 770 and available to the user but also a view of what is available anywhere on the wide area network.

I talked yesterday with someone who recently sat in his home with his wife & kids while he was putting four new items on the menu in the 80 restaurants operated by the company he works for, all across Canada, while the people in the restaurants were using their systems. He did not use a computer, by the way, he only used a touchscreen display that was connected to the network! He makes use of openVPN (along with my pos) to continuously connect to all of those locations, bypassing the traffic of the world wide web. He manages all the IT work for his company all by himself, part time. Nobody at any restaurant organization has ever even dreamed of creating the kind of efficiency and control he has achieved. Even the people running the organization he works for don't really comprehend what has been done. I've visited restaurant companies that have a staff of 12, 15 or more as they attempt something similar, and fail. I know of a restaurant organization not too much bigger that has spent over $20 million attempting this and has failed. I could tell you stories.

In the 22 years since X first was created, nobody has ever built a handheld wireless touchscreen device before that ran X. Now that Nokia's done it the genie is out of the bottle. Not even Nokia understands what they've made possible, yet. More apps tomorrow and, hopefully, pos.

Meanwhile, anyone who has ever added an application to the KDE or Gnome panels, or to a windows/apple desktop would now be thinking how to add an icon to the 770's display that can contain the ssh command to open a display to any remote X client application. As soon as someone does that then the 770 has a network-driven GUI, not just a device GUI, and the number of icons you can have in the GUI, the variety of client apps & storage that you can access with your 770 GUI is virtually unlimited - it's bigger than the world wide web because it includes the entire Internet, not just the www.

One more thing - any app on that box you open a window to is running on FreeBSD 6.0. The eyes would look exactly the same if the box were running any Linux distro, or any other OS that X abstracts, so you wouldn't know or have to care because X means that not only is the remote hardware irrelevant, but so is the remote OS. And if the box got too busy instead of building a server farm we would just migrate the client application to a cluster (or grid) and move the storage to the network.

Smiley Dan
2006-01-20, 14:47
I successfully ran xeyes at about 14:35 GMT and am trying the openterm now... I got the X11 forwarding warning both times. I'm just leaving it, assuming it's downloading a ton of stuff... Memory usage is low (two bars).

Hedgecore
2006-01-20, 15:20
Remote, has anyone gotten the POS demo to work on a 770 yet?

christianhauck
2006-01-20, 17:11
ah, good old xeyes finally works ;

but I haven't got openterm to run yet. I enter the password, get the warning (no Xauth data; using fake...), which also appeared before xeyes came up, the cursor rests in the next line, and that's it.

Hedgecore
2006-01-20, 18:03
Out of curiosity, what happens if an app tries to display data bigger than the available screen size? For example, if the POS demo was 1024x768, would scroll bars appear?

XEyes filled up all of the available real estate on the screen...

Remote User
2006-01-20, 18:58
Out of curiosity, what happens if an app tries to display data bigger than the available screen size? For example, if the POS demo was 1024x768, would scroll bars appear?

XEyes filled up all of the available real estate on the screen...The POS app supports several display resolutions, 800x480, 800x600, 1024x768, 1280x1024 & 1600x1200. It will serve up the highest res your display is capable of. The most often used resolution is 1280x1024, followed by 1024x768. Anyone who is an x user should be able to logon with that command. We have narrowed our focus to the openterm program itself. What's odd is that it works on some displays here but not all. It works on all of our customer sites, of course. We'll nail it but we can't work on it except in some infrequent spare moments. When we do I'll notifiy everyone within 5 minutes.

Hedgecore
2006-01-20, 19:47
Excellent, I'm looking forward to seeing it in action.

aflegg
2006-01-21, 15:13
I just tried to email you and your domain is down.

Yeah, was in the process of being transferred from one registrar to another and they messed up on a seamless transfer of the DNS records.

There's a shorter command now:
ssh -X viewtouch@demo.viewtouch.com openterm

Unfortunately this still isn't working for me. Xeyes works (laggily over broadband, but works), but openterm gets a connection refused:

andrew@willow:~ $ ssh -X viewtouch@demo.viewtouch.com xeyes
Password:
^CKilled by signal 2.
andrew@willow:~ $ ssh -X viewtouch@demo.viewtouch.com openterm
Password:
connect Connection refused at /usr/viewtouch/bin/vt_openterm line 128.


From a quick look at vt_openterm, this is just because whatever daemon it wants running on localhost:10001 isn't running. Should be trivial to restart, I imagine...

Yes, normally POS is done on a LAN, which means that there has to be at least one computer on the LAN. The significance of this test is that it is to be done on the WAN, which means that there will be no need for any computers on the LAN. Software without computers, but with only a handheld wireless X terminal like the 770, at least as far as any software user is concerned. In the past a user of software has always meant a user of computer hardware, too. A user of software will not necessarily continue to mean a user of computer hardware, too as soon as we're over this hump. If people like software but they don't like computers, then that's the target we're aiming at - to replace the computer the display is attached to with an X environment that the display is attached to.

Sorry, so your plan is to access raw X applications over a WAN link? I've never been impressed with home broadband-level speeds for even raw X apps (as Xeyes shows, although constantly updating eye positions is a little hardwork in terms of a test vs. a more suitably-designed applications).

Something like NX, of course, could well be something interesting to play with. I've heard many good things about it but not seen a demo yet.

I'd got the impression your plan was to provide handheld, wireless, X terminals as POS terminals within a larger premises, which hosted the X clients. The former is even more interesting, of course, especially if NX can get the latency down sufficiently for it to be suitable over a GPRS connection.

Cheers,

Andrew

Remote User
2006-01-21, 16:00
From a quick look at vt_openterm, this is just because whatever daemon it wants running on localhost:10001 isn't running. Should be trivial to restart, I imagine...It's the POS program itself that's down then. We'll put a daemon in there to monitor and autostart it on Monday. Users in the normal context have access to an exit and we left this open in the demo. Somebody used it to shut down the program; the daemon with remedy this.
Your plan is to access raw X applications over a WAN link? I've never been impressed with home broadband-level speeds for even raw X apps (as Xeyes shows, although constantly updating eye positions is a little hardwork in terms of a test vs. a more suitably-designed applications).
Something like NX, of course, could well be something interesting to play with. I've heard many good things about it but not seen a demo yet.
I'd got the impression your plan was to provide handheld, wireless, X terminals as POS terminals within a larger premises, which hosted the X clients. The former is even more interesting, of course, especially if NX can get the latency down sufficiently for it to be suitable over a GPRS connection.First of all, on the LAN, we've been doing that for over a decade and that works to everyone's satisfaction.

With regard to moving this beyond the LAN, my plan isn't to access any and all X apps, no, but simply to access my own X apps. Any X app written for the desktop by someone who has no interest in or knowledge of leveraging the remote display protocols of X is not going to do an especially adequate job of displaying over the WAN, or even the LAN, any more than John Smith can compete in a Formula Race just because he is allowed to drive a Formula Race car. The X app and network have to be built in such a way as to leverage what X and network technologies offer. If this is done then, yes, the WAN latencies are reduced below the point where you can perceive them - that's all you have to do.

There is a step between the LAN and the WAN, don't forget - the MAN (metropolitan area network). MAN latencies are typically a fraction of the latency experienced on the WWW. And if you use a VPN, (which is free, thanks to projects like openVPN) then you can bypass the WWW and achieve latencies of 9-12 ms. It takes twice as long as that to blink your eye. There is much more to this, including how you render the GUI (because you certainly don't use bitmapped graphics) but I can't put it all here.

The crowd that doubts it can be done has always been large. Nobody who 'knows' it can't be done is going to try to do it, are they? I've done many things that I didn't know could not be done. We're already doing WAN POS, though, without NX, so there's no question of whether it will work. We use it every day. With regard to this test, we're very small and very busy working with our largest client right now on a project (plus, I'm not a programmer myself) so we're setting up and tweaking this test with whatever time I can beg from a new hire during his lunch breaks.

I very much appreciate the tips you've passed on. We'll go back at it sometime on Monday.

Hedgecore
2006-01-25, 05:44
Sorry for the terse post, but:

More!

Hedgecore
2006-01-31, 16:10
Bueller? Bueller? ... Bueller?

This was such a cool proof of concept, what's going on?

Reggie
2006-01-31, 16:38
They are still doing tests. I've been helping them run some things offline. No big updates yet but they are actively fixing some stuff. I'll report back soon.

Remote User
2006-02-08, 02:02
I ordered my 770 a week ago. It hasn't shipped yet. When I get it we'll be able to move forward on this. My hesitation since the 770 was first introduced at the beginning of November is the inability of Nokia to keep the 770 in stock and deliver promptly. My sole reservation about the 770 is that Nokia is still having serious difficulties in February in its fulfillment of orders three months after the 770's introduction. I usually avoid a product like the plague if it's chronically out of stock like the 770 is.

With all the positive reviews and awards that the 770 is getting the demand must be very high and still growing in comparison to the level of demand that Nokia thought they would be dealing with. Three months begins to be a long time for the company to not have been able to increase its production output to meet demand.

At this stage Nokia is the bottleneck of this project.

Jeffgrado
2006-03-02, 17:24
How are you able to avoid using the WWW, if you are doing something remotely? Isn't that data still going to the WWW at some point in it's life, once you move it beyond a LAN?

Remote User
2006-03-03, 02:07
How are you able to avoid using the WWW, if you are doing something remotely? Isn't that data still going to the WWW at some point in it's life, once you move it beyond a LAN?Here's some information from Webopedia which will help you to understand the difference between the Internet and the World Wide Web. I've edited it somewhat.

Many people use the terms Internet and World Wide Web interchangeably but the Internet and the Web are not interchangeable terms.

The Internet is a massive network of networks, a networking infrastructure. It connects millions of computers together globally, forming a network in which any computer can communicate with any other computer as long as they are both connected to the Internet. Information that travels over the Internet does so via a variety of languages known as protocols.

The World Wide Web, or simply Web, is a way of accessing information over the medium of the Internet. It is an information-sharing model that is built on top of the Internet. The Web uses the HTTP protocol, only one of the languages spoken over the Internet, to transmit data. Web services, which use HTTP to allow applications to communicate in order to exchange business logic, use the the Web to share information. The Web also utilizes browsers to access Web documents called Web pages that are linked to each other via hyperlinks. Web documents also contain graphics, sounds, text and video.

The Web is just one of the ways that information can be disseminated over the Internet. The Internet, not the Web, is also used for e-mail, which relies on SMTP, Usenet news groups, instant messaging, FTP and even the X Windows System protocol. So the Web is just a portion of the Internet, albeit a large portion, but the two terms are not synonymous and should not be confused.

The X protocol is contained in the Nokia 770, and this is one of the very biggest reasons, in my opinion, why it is a breakthrough device. X is commonly thought of as a way to build pretty desktops for UNIX, Linux, BSD, etc., but it is actually a remote display transparent networking protocol.

In the Point of Sale world it has been a great relief to us all to see the arrival of very small parallel port print servers that attach to the parallel ports of the printers and turn the parallel ports into wireless ethernet ports. It's a big deal when a printer no longer has to be regarded as a peripheral that is plugged into a PC and is, instead, a network resource.

The big deal about X is that if you just had a little X terminal you could attach it to a display's video port and turn it into a network port. If you do this, and if you have apps that are built with X interfaces, then the display itself is no longer regarded as a peripheral that has to be plugged into a PC and is, instead, a network resource.

Yes, that means that the PC can be done away with, if everything that used to plug into the PC can be plugged into the network instead.

Now, find a very small X terminal that attaches to the video port. I've been looking for a long time and finally found one. And the apps built with X interfaces - I have those. I'm dealing right now with the fact that although the Nokia 770 has X, it has a somewhat crippled implementation of X in that many X tools are missing, things like xfontsel.

My X apps use the old style 'X Core' fonts - ie server side
(non TTF) ones like the ones the Nokia uses. The X Server on the 770 is quite stripped down and has had support for core fonts disabled. So I have to change to using the more modern client side TTF font rendering ( Xft ). It involves substituting our Xfont* calls to use XftFont instead. I have to do this at the same time that a lot of other projects are underway, so I can't spend that much time on it.

Back to the original query: Be thankful that the Internet is much, much more than the Web. Be thankful that there are other protocols to make the Internet useful than those which drive the Web. And Be thankful that X, the network transparent display protocol used on the Nokia, is one of them. What does network transparent mean for the Nokia 770? It means that your GUI and apps can make use of not just the World Wide Web but also of the entire Internet, just as easily as your GUI and apps can make use of your individual 770 itself. You'll soon have Icons on your 770 that directly invoke the power and versatility of the entire Internet, not just of the Web, not limited to what browsers can do, which is just the Web.

djs_tx
2006-03-03, 04:33
I'm a little late to this game but I am fascinated by what you have done so far and I would greatly appreciate you continuing to share your knowledge...

I ran your xeyes demo on my N770 and on my powerbook (just for grins). I even tried the xeyes demo over GPRS and it was laggy but not unreasonable. Very cool stuff.

My company builds some linux based telemetry and data acquisition systems. We do all our GUI's in java because that lets us have a single GUI that looks the same on a local display as it does on a web browser.

But you have just shown me a third way to get there, X forwarding.

So let me ask you this... What are the pros / cons of X forwarding versus something like VNC? Both accomplish very similar things.

If you wanted to make a fairly feature rich GUI but not necessarily graphically intensive, what techniques / platforms would you employ to get the most out of a mobile terminal like the 770?

David

Jeffgrado
2006-03-03, 13:27
http://blog.eikke.com/index.php/realnitro/2005/11/17/remote_x_sessions_on_nokia_770
Thanks to this blog, I've been able to use x11 forwarding and yes, it is pretty amazing. I was able to use firefox, with extensions, right on my 770, with a little lag. I don't have a keyboard, so no text input yet, heh.

I have been wondering about the VNC issue, also. It seems that if you were to use VNC for the same purpose, you would tie that computer down to that one task. With X forwarding, I could use the app on the 770, and do something different on the computer. I'm sure that VNC also uses more bandwidth.

With the WWW issue, is the fact that by not using the http protocol, and rather going with an internet protocol, that there would be less lag/latency?

djs_tx
2006-03-03, 15:07
Nope to the VNC thing.... At least under *nix I can set up any number of "virtual desktops" as VNC servers and the host machine can go either way, it can observe the VNC client or it can be running its own desktop. Why do are you sure VNC uses more bandwidth? (Not arguing, I don't know). I would assume VNC would allow bandwidth savings by using compression.

Latency is a physical issue, not really a protocol issue. It is affected purely by the physical route you have to take to get from point A to point B. What physical media you pass through and how many hops over what machines determines your latency.

David

Remote User
2006-03-03, 18:34
Latency is a physical issue, not really a protocol issue. It is affected purely by the physical route you have to take to get from point A to point B. What physical media you pass through and how many hops over what machines determines your latency."X" is the X Windows System but, frankly, if it were called the X Protocol System then perhaps we would have a significantly different perception of what it is and what it can be used for. A certain Keith Packard has been involved with X virtually from the beginning and is at the center of the X Renaissance (my description) that is taking place today. Here's one of Keith's papers (http://keithp.com/~keithp/talks/usenix2003/html/net.html) discussing the latencies of the X Network Performance wherein he discusses the latencies of the X protocol. If you have a bookmark Folder for Interesting People then keithp.com should be in it. He's kind of like Richard Stevens to me, a prodigious, intelligent, prolific individual, the kind of person who is out beyond the ocean's horizon somewhere, creating giant waves that touch us all.

If the 770 stands alone as being able to use the X protocol, then that alone makes it a revolutionary device. As this potential is exploited it will become obvious that no matter how badly commercial interests subvert other Protocols, including the WWW protocols, they likely aren't going to bother subverting the X protocol. The X protocol is an efficient, versatile protocol and its development continues today, after more than 20 years. It contains the tools and features that allow displays to be driven over the network without the need for PCs where users are located, to feature efficient GUIs and to allow large numbers of people to work together in real time.

msaunby
2006-03-03, 19:03
Things I like about X:

I can have applications running on all sorts of different hardware sharing a single desktop, and that desktop can have whatever style and whatever complexity or simplicity I choose.

Things I like about VNC:

If I lose a connection to a machine, accidently or on purpose, I can reconnect and nothing is lost.

But the models are very, very different, so you need to actually use both, perhaps at the same time, to get an idea of what each can do for you.

Remote User
2006-03-13, 18:22
The POS app I've been speaking of here for the longest time was written several years before Keith Packard decided to invent the Xft and fontconfig libraries to make use of things like FreeType. It has always been happy using the X core fonts. These are not supported, however, on the subset of X that is used on the 770 - the Maemo platform. Matthew Allum's advice (which we have accepted) is that we replace our use of the X core fonts with the Xft and fontconfig libraries. It's turned out to not be such an easy task.

We've made some progress on this but it's been frustrating and we haven't succeeded yet. I'd like to put out a call to anyone who has experience with Xft and fontconfig to step forward and help us out. There is money attached to this, by the way, for anyone who can help.

Any app using the X core fonts will have to make this same change to the way it uses fonts, by the way. It is such an obstacle that people will have to overcome again and again so when we eventually have nailed this we will document it and provide the source to all. It isn't a walk in the park but it is necessary.

It may be that the GTK+ work is directly applicable here - we haven't looked into that yet. GTK+ also solves the X input method problem, I believe. For any who care, Keith Packard developed the Xft and fontconfig libraries along with a lot of other parts of X to make it a better windowing and protocol system for today's requirements. The 770's implementation of X by Matthew has the effect of requiring X apps to be rewritten to use these libraries and to reject X apps that use the X core fonts. My email is embedded in the ITT user area for anyone who is interested.

jaycee
2006-03-13, 20:58
Things I like about X:
[snip]
Things I like about VNC:

If I lose a connection to a machine, accidently or on purpose, I can reconnect and nothing is lost.
Is there nothing out there like GNU screen, but for X? I'd be really interested in something that had that "reconnect" facility for X apps ...

Jonathan

Remote User
2006-03-15, 00:14
My company builds some linux based telemetry and data acquisition systems. We do all our GUI's in java because that lets us have a single GUI that looks the same on a local display as it does on a web browser.

You have just shown me a third way to get there, X forwarding so let me ask... What are the pros / cons of X forwarding versus something like VNC?Sorry for the late reply. I was ignoring my own thread here because the move from X core fonts to Xft fonts was frustrating me and I am embarrased about that. I'm glad to say that we've finally made the transition and things will change around here soon because of that.

Both accomplish very similar things. If you wanted to make a fairly feature rich GUI but not necessarily graphically intensive, what techniques / platforms would you employ to get the most out of a mobile terminal like the 770?
VNC gives you a static image - the whole thing has to be sent over the network. X gives you a dynamic GUI that is 100% data-driven and, in our case, network-driven. If you manipulate the GUI (something you can't do withVNC because it's just a picture) then you can directly manipulate the data behind the GUI, even if it's on the other side of the planet, and even if other people are viewing the same GUI you are viewing. All that's sent over the network is the information about the GUI that the remote display and graphics processor needs to construct the remote user's GUI.

The extra element in this is the GUI toolkit - that's what we had to add to the mix. We built our GUI out of 'X Primitives'. Most people think of X as a windowing system, which it is, but it's also a transparent network protocol. It allows users, their displays and their input devices to be physically separate from where the programs are running and the data storage. It also allows GUIs to represent virtually any kind of resource on any kind of network. That's a long way from what a Desktop GUI is all about.

GUI, by the way, doesn't always mean pictures. It can mean, as it does in our case, use of 'textures' (aka background tiles) and special use of fonts. We add 'frosting' and 'shadowing' to our text to make it easier to read - we increase the contrast. The bottom line of all this is that much in the same way someone can watch TV without needing a PC, someone can be a user of software without needing a PC. In both cases all they need is a display terminal that attaches to a network with rich content. In the case of software the user also needs a rich array of input devices to be available. When the IPTV experience arrives it will also require a rich array of user input devices.

To all, then, we have finally put the X core font limitation (aka the roadblock) behind us and will soon have the POS demo running. Thanks for being patient.

Texrat
2007-01-19, 01:52
Milhouse just alerted me to this thread-- cool stuff! No updates in some time though? :(

I tested xeyes on the N800-- VERY responsive on my home broadband! Nice!

EDIT: I overlooked that the password was 'demo'. Corrected. :o