Be Developers' Conference What's New in R3? Andrew Kimpton |
Andrew Kimpton: So, some words of introduction for those of you who didn't work out who I was earlier. My name is Andrew Kimpton, I'm one of the evangelists here predominantly dealing with imaging related applications, but I'm also, as some of you may know, somebody who writes code from time to time, so it falls to me to carry out what is a little bit of a revision session, an opportunity for those of you who were either asleep, otherwise occupied, or just simply missing from one or two sessions, or had a conflict and couldn't quite make one session because you wanted to go to another, to be able to fill in some of the gaps.
There are also potentially a few things that you might have heard about or not seen at the conference, or that actually are not fully covered at the conference because they are somewhat perhaps minor. We will try to go through in this session, essentially the feature list and talk a little bit about them. You can certainly try to ask me questions about it, I have one or two engineers in the audience who are also capable of helping me out a little bit if it gets too hairy, and we will see how we go.
So what's new with R3? Not only when we look a little at particularly new features but there are some issues or particular things in terms of dealing with R3 that have changed slightly along the areas of tactics for development, and then we will look at some of the new features from a software perspective, and also then some of the new user features, which are far more end user orientated but which may perhaps inspire you as developers to come up with something for your own applications or to follow their leads. Some new development tactics in particular.
Of course with this version we now support more than one CPU architecture, so we have to be aware of some architectural differences. And in particular this applies if I take one look at the arrangement of the file system now, under the develop folder you will notice that while we still have headers and lib, lib now has an extra subdirectory. In order to separate PPC libraries from Intel libraries, obviously a different architecture. You will see a separate folder now, things are nested differently. The header directory is however still arranged in the same manner that it always has been.
And there are, however, some different libraries within that x86 folder. There are obviously some new libraries to deal with new features but there are some particular new object files and static libraries that you now need to be aware of when it comes to linking your application.
Let me just flip back through. In particular, the first couple up here, glue-noinit.a and init_term dyn.o need to be added to your project. With the new Be IDE stationary features, if you choose to use new projects based on the stationary mechanism of the new Be IDE, then all of these libraries and a couple of the other ones which are a little further down the page here that you need, start dyn.o are added for you automatically.
The other thing that you will notice, rather than simply adding a dot for the shared libraries, the libraries in the development folder hierarchy actually have .lib at the end because of the way Intel architecture libraries are built, then these libraries here are set definitions for what is contained in the shared libraries within the BeOS tree.
Some new software features, we have added a number of, a couple of new user interface components, features, gadgets, widgets, call them what you will. Primarily what you will begin to see in applications and other places are slider mechanisms and tabs and tab views. A couple of quick demos of these is fairly easy to do. A couple of the preferences applications, for example virtual memory, you can see here has a slide with a triangle and an updated quantity at the top as I move it around.
An alternative version of exactly the same, of a slider, is here is the mouse where we have a little bigger thumb, that I can move around. Sliders fit within the BController hierarchy exactly as all other controls, they PostMessages on completion of a drag as you release the mouse or as you drag the mouse, depending on how you set the slider up.
One of the things with sliders, right now they are horizontal only in terms of orientation on the screen, as you can see here. Future versions of the operating system will add a parameter to the constructor so you can turn those through 90 degrees and operate them as a vertical layout as opposed to horizontal.
A Speaker: Sound has vertical.
Andrew Kimpton: Yes, sound has funny ones. The sound sliders are not BSliders, they are actually done from a separate, how would I say, proprietary or developer set of sliders, so they are not a member of the standard BSlider. So the particular look and feel of the sound ones are not, unfortunately, available to you to use in your own applications at the moment. I don't know quite... who was responsible, I'm looking at Robert at the back of the room, responsible for doing sliders.
Who was responsible for our vertical sliders in sound?
A Speaker: Probably Mark Ferguson. I already have a prototype, so it will be in soon.
Andrew Kimpton: The work is progressing quite well to do other orientations of sliders, so we will see that.
Another pair of user interface components for tabs and tab views are a popular part of dialogues and applications nowadays. We separate the feature into two parts, a BView descendant that contains a mechanism for holding other views and organizing them to show which are the selected views appropriate on screen. And then a BTab class which is a simple view that provides you with a tab appearance, the graphical look and feel of your tabs themselves. And tab views now have to draw tabs as part of their general work.
An example of tabs in action, in the new fonts control panel, setting panel, you can see I have font settings and cache settings, and cache settings shows us the new sliders. You can see here tabs occur in a fairly static position at the top of the screen. Again that's the default. The orientation parameters that I mentioned earlier for the sliders will also be added to the tab feature.
I know that over the last couple of weeks in response to I think Robert's newsletter article, a couple of people on BeDevTalk were quite curious as to where tabs were located and whether they could be moved around and so forth. The answer to that is the orientation parameter will in future versions let you put tabs on the sides, left, right, bottom. I seem to recall some people from BeDevTalk giving the impression that OS 2 failed completely because the tabs were on the wrong side of the boxes. We hope you can avoid that. We will let you choose where you choose to put them.
The BTab class in action here is essentially this area here where we have the text case settings or font settings. If you don't particularly like this curved style of tabs here you can change it to be more compact, truncated, short angled style if you wish by just providing your own mechanism.
A Speaker: Do you have multiple levels of tabs?
Andrew Kimpton: Can you... the question, to repeat, can you have multiple levels of tabs nested within one another? There is no particular reason why you couldn't.
A Speaker: Felix does that.
Andrew Kimpton: Yes. There are some, you know, user interface guidelines, things that you might want to think about if you are suddenly going to have nested tabs. A tab view is a BView, it's a container for other views, that means it's a container for another tab view if you so wish. There is nothing preventing you from that.
A Speaker: Do tabs let you set the color?
Andrew Kimpton: Yes. If you provide your own BTab drawing mechanism, you can set the color of the tab and you can set the color of the tab view within it, and in this sort of general container area, just, the area here on screen, can be set by the background of BView.
A Speaker: But at present you would have to subclass it yourself?
Andrew Kimpton: You would have to provide your own subclassing, is the easiest way to do that.
Robert: Actually the tab color is taken from the background view color, so whatever parent of the tab view, it will show that color, it's optimized right now. (Inaudible) this color varies with the colors you use.
A Speaker: I was just thinking the color tabs would be much nicer.
Robert: That is the intent of having BTab objects, so that you can have the selected tab be a different color from the rest of the tabs, you can have all the tabs have different colors themselves. I don't know what I want to do with it, it's a pretty flexible object you can subclass.
Andrew Kimpton: Any other tab questions?
Another new feature is a slight change to the window constructor. We now have two mechanisms of building a BWindow, if you so wish. The standard usage that everybody is used to but also a new style of constructor which allows you to separate the look of a window and have how it visually appears on screen and its feel, how it reacts as a component to clicks and its position on the screen in terms of being mobile, not mobile; floating, not floating, so forth. This gives you a great deal of flexibility in how you arrange windows.
You can now do floating windows or a window that looks like a floating window that isn't and provide for various different styles and so forth, in your BWindow construction.
The header file is one source of information for that and the documentation supplied in the R3 CD is of course another.
Another user interface feature, perhaps less of a software feature but more of an end user feature is that focus follows mouse is now actually directly catered for. There was a little sort of sub hand mechanism of turning this on in other versions but it's now quite explicit. If you take your mouse control panel, we can turn on here, focus follows mouse. And as I then do that you can see that the yellowing and active nature of a window changes as I move around.
A Speaker: But it does not come up front.
Andrew Kimpton: It does not automatically pop forward, that's correct. It's not an auto raise feature such as X Windows has.
A Speaker: Could that be put in?
Andrew Kimpton: I'll defer to Pavel on that. There are issues with doing that, I think, but.
Pavel Cisler: We don't do it right now.
Andrew Kimpton: We just don't do it that way.
A Speaker: I just happen to like the first window.
Andrew Kimpton: It's one of those things.
Pavel Cisler: It's a server issue, not an interface issue, but if you request it, I will add it soon.
Andrew Kimpton: You can do those things, certainly send feature requests to us, focus follows mouse is one of those feature requests bubbling to the surface becoming a little more visible. It's a good area for religious wars amongst the users. On that general subject we are working on guidelines, we do have documentation to formalize it a little, so yes, we do have, the user interface police that won't come out and shoot you.
A Speaker: If you move the mouse onto the desktop, does the current window go out of focus or stay in focus till you go back?
Andrew Kimpton: The mouse window here is focused, as I move to the desktop it moves out of focus.
A Speaker: Is there a way to change that?
Andrew Kimpton: Well, no. And there are some reasons why you probably wouldn't want to do that. Remember the desktop is Tracker, and Tracker is a container for Replicants. So as you move to the desktop you may actually be moving the focus into a Replicant. And a Replicant application. So it's a little more confusing than just simply being a background, it's not necessarily just a background, it could actually be an application, so the issue is a little more confused.
A Speaker: Is there a schedule for those interface guidelines?
Andrew Kimpton: Is there a schedule for the interface guidelines? No, only we are working as hard as we can with that documentation team. And I would hope they would be done in the next few months and so forth.
A Speaker: Will you post it on the web?
Andrew Kimpton: Yes, when they get completed they will be available in a number of forms; A, on our web site; B, that we would add them to the CD of documentation, you know, to the general release CD that contains all the documentation, and there may well perhaps be a printed form of that through somebody like O'Reilly, who has been publishing a printed form of the Be Book.
A Speaker: By what means are you taking developer input for those guidelines?
Andrew Kimpton: You should take your requests and provide them to us through the dev support mailing address, is the easiest thing, and mark it very clearly. You may then find that you are directed further to the actual individual handling the question of the authoring of the guidelines. So if you have a particular comment that you wish to make...
A Speaker: These new features, like BDirectWindow and the BSlider and so forth, whereabouts are they documented?
Andrew Kimpton: Documentation for all... I mean documentation generally is contained on the CD. Such as it may be. The written documentation, wherever possible, is put on the CD, the Be Book as a printed form is essentially a printed form of what is on the CD. Now, obviously this is a moving target for publishers and for our documentation staff alike. There are occasions where documentation on the CD is weak or not necessarily as strong as it may be. In which case we have to refer you to two or three other locations.
Number one, always header files. If you haven't actually read the header files in the BeOS, some of them are rather humorous, and you may like to take a browse through some of them.
Secondly is the web site. There is documentation up there as it's become available, then they are placed on our web site.
And thirdly, one of the frequent sources of good documentation is developer newsletters and the like. They are stored in two forms. A, as archives on the web site, and also individual component areas of newsletter specific to developer functions or developer requests are placed in the develop library area that was mentioned earlier.
A Speaker: I understand that. But having a copy of the printed Be Book, which has detailed documentation on most of the individual classes, I guess what I really am asking, has such documentation been written for these new classes?
Andrew Kimpton: Yes, I believe there are. Certainly in the case of tabs and slide use.
Is that correct, Robert?
Robert: Yes. Tab use, slider, it's all there.
Andrew Kimpton: DirectWindow, may however...
Robert: DirectWindow is there, separate code to compliment the documentation is forthcoming. It will get there. That will include a new version of DirectWindow that came out yesterday.
Andrew Kimpton: DirectWindow being, as you probably understood from yesterday's sessions, a little more complicated, requires a little more careful documentation.
A Speaker: I suppose that would be on the CD.
Andrew Kimpton: Yes.
Doug Fulton: The DirectWindow will show up on the web site.
Andrew Kimpton: Yes. The CD contains slider and tab view stuff and the BDirectWindow, other stuff will be added to the web site.
Having had all these questions now about DirectWindow, that probably leads us to my next bullet point, probably one of the most significant, and I think perhaps strewn upon you as developers, everybody all knew about Intel, they all knew the Intel architecture was going to be available for this release. I don't think anybody really expected BDirectWindow, I don't think everybody expected some of the features they saw in yesterday morning's demonstration and Pierre Raynaud-Richard's demonstration yesterday afternoon. Perhaps it's one of the delights of being at Be, we can spring those things on you every so often and one of the more significant features about 3 is not the support for Intel, but the support for DirectWindow.
If you have further questions on DirectWindow specifically, it is a complex issue and has developer potholes to be avoided carefully. They are well-known, and you have to take care in dealing with them. The web site documentation that Doug just mentioned would be a good example of that. The sample code that you saw yesterday would be available as well. And that is a further source of information to you for those problems.
Some new features in graphics rendering as well have been added, in particular we now have support for bezier curves in a basic line type in doing graphics in addition to the stroke line types and so forth that we already had. And also a mechanism specifying transparency and essentially alpha channels has been added as well so views and their graphic operations can be specified with transparency.
As we move forward with features such as the messaging and scripting stuff, then we had more and more mechanisms to support scripting. The introductory sessions yesterday covered some of that. Essentially these are various enhancements to the messaging mechanism whereby you can now find out exactly what sort of messages and applications support and what sort of messages are significant to it. And BPropertyInfo allows you to retrieve that information and as a class of entries and descriptive information on any given set of application components, such things as menus and container views, shelves for holding Replicants and list views are now internally scriptable, you can send particular parameters, actions and functions in order for them to make changes in their appearance or to do certain things.
In addition, shelves can be told to add new Replicants from their views on screen, list views can be told to add items, so forth. You can explicitly find a reference to a given item from a menu and cause it to be executed or treated as it were through a messaging script.
One of the significant end user applications to features, much of that is the Tracker itself. You can now direct the Tracker through scripting mechanisms to make changes to files and locations and so forth, its appearance and behavior.
We have made some significant improvements, generally, in the area of networking. General improvements in terms of performance and reliability, in terms of getting the best out of the network drivers that we have. And making them more reliable. Much to Alex, VP of marketing's delight, this has resulted in superb support and the Quake networking performance has definitely risen and probably the amount of productivity in the office.
A Speaker: Speaking of which, when do we get Quake Deathmatches?
Andrew Kimpton: That's a good question. I thought Quake was on our web site.
A Speaker: Quake isn't.
Andrew Kimpton: That's a good question. I would have to take that to the... to somebody, I think it was Steve.
A Speaker: Take it to Kevin Armstrong.
Andrew Kimpton: Sorry. I didn't mean to falsely accuse Steve.
And a significant security feature is to try and... is to defeat the overlapping IP spoofing and stuff. As a general security feature.
The data types library, which has become fairly familiar to many people, will support different incoming and outgoing feature formats, has been enhanced and now included as the translation kit into the operating system. And the translation kit provides elements of backwards compatibility for existing data types, converters. It also makes writing new ones and supporting data type converters and so forth much more simpler. It makes it much easier to add the mechanisms to read, write formats into your applications much easier.
With changes to now make the Intel architecture board happen, we had to make some significant additions to our kernel, particularly in the areas of dealing with some of the I/O stuff. ISA plug and play peripherals is a significant feature and the second area is some subtle changes in dealing with accessing I/O devices, particularly on the ISA bus, because on an Intel PC those devices can be somewhat differently mapped.
So there are now two or three areas that changed there which became somewhat apparent in PR2 and became necessary in R3, is the find area calls and stuff, and also to support devices which potentially have multiple features is the ability to have a list of names that you wish to have exported from your device driver and a number of subdevices and so forth through the get device name and count devices API.
Bob Herold, our hardware internal guru, is giving a presentation I think at 1:00 this afternoon, maybe 2:00, on an introduction to device drivers, and he will go through many of the subtleties of doing device drivers. I think he has a sample driver to work through. And talks further about all of these features of APIs.
Some significant new user features, and which I hope would act as inspiration to many of you to sort of provide similar features in your own code or to make use of, the Tracker itself has undergone a number of additions and enhancements. Pavel covered some of those yesterday, yesterday afternoon. Here is a brief summary, rundown of some of them. We will look at detail of them.
Attribute editing is one of the most useful ones. Attributes have been a familiar part of the operating system for a little while now. The People application is...
A Speaker: Speaking of the mouse, is there a two button mouse that emulates the three button thing?
Andrew Kimpton: By using chording and so forth?
A Speaker: I have a two button mouse and it has a choice where I can take the two button and emulate three by pressing both at the same time.
Andrew Kimpton: That's not a feature in the current mouse driver. Rather than doing that in the mouse, you can achieve a similar effect by using a keyboard modifier to your mouse by using ALT and options of keys and stuff. So the third button becomes emulated by a combination of mouse and keyboard rather than by a chording mechanism on the mouse itself.
And the People application is perhaps familiar to quite a few of you, it's a simple mechanism about editing and dealing with contacts. I will give you a quick run of it. You can specify name, nickname, address, so forth information. All of the details are stored in a People directory in your home directory and saved as a file. If I double click my name here, we open the People application and read it.
Now, if you look at the details of the file, it's zero bytes in length because each of these individual attributes is stored as a file attribute using the BeOS file attribute features. The Tracker now provides for enhanced mechanisms of editing those attributes without even necessarily needing the program that created them. So we can go to person and turn on fields, turn on a couple of these. And I can directly within the Tracker now change the country, and so forth.
So for text fields, text type attributes such as these, it's fairly simple, but enhancements to the Tracker editing mechanism now allows you to edit other forms, other types of data within the Tracker, time/date information, for example, is a significant one of those. And that includes the mechanisms to be able to do parsing and so forth with the date. So you can enter the date and it will be converted to today's date, tomorrow, et cetera.
It was mentioned a couple of times during the sessions the significance we place on MIME types and for identifying files and their applications of file contents and the application's own unique signature. As we progress forward with R3 and onwards, the MIME type plays a more significant part in the application in the features of the operating system. In particular with these three, the Tracker now has a new feature called OpenWith. In addition to the regular open, OpenWith is a submenu which lists those applications capable of supporting this particular file type. Primarily in this case showing image is the default, it's what you would get if you clicked open and shows open.
There are a number of other ones; the difference here is that showing image is explicitly for that type and subtype, as the default in the preferred application. If we have further applications beyond just show image, then this menu here would be slightly imagesr and would list all the applications capable of supporting an image data type, be it a GIF or bitmap or TIFF, JPEG format.
Finally the bottom items, in particular file types are registered as catchall handlers for all files of all types.
DiskProbe is a new application that lets us see the binary contents in sort of a hex editor of that file. So it of course can open absolutely any file of any type. You can fiddle with this and do anything you wish.
A Speaker: How dangerous is that for end users?
Andrew Kimpton: DiskProbe as an application?
A Speaker: Yes.
Andrew Kimpton: I think it goes on from the warning in yesterday's presentation, for geeks and enthusiasts only. Which is to say this application could be life threatening. It is the same as any other disk probe application, which I agree is potentially a dangerous tool.
A Speaker: Do you intend to make it accessible throughout public releases?
Andrew Kimpton: I think it remains to see what comes back from user feedback and how many nasty questions we get from tech support. It may be we provide it in a manner you see here, for example, one of the options is you can view the contents of a file but you can't change it without particularly going to edit and turning on a write mode, so you can at least protect it a little more strongly.
A Speaker: Perhaps put a warning alert for it before you enter into it.
Andrew Kimpton: There are a number of areas, hey you, don't do this, this is dangerous. It certainly does warn you if you try to edit the contents of the file.
A Speaker: Is the slider a scroll?
Andrew Kimpton: No, this slider is a BSlider with its triangle appearance, it's a particular version of BSlider.
A Speaker: I was just asking what is it sliding through.
Andrew Kimpton: What is it sliding through? The offset in the file. As I move through here, the file offset increases on the right side.
A Speaker: Is there an undo feature?
Andrew Kimpton: Is there an undo for DiskProbe?
A Speaker: So if you do something...
A Speaker: An infinite undo feature?
Andrew Kimpton: I think that answers that question, doesn't it? The edit menu is lacking. Let me move on. The point is less to do with DiskProbe as a dangerous tool for foolhardy people and there is more to the mechanisms of using OpenWith.
Another example, an even better one, if you take a text file and look at OpenWith, you see a much imagesr list of applications dealing with the preferred application for the type. Applications capable of handling that explicit pair of styled text and then other applications capable of handling all text and then finally...
A Speaker: Question. It would be nice to have a keyboard modifier key on a selection to change a default.
Andrew Kimpton: So the question was one of the nice things to have would be to be able to change the default for a given file or for all files of that type? Do you have a preference?
A Speaker: Both would be ideal.
Andrew Kimpton: For either of those, so an item in the menu could be selected and made the default for future uses?
A Speaker: Right.
Pavel Cisler: You could write it as a Tracker item, third party engineering.
A Speaker: There you go.
Andrew Kimpton: So yes. Pavel being the Tracker suggests that add-ons are a good way of adding those features.
Another feature maybe of use further down line, I can see nongeeks being a little bit confused as to what categories on that menu are. And it might be a good idea to put the MIME type for each category on there. So the supertype.
A Speaker: The supertype by which it is being identified.
Pavel Cisler: That's why we have the window. It's not on the menu.
Could you show that?
Andrew Kimpton: Yes. This is a pop-up menu but it's also an item in its own right. If I click OpenWith, as an item in its own right, not choose any of the submenu items but click in its own right, we now have the same list you just saw but its relation as to, what it is that it does. The preferred application, the fact that it will handle a text file, handles any text, handles anything. And also because you may have multiple different versions. There are two versions of edit here, one that handles the text file and one which is registered to handle any text, then that pathway is explicitly called that as well on the right-hand side.
A Speaker: Right. But when it gets to Joe User it may be wiser to have this as a default than the pop-up. I don't know what the best way of dealing with that is.
Pavel Cisler: Neither of them default.
A Speaker: Default in the sense of it's what they see first.
Pavel Cisler: The pop-up menu, if you use a shortcut key, you get the window.
Andrew Kimpton: If I hold down...
A Speaker: No, I understand you can get the window there. What I'm saying I think is that statement goes to Joe User, they go down to OpenWith, and they probably want to have a little bit more information immediately visible or at least some indication that they can get it.
Andrew Kimpton: The danger with that feature is that the menu gets very long. Otherwise I agree.
Peter Potrebic: That's an idea. When you think about it there is tons more in terms of Joe User not showing their DiskProbe and 20 different stuff-it like applications because it will be unmanageable, so there is lots of ideas to... and we think about those.
Andrew Kimpton: Those are one of the things your feedback to us is taken on board. Pavel is sitting here.
Pavel Cisler: This is the first version of OpenWith, and we are really excited about it. You all need to send us feedback.
Andrew Kimpton: Another submenu that appears now is a query submenu to make dealing with queries much easier. A feature of BeOS all along has been the ability to create query and it is stored. I set up a couple earlier that we can go look at.
Query is kept in the query subdirectory of your home directory. A simple name query to find all People and all files with the name Andrew in them somewhere and then a more complex attribute query. If I right click on the query itself, then in addition to seeing open, OpenWith, there is a new submenu that falls out, this is the results of the query executed immediately.
One of the things here is if that's a query that will return a lot of answers, will take a long time to execute, then it may take a while for the pop-up menu to appear. But it is a live version of that. Furthermore, previously or generally it was rather difficult to edit this query. If you double click the query, it runs it, that's the default and standard behavior. If you wanted to edit a query previously, you would have to get the window up and drag and drop the query into the window in order to be able to edit it. There is a new edit query menu item here so we can basically change the nature of the search and change exactly what it is searching for. Attribute query, that becomes a lot more useful where you have a complex set of mechanisms of trying to find certain things.
A good example, the power of attributes being able to build a simple database, we can, using the standard find mechanism, search by attribute for a given attribute and for a given list of attribute sets.
A Speaker: Is there any more help with by formula queries?
Andrew Kimpton: With by formula queries? I don't think we have made any particular enhancements to that area at the moment.
Pavel Cisler: There actually is one little thing. You could from the by attribute to by formula and it will convert your, whatever you set in terms of the formula. That kind of helps a little bit.
Andrew Kimpton: You can... so I can create a query here. Move to by formula and it explicitly builds it out. That is to create or debug those queries.
Another new feature for the Tracker is the ability to be able to put icons or specifically small specific types of Replicants into the clock bar of the Tracker and this is... it's a feature that's sort of new but not new. And it's something that the e-mail application, BMail has been doing for a long time, is to be able to put a new mail notifier up here in this part of the window. That was done through the use of privileged information. It's now much more freely available to any of you. There is a mechanism to be able to say to the Tracker, please add this Replicant, this particular icon to the desk bar. Here. Now one of the things to bear in mind is that this desk bar is a fixed size. And because of the ability to be able to place the track bar anywhere on the window, you will notice that its particular width here is not at this time changed. So you do need to prepare for your request to the Tracker to put your Replicant into the desk bar to be denied. The Tracker may well come back, say no, sorry, it's full, there is no more space. And you have to able to cope with that. Also it's only a programmatic way of doing it. You can't drag any Replicant in there and have it stored there, you can't take a NetPositive and drag it in there and have a mini NetPositive. You can only do it in programs, and it's restricted in terms of data.
A Speaker: Can you take out the clock?
Andrew Kimpton: Can you take out the clock? You can under programmatic through scripting, that may annoy your user.
Peter Potrebic: It's a secondary clock, you can hide the clock. The user can hide the clock and then it frees up the space and the space is taken, the user won't be able to show the clock, but that was their choice.
Andrew Kimpton: And you can move other Replicants in the bar, as I said, but you may be annoying people if you do that without warning.
A Speaker: How much space do you have there? Is it just like, say, icon size like what you have in the windows?
Andrew Kimpton: Yes, it's exactly that. It's icon size.
Peter Potrebic: The height is 16 pixels, the width is up to you, you could put 8 pixels wide, the Tracker allocates you that much space if it's available. If you send it something 18 pixels high it will come back and say sorry, it doesn't fit error message.
Andrew Kimpton: The standard of 16 by 16 is a good thing. The icons can be dynamic type stuff. There is a little Replicant add-on thing which is a mini version of pulse, and you will see little pulse bars moving.
A Speaker: At the user level do you have plans to drag links onto that?
Andrew Kimpton: Could you repeat the question?
A Speaker: Rather than from the programmer's viewpoint, from the user's viewpoint will it be possible eventually to drag links on that space, use some other mechanism to customize the bar?
Andrew Kimpton: The question is, is there ever going to be a feature whereby people, from a user level, drag and drop onto that. I think there are some concerns with doing that. As it stands right now, where the track bar can and cannot grow, it's difficult to, you know, to see how that would work. The other thing is with the limited space as well in terms of 16 by 16 type icons, it's difficult to see exactly what you would do if you dragged a NetPositive Replicant which is potentially the size of the screen.
A Speaker: A link?
Andrew Kimpton: A link? Sorry?
A Speaker: You essentially have that anyway. In a slightly different manner. Because the BMenu here is customizable. It assumes a replication of features.
Peter Potrebic: Can I say something, Andrew?
The choice of it not being draggable was purely, I mean it was purely basically someone's decision. It was mine. Just that would be a programmatic spot where an application could throw up a notification when something happens and move it when that event is over, or for BMail if you want to have a launcher type application it would be simple for a third party to write a little app that was just a floater that stayed hidden, you could click on it, it would expand and it would accept Replicants and you could have a launcher type facility.
It's something we might think about in the future, maybe another area in the desk bar, but once it is expandable, maybe users can draw it. There is nothing technically, we are just trying to figure out what is the right way to go in terms of interface. There is no technical barriers.
Andrew Kimpton: You could quite easily right now write a small Replicant style application, register it in there and do what you just said.
Doug Fulton: If you are interested in that, I have something that is a prototype. I actually have it written on one of my machines.
Andrew Kimpton: A couple of extra sort of application type features. We now have a mechanism when doing a shutdown, I guess I could demonstrate this, when you execute a shutdown in R3 you now have a little status window that comes up and shows you which application of the many that you may have is actually being actively shut down or told to quit to that point. And that means that the shutdown should hang because the application should refuse to die and then you have an opportunity there in a window on screen to say no, go away, Goddamn it.
Question from the back?
A Speaker: Do you still get the message such and such is refusing to die?
Andrew Kimpton: The message may well appear, but you actually have now an instant button to press and say go away.
A Speaker: I have seen this happen quite frequently with the Net Server, you get the same dialogue box six or seven times before things are shutting down. I don't know if it's refusing or being called once per thread, but I don't think that I should have to say I want to kill it more than once.
Andrew Kimpton: Right. And I would agree with you that that's...
A Speaker: That is fixed.
Peter Potrebic: In this status window now, if the app is refusing to quit because it's crashed, in the status if you click kill application, that's the last time you will have to click kill application for that application. It was a bug whether it was six times, four times, that was a bug.
Andrew Kimpton: And it will be a bug if it came back. It would still be a bug if it came back.
Peter Potrebic: Right.
A Speaker: At what point is it a feature?
Andrew Kimpton: At what point is it a feature? After we have had several attempts to try to fix it. See, the great advantage right now is we haven't been doing this long enough that we have had that many attempts yet. None of the bugs have made it to features. They are still bugs. Come back and ask me in five years, it might be different.
And DiskProbe we already had a brief look at, an ability to be able to edit any file. That actually really also means the disk, because you could run DiskProbe on the device entry and edit the disk. And then you can really break things, really in a big way. Because devices are files, you can run DiskProbe on the files itself. Finally our RRaster application has been enhanced and improved a little, and replaced with our ShowImage, a mechanism of showing images that supports the translation kits and hence any new add-ons that you or others might write to support new formats in the translation kits. So it's become a little more standardized and regular and follows the rest of our plans.
Some great new NetPositive features finally, due to user demand and general requests and the fact that nobody can get any sleep until we did it, NetPositive now has frames. Yipee! Yes, we did it. And also sometimes I think it was more requested than an Intel port, from looking at the list, at least.
Also we enhanced the mechanism of dealing with bookmarks, that they are stored in a folder so you can get them a little more easily. And as you revise the NetPositive window it actually actively changes the contents to fit the resizing correctly, which has been a problem.
A Speaker: We are running a web server on our BeBox. We have a secondary domain name pointing to it, and NetPositive is unable to access those pages, whereas Internet Explorer and Netscape Navigator are able to get to them without breaking a sweat. My server people have told me it has something to do with the type of redirect that we are doing. Is there any chance that that has been fixed?
Andrew Kimpton: I'm not aware that server redirects have been addressed. I may be wrong.
A Speaker: The post header is now sent with every NetPositive request and should work with them.
Andrew Kimpton: Could you repeat that?
A Speaker: The older version of NetPositive, when it was sending its request, wasn't specifying the host header of specifically what domain name you wanted to access, therefore when it was hitting your server, your server wouldn't know which one it was supposed to get, wouldn't find the correct path and would basically say that file doesn't exist there. We now send the host header, it now works on multi-home sites.
A Speaker: Bless you.
Andrew Kimpton: Yes. So that has been dealt with.
Another area in dealing with webs and web servers, I don't know which web server you are using.
A Speaker: Dyno.
Andrew Kimpton: One of the things that we have had is a poor man's web server, and in the new version with release 3 that poor man is significantly less poor now and you can at least talk to him and control him more easily, has a much better user interface, logging and so forth. We can fiddle with the settings much more easily and generally turn up and look at logging and so forth more easily, so it's nice general improvements to make it a significantly less poor web server.
(Showing BeOS/Intel slide.)
Oh, yes. We did that, too.
Questions?
A Speaker: One thing I haven't seen so far is an indication of time frames and plans for supporting other Intel chip sets, drivers, video cards and so on. How are you planning on making that information available? Is it going to be as things get completed or are we going to have to wait till September to be able to tell somebody, yes, you will run? Right now all we can do is try looking and say we don't know when it's coming.
Andrew Kimpton: I will take that in a number of parts. The question was generally what do we do about supporting more platforms, more devices in the device area? We have an ongoing evangelism effort through people such as myself and colleagues to get more video card manufacturers, sound manufacturers, so on and so forth, getting the devices out there. I would hope as the drivers become available they become generally available as completed. The exception to that may be if we establish we have a particular problem or bug in the operating system somewhere so they get tied to a particular release or some release pattern. I think I can fairly confidently say there will be some minor updates to the operating system, to release 3 over the next, six, eight months or so before we get out to release 4. And they may well be a vehicle for us to provide support for other chip sets, motherboards and so forth.
That said, one of the issues with doing that, and supporting motherboards in particular, is fairly comprehensive levels of testing and stuff that each of those requires and access to the motherboard itself and stuff. So we have a fairly comprehensive range of a number of them within our offices and we, because we have a good engineering level relationship with Intel, are able to have some good information from them.
A Speaker: The other part of the question, we have quite some trouble finding machines with the right combination of CD and video card and we would have been quite happy if we could have installed the CD and then never used the CD again, but we could at least run as a self-contained OS. But because he has to boot into a full version of OS just to install Intel, you need the right combination. It would have been very convenient, in retrospect, had there been some kind of way of installing it from Windows 95 because Windows 95 ordinarily does have the driver, for example, the CD.
Andrew Kimpton: Right. Yes. And the whole install mechanism at the moment is predicated upon the fact that really when you launch an installer you are running a complete version of the BeOS at that point. And there are both good things and bad things that come out of that.
Bad things, as you just outlined, that you need to have fully supported hardware at the point of install.
Good things are that it becomes a very easy mechanism to provide for, you know, what do you do if it all goes very badly wrong? There are a number of features in the installer mechanism whereby you can, for example, launch the installer and fix a potentially very broken disk. And it's interesting, my own experience is in... has come from another company who had an installer that was rudimentary but functional and then changed that install over the years to become a full version of the operating system, which enabled you to do anything that you could want to possibly do in terms of fixing another operating system that you had previously installed and now broke. So there are voices from both sides of the camp in doing that.
Probably the best thing is to provide both options for somebody so there is a way to install it from Windows if you needed to. It is something we could look at doing.
A Speaker: Let's suppose tomorrow the right driver for the video card comes up, as it stands we will be unable to install until your next CD comes out.
Andrew Kimpton: That would be correct.
A Speaker: This is the other reason why having a Windows based installer, at least for the near future, would be very good, because then you get installed on Windows machines somewhat faster.
Andrew Kimpton: One of the complexities of that, of course, is that we have been having our file system that makes it that much more tricky because Windows needs to be able to understand, install and understand that file system, if it was to be functional. You could dump the data stream to the disk. That's not necessarily that useful, particularly in the scenario you just outlined.
So as work progresses, and one of the features on Steve Sakoman's engineering features list that you saw yesterday was the support within Windows 95 to be able to understand the Be file system, that would then be an enabler to allow us to add that sort of style of installer.
A Speaker: Thank you.
Andrew Kimpton: Way in the back.
A Speaker: Do you have a time line, or potential time line for internal modems?
Andrew Kimpton: Do we have a potential time line for internal modems? Intel support? No, not at this time, but suffice to say it is a fairly significant feature I would hope is amongst the sort of things that we would look at for R4, because it's sort of one of the more notable missing things in terms of a major area of device support that's missing.
In the black shirt, yourself, sir?
A Speaker: Has the source code for NetPositive been released?
Andrew Kimpton: Has the source code for NetPositive been released?
No, it's not been released as source. There are opportunities, if you feel a need for it, for licensing it, if you feel that you would like to include somehow in a product of your own. Then you can certainly discuss with myself, Frank or Alex your potential licensing requirements to want to incorporate it and what it is you want to work into those sorts of discussions.
Actually that brings me just to a sort of an aside, one of the things that perhaps didn't get mentioned much is there are mechanisms for you, as software vendors, to be able to license the BeOS and to include it on your own CDs. So if you feel like generating a turnkey solution which does a particular problem solving, then you can include the BeOS on the CD with the application. So assuming your potential customer has, or you know they will have requisite hardware, they essentially have an install and go CD, you can certainly talk to myself and my colleagues about how you go about doing that, what would be involved.
A Speaker: What's the magnitude of the effort or work required for laptop support and do you have any speculation on time lines?
Andrew Kimpton: The question was regarding what's the magnitude of effort for laptop support and laptops are very important. Why? Because I'm fed up with carrying this lot around. And you cautious observers will have noted at Comdex last year we did have BeOS running on a laptop. How did it work? Carefully, was the answer to that question.
To start with, there are right now no mechanisms to support any form of power management or PCMCIA devices, so essentially you have a desktop machine that you can carry with you.
Furthermore, there are then some particular things with supporting the motherboards that laptops use, which is significantly less effort in the Intel camp than it is to support PowerBooks, I'm pleased to say. However, there are significant changes that go on with bioses in laptops that doesn't make it any easier. And laptop support is one of those longer term things. Our key segment markets in audio and video is that individuals may personally use laptops, those machines are not generally used for audio/video editing, the desktop provides all they need. Certainly in the next release, R4, there is less effort being applied to it. The R5 time line and beyond does include we should do PCMCIA support, and power management, when we get that going and get more motherboard support, then laptops would work is the answer.
A Speaker: With regards to laptop support, is there anyone working on any kind of generic Video driver? I have somebody in our BUG back home that managed to get the deinstaller up and running on a ThinkPad, but the video was all screwy because the video card isn't directly supported, but he was saying the video card has a generic mode and it looks like there is no generic support for that kind of thing in the OS.
Andrew Kimpton: There is no generic VGA card support, I assume is what you are talking about. I think we will see what happens with laptop support ongoing and how it works.
One of the things, since we now have a fine graphics device driver person, we may have skills available to us in that particular area.
A Speaker: One concern that I have had is that you are saying that R3 on Intel is for geeks and enthusiasts only. And there was a figure thrown around that a third of all computers are in the home. I think it would be fair to say that the images portion of those geeks and enthusiasts are at home. And what I noticed so far that the support that BeOS has for running at home with on a PC, you don't have internal modem, you don't have Ethernet, you have an assortment of parts you picked up as an enthusiast. The assortment of parts is less of a problem. But I noticed for someone not permanently connected to Ethernet it can be a real bitch getting things on. I'm not saying this in any other light than perhaps a little bit more attention has to be given to the issues for somebody who is not permanently connected. At least in the Intel market, that's killing off a images fraction of the people who are enthusiastic about Be but can't do anything practical with it.
Andrew Kimpton: I agree. It's a little difficult to get data in and out of a release 3 Intel machine if you do not have a network connection because of its own removable media support is not entirely there. That is an area we absolutely will be doing more work, in particular for R4, all of those issues will be resolved by R4. Media support and those sorts of things. So it will become much easier to operate a stand-alone machine.
Stephen Beaulieu: One thing, because I do networking stuff in DTS, part of the network team (inaudible) is there a number one goal for R4 that's the one thing they have to get done? I would imagine that would also includes modems as the... that is really in terms of networking, the main focus for the networking for R4, sorting those sort of issues.
Andrew Kimpton: I notice it's almost 12:00 exactly. And I want to take the last questions. I didn't get breakfast, I need to eat.
A Speaker: I have not been unfortunate to experience it yet, but I have heard a lot of complaints; can you make the PPP window go away and hide in R3?
Andrew Kimpton: Can you make the PPP window go away and hide? I don't believe so. I think it's still a fixed feature.
Last question.
A Speaker: I guess that's, I will talk loud, would you say something about where Power Mac is going, PowerPC is going, features you expect?
Andrew Kimpton: I'm aware of that, too. And my reaction is yes, I need to pat you on the head a little and say it's okay. It's okay. Beyond doing that, what do I say? Bear in mind things like BDirectWindow was a significant feature that seems to have been played in the Intel camp this week. It's a standard feature, it's not Intel only, it exists on all the platforms. That's a good thing.
Remember also that at the portability issues, the fact that the code is very portable between platforms with BeOS works in both people's favors in both ways. It certainly makes those key PowerPC developers who want to see a bigger market in Intel space allow them to move forward. But it also allows code to play back the other way. And we ourselves rely on that. So we have a common code base for both platforms and we are trying to keep it that way absolutely as long as possible. And keep adding these features to the code base so they turn up on both machines. Easy stuff like slides and tab views, direct windows, is a more significant feature that is owned by platforms.
A Speaker: How about G3 support?
Andrew Kimpton: G3 support for add-in cards is not a significant... is no longer perceived to be a significant issue, although I can't say it's in this next release. Steve is shaking his head.
Can we get G3 in or out?
Stephen Beaulieu: I do not know what the final decision was. We had a bug in our G3 processors in general as PowerPC processors have a single instruction set. We had a bug in how we were dealing with instruction, that was dealt with in G3. So the understanding is it's not out of the question that in our next release with that bug fixed that in motherboards that we currently support that an add-in G3 card would work. However, the other issue...
Andrew Kimpton: The other issue is a much more familiar one to us, if you like, that is that those machines manufactured by Apple in the Power Mac G3 range have different motherboards, and have a range of devices in them for which we have insufficient technical information to provide a port. So the good news is that if you have an existing supported machine, and you upgrade it with a G3 card, then you definitely are a lot further along the right track than if you are a purchaser of a shiny new Power Mac G3. In which case I'm sure Apple loves you and we would love to love you. And Intel would love to hate you. But we, you know, we try to do our best in the limited resources we have available to us in that respect.
Thank you very much. There may be more stuff coming up, get ahold of me. (Applause.)