Issue 4-50, December 15, 1999

Be Engineering Insights: Bret's Special—Holiday Edition

By Bret Chou

Since it's the Holidays, I'll talk about shopping, and save the technical stuff for my next article. Yes, the Holiday shopping season is in full swing and many of you are probably wondering what to give to your loved ones. I have a great solution for you. Why not surprise that special person on your list with a brand new computer that you built yourself! Those who can't imagine actually building a computer—or why anyone would want to—can always go to the nearest electronics store and buy a PC or shop for a pre-configured one online. But for all the geeks out there who want to build one with your own two hands, here are some components that I'd recommend...

For no-budget power users:

Dual PIII 733/133
Tyan S2232 Thunder 2000
1 GB Rambus Memory
Seagate 18.2GB Ultra 2 Wide SCSI, Cheetah 10000 RPM
Voodoo3 3000 Video Card
Soundblaster Live
Generic Plasma Screen Monitor, 24-inch Sony Monitor, or
anything that will nuke your savings account in 5 minutes.
Price range: How much you got?

Disclaimer: We don't officially support the Rambus motherboard, but it should work.

Power users on a tighter budget:

Dual PIII 450
Tyan S1832DL TIGER 100
128 megs of RAM
IBM IDE 13.5GB/7200 RPM Hard Drive
Voodoo3 3000 Video Card
SoundBlaster Live
Sony 17-inch Monitor
Price range: Around $1600

Novice users:

Dual Celeron 400
Abit BP6 440BX
128 megs of RAM
IBM IDE 13.5GB/7200 RPM Hard Drive
First generation TNT Video Card (Diamond V550, etc.)
Soundblaster Live Value
Sony 17-inch Monitor
Price range: $1050

For Kids: Paint the case yellow and slap a Pokemon sticker on it, and voila! It's a Pokemon PC!!!

Celeron 400
Super Micro 370SBA
64 megs of RAM
IBM IDE 13.5GB/7200 RPM Hard Drive
Soundblaster PCI 128
Viewsonic 17-inch Monitor
Price range: $800

Note: All the configurations listed above will power most operating systems out there. But of course, they run best with BeOS =)

Developers' Workshop: My Kingdom for a Euro

By Mikol Ryon

The current method of creating or modifying keymaps in BeOS is—how should I put it?—suboptimal. But today's lesson is a quick and easy tutorial to introduce readers to the world of BeOS keymaps.

As a simple example, we'll add the Euro symbol to the American keymap.

Using the Keymap preferences tool, (Be Menu->Preferences-> Keymap), load the keymap that's closest to your goal. In this case, that is the American. Next, open a Terminal, type keymap -d > my_new_keymap and hit return. Insert the name of your choice in place of my_new_keymap. This will dump the current keymap to an ASCII file that we can edit, reload, and save as a keymap in the Keymap preferences.

Open my new keymap in your favourite editor. The first thing you'll see is a representation of the keyboard with each key's hex code. We want to add the Euro to the "e" key, which we see is key 0x29. Scroll down the file and find the Key section. It begins like so:

# Key       n        s        c       o      os
Key 0x00 =  ''       ''       ''      ''     ''
Key 0x01 = 0x1b     0x1b     0x1b    0x1b   0x1b
Key 0x02 = 0x10     0x10     0x10    0x10   0x10

Each line is a key value, 0x29 for the "e" key for example, and UTF-8 values for the character obtained when the key is pressed with or without a modifier.

This is where we decide which key, with which (if any) modifier produces the character we desire. I've decided to add the Euro to the American keymap, to the e key with the Option+Shift modifier. That is the "os" column in our table above. The Option key is the right Ctrl key on a US keyboard. Users of other keyboards/keymaps may want to remap the Command, Option, and/or Control keys in this section of the keymap file:

Version = 3
CapsLock = 0x3b
ScrollLock = 0x0f
NumLock = 0x22
LShift = 0x4b
RShift = 0x56
LCommand = 0x5d
RCommand = 0x5f
LControl = 0x5c
RControl = 0x00
LOption = 0x66
ROption = 0x60
Menu = 0x68

I chose the Option+Shift+E as opposed to the Option+E alone as the American keymap has the accent aigu (') already associated with the Option+E. Which reminds me, you may want to consult the Keymap preferences panel to make sure your additions do not interfere with another character.

Now find the line in the Key section corresponding to our target, the letter "e."

# Key       n        s       c          o       os
Key 0x29 = 'e'      'E'      0x05     0xc2b4   0xc2b4

Remember, I decided to use the Option+Shift modifier for the Euro, that is the "os" column of our table. So I change the 0xc2b4 (which is the accent aigu), a duplicate of the "o" column) to 0xe282ac, the Euro.

Key 0x29 = 'e'     'E'     0x05    0xc2b4   0xe282ac

Save your file and reload it with keymap -l my_new_keymap.

Huh? Where did I get the 0xe282ac for the Euro, alert readers ask?

We consult the experts, Unicode. has all the characters we need. They also publish a book available from any online vendor or your favourite old- fashioned book store, "The Unicode Standard, Version 2.0," by The Unicode Consortium. Or any newer version as they are produced.

Again the observant reader points out that the Unicode standard gives, what else, Unicode, while we need UTF-8 values. Converting to and from Unicode and UTF-8 is not terribly difficult and gives us some source to do it.

Another option is to take advantage of an obscure bit of Ansi-C, the %lc and a neat characteristic of more.

We look up the Euro in the Unicode standard and find that it is 0x20AC.

printf("%x %lc\n", i, i);

This little line will nicely convert from Unicode 0x20ac to UTF-8 for us.

Or, more generally:

#include <stdio.h>

int main() {
  int i;

  for(i=0x0000; i<0xffff; i++) {
    printf("%x %lc\n", i, i);


This bit of code runs through any range you desire, which you can direct to a file to save as a reference. Two notes, however: this only works on x86, not PPC, due to compiler differences. Also, if the output of the code is sent directly to the shell, it will attempt to interpret the UTF-8 values as characters, making the trick useless. Pipe the output to "more" and you'll see a line like this:

$ km | more
20ac <E2><82><AC>

So, there is our translation to UTF-8, the 0x20ac becomes 0xE282AC.

Once your new keymap is loaded, you can save it in the Keymap preferences panel.

A Theory of Internet Appliances, Rev. 2.0

By Jean-Louis Gassée

Internet appliances have moved from the fringe of foreseeability to the center. They're "official" now. Research firms like Forrester, Dataquest, and Jupiter are already saying that by 2002 or 2003 we'll see a "crossover"; that is, the point in time when Internet appliance unit sales start to exceed PC shipments. And these unit sales are big numbers. A few months ago, Michael Dell predicted 2 billion devices connected to the Net, of which a "mere" 700 million will be PCs. I like that quote because it sends several useful messages.

First, PCs aren't going away. They'll remain an important life form, a general purpose tool serving a broad range of needs for hundreds of millions of users. This is better than the "post-PC" hype of the now dated NC exaggerations that doomed PCs, like dinosaurs, to extinction. Dinosaurs, you'll recall, lasted for more than 100 million years before they rematerialized as fossil fuel.

Second, this is indeed a new era where all sorts of devices—Web Companions, NetPCs, PDAs, cell phones, TVs—will be interconnected. What's new is the numbers, the interconnectedness, and the implied diversity of devices. In the Internet appliance field, Microsoft is both a leader and a follower. They showed leadership in acquiring WebTV—a wonderful name for an Internet appliance, and a well-executed and modestly successful product.

It seems, however, that using the TV screen as the output device creates some technical and psychological problems. Technical problems because standard Web content is created for PC screens and doesn't do well on TVs whose size and resolution are not compatible. Standard Web content needs an intermediate infrastructure to reprocess pages before they reach WebTVs. This is expensive and not always successful. The alternative is to create WebTV-specific content. And psychological problems because, well, consider reading your e- mail on a TV screen in the privacy of your family room. This is not to knock WebTV—it's a good product from a patient company, worth watching as the genre evolves.

Microsoft also jumps on ideas. RealNetworks is the Internet streaming leader and, last week, Bill Gates was demonstrating a streaming appliance. We'll see how "embrace and extend" applies to this domain. This is merely the latest example after cars, telephones (with and without wires), and PDAs.

So, Internet appliances are official and universal. This is perhaps better news than we can yet imagine, or see with our mind's eye. Five years ago, when the first browsers started to make waves, very few people had a good "quantitative" idea of the Internet's impact on the PC industry, let alone on businesses ranging from networking gear to databases, from servers to investment banking, brokerage firms, pet supplies, books, and toys. We think we know that now, but we didn't at the time and there is little reason to think we know any better with yet another wave enabled by the ones we just rode.

So far, the visible part of the Internet revolution is PCs connected to telephone lines. Apart from—or thanks to—enormous investments in the less visible parts, the next manifest ingredients will be broadband, "always on," and wireless. And of course the continued benefits of Moore's Law (for an explanation of Moore's Law, see The End Is Near!).

Let's look at wireless. The term covers a broad range of different user experiences. It could mean Internet-enabled cell phones and PDAs -- surely a great thing, that would make me love my Palm VII even more. Wireless also covers the beautiful (and, for me, so American in its creative abuse of language) oxymoron, wireless cable, or point-to-point wireless two-way broadband to offices and homes. Lastly, there's wireless inside homes and offices, such as the 2.4 Ghz connectivity offered by Proxim, Lucent, and a growing number of other companies. This yields throughput on the order of 1.6 mbits/s. Now you can have a broadband connection to your home or office and "finish" the picture by adding short-range, 100-foot wireless connectivity.

Numbers can't describe the nice feel of untethered broadband, but just look at the smiles of people using it. The combination of a fat pipe to the home and a wireless Ethernet inside will create the ocean of IP packets for the objects of our daily lives to swim in. This, in turn, makes "always on" a natural. Everything is interconnected all the time. As John Doerr, the über- VC at Kleiner Perkins, started to say months ago, describing the always on, broadband "Evernet," this changes everything again, from programming your VCR, pardon, your TiVo box from anywhere, to broadband home stereos.

We now see three poles to this new world of appliances: information, entertainment, and transactions. Picture the three vertices of a triangle, if you will, or three points on a virtuous circle, if you prefer. This is the space in which these new appliances exist. If E*Trade were to deploy Internet appliances for selected customers, they would be biased towards transactions; a new generation of music systems will be closer to the entertainment pole; etc... But all these devices require all three ingredients. You need information to get to what you want to buy, entertainment helps the selling process, and entertainment itself is the one type of data we're willing to pay for, unlike stock quotes. Hence the virtuous circle.

And, of course, this exciting new world is one where Be is uniquely positioned to unleash the power of broadband and rich media with a unique combination of small footprint, the modularity and robustness of a modern OS, and the ability to deal with multiple streams of digital media for a reliable and seductive user experience.

Before I end this article, I want to be sure that you are aware that many of the statements I have made here are forward-looking in nature. That is, statements that are not historical facts are "forward-looking statements" including without limitation my statements regarding the future growth of the internet appliance market, future availability and performance of Internet appliances and third party applications, plans for product development and release, the future capabilities of our products or other products mentioned herein, the market acceptance of our products, and our ability to penetrate and capture the internet appliance markets. Actual events or results may differ materially as a result of risks facing Be Incorporated or actual results differing from the assumptions underlying such statements. Such risks and assumptions include, but are not limited to, risks related to the growth of the market for internet appliances, our ability to establish and maintain strategic relationships, our ability to develop and engineer modifications to BeOS, and the competition and market acceptance of BeOS. All such forward- looking statements are expressly qualified in their entirety by the ''Risk Factors'' and other cautionary statements included in Be Incorporated's prospectus filed pursuant to Rule 424(b) of the Securities Act of 1933 on July 20, 1999 (Commission File No. 333- 77855), and other public filings with the Securities and Exchange Commission.

Creative Commons License
Legal Notice
This work is licensed under a Creative Commons Attribution-Non commercial-No Derivative Works 3.0 License.