[gopher] Re: An idea
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
On Sun, Jan 07, 2001 at 10:24:38PM -0500, David Allen wrote:
> I think it's doable, useful, and feasible. I've been reading a bit
> recently on java servlets and WML. From what I gather, WML is a
> certain DTD for XML which defines documents as a series of cards. So
> one page might be split up into any number of cards, with navigation
> between cards.
>
> [...]
Maybe it'll be helpful if I give some background on WAP.
Basically a WAP-enabled phone has a browser on it. In North America,
the most common browser is UP.Browser (aka Phone.com). Nokia phones
have their own browser, as does Ericsson. Japan's NTT DoCoMo uses
I-Mode, which is similar to, but different than WAP (I don't know much
about I-Mode).
The phone doesn't directly access the internet. It connects with a WAP
gateway using a suite of protocols optimized for mobile use. The WAP
gateway makes HTTP connections to internet servers, reads the WML,
compiles it, and sends the result to the phone, which displays it. Some
WAP gateways will also translate other formats, such as HTML, into
compiled WML.
WML is an XML DTD. It's quite easy to learn and use. Basically any
browser/gateway (you always need to consider both, because they work in
tandem) will properly understand WML, and should fail with invalid WML
(i.e. that contains unknown tags or is badly formed). Sounds like WML
avoids the problems of HTML, right? If only it were so. First, some
browsers/gateways offer extensions, but these are easy to avoid.
Second, the spec gives the browser a great deal of flexibility in how to
render the WML. In principal, this is a good thing, since the device
can optimize the display for the particular features offered. In
practise, it's a nightmare. It's very difficult to make one WML app
work well on all the browsers. For example, a select list and accept
button is the best way to create a menu interface on UP.Browser, but is
almost unusable with Nokia. With Nokia, the best way to do it is by
using a bunch of anchors. This is at least usable on UP.Browser, but
far from optimal (it requires far more key presses to get what you
want that using a select). Basically you're limited to a fairly small
subset of WML if you want it to work on most phones, unless you're
willing to write different WML for each browser/gateway.
There's no way to know what the phone's capabilities, resolution, etc.
are. You have to write the WML so it will work on anything. Again, in
principle this is a good idea, but in practise WML just isn't good
enough to get something usable a lot of the time. It is possible to
detect the browser being used and customise the WML based on that, but
it's not fun. What I think will happen (and is already starting) is
that there are translators which take a more useful notation on the
server side and use it to generate different WML depending on the device
(it could also generate HTML and whatever other formats are needed).
You don't need a WAP phone to play with WML (though for real testing it
is a necessity, especially since the particular gateway used by the
phone company plays a role as well). You can get phone emulators from
Phone.com, Nokia, Ericsson, and others (for Windows only, of course).
There are open-source WML browsers as well, search for WML on freshmeat
to find them. Those tend not to display the pecularities of the
browsers found on phones, though, so they are not that useful for
creating a real WAP app.
Overall, WAP is a pretty lousy standard, but it's what we are stuck
with. I-Mode is supposedly far superior, and I've heard that it is
coming to markets outside of Japan. BTW I-Mode has huge use in Japan.
More people use the internet through I-Mode phones than through PCs
there. WAP will become inexpensive, in fact it's really not all that
expensive now, for someone who can afford a mobile phone and service (I
don't use the phone much, so all I have a mobile phone and it costs me
the same as a landline would). Per-minute charges suck, though (I-Mode
charges by amount of data rather than time, which IMHO is much better).
Anyway, if you look at WML (w3schools.com has a decent tutorial) you'll
find that menu-based hierarchical navigation works best for phones.
Hmm... guess what kind of navigation Gopher uses? So there is an
obvious fit.
--
emanuel at heatdeath organisation
gopher.heatdeath.org
|
|