PLEASE READ PLEASE READ PLEASE READ PLEASE READ PLEASE READ-----------------------------------------------------------------------------Please note, that I AM PAYING FOR THE PRIVILEGE OF THE RELIABLE AUDIO CONFERENCE. DO NOT CALL UNLESS YOU ARE SERIOUS ABOUT USING DESIGNER AND WISH TO CONTRIBUTE TO THE DISCUSSION. Each participant on average is costing me 19 cents a minute.-------------------------------------------------------------------------------PLEASE READ PLEASE READ PLEASE READ PLEASE READ PLEASE READ

Who should attend:* People interested in doing UI Work on LinuxMCE* People interested in doing skin work on LinuxMCE* Developers who need to provide a UI for their DCE Plugins and Devices

Everyone is welcome, but please, only attend if you are serious about doing UI work on LinuxMCE.

Topics to be covered:

* Orbiter UI Theory and Implementation* About Inherited User Interface Design* An explanation of the main UI targets currently in use - UI1 Horizontal 3:4 (used for TVs and horizontally oriented orbiters such as tablets.) - UI1 Vertical 4:3 (used for PDAs) - UI2 Horizontal (used for the UI2 TV displays) - Symbian 60 (the variation used to describe the mobile orbiter displays) - SmallUI (for The Cisco 7970), as well as a small mention of skin variations* Loading and looking around in HADesigner* DesignObj manipulation* Children of DesignObjs* Grouping DesignObjs* Attaching events to DesignObjs (for buttons, etc.)* Using orbiter's Goto Design Object for basic testing* a mention on assigning to screens, and using ScreenGen. can't go into detail.* A mention of the other common designobj types... Arrays, Datagrids, and Desktops* Discussion on Skins* Other Discussions that may result.

-----------------------------------------------

What I need,

* A list of people interested in attending via phone* Someone who can record the audio from the conference, so that I can match it to the conference, you'll hear me say audio cues such as "MARKER" so that I can match important bits to the web conference.

What Interested Participants need to do:

* Install HADesigner, according to the instructions on the Wiki (Installing HADesigner)

Let me know guys who will be participating, Thanks.-Thom

This topmost entry in the thread will be updated with more information as things progress.

That's great news. Pluto will donate $100 to cover the cost so you don't need to solicit donations.

HADesigner is a bit of an embarrassment. I wrote it in 2002. The code is scarce and simple; it only took 2 weeks to develop. It was the only time I ever tried to use C#, so it had a bunch of bugs and irregular code. It was written in a rush just to get some quick UI running on a touch-screen web pad so we could start coding the 'meat' of Pluto. We expected that once the devs got going on Pluto, we'd develop a real design tool and throw away HADesigner. So, it was just a quick temporary 'hack' that nobody expected to be used for more than a couple months. It's been 5 years and nobody's touched Designer or fixed any of the bugs; since it somehow sort of fit the need, there were always other tasks that took on a higher priority, and we never wanted to invest time fixing Designer since it's always been perceived as a temporary hack.

One of the other big reasons for not rewriting HADesigner was that when we did develop the 'real' design tool, we wanted to be sure to do it right, and despite all our brainstorming, we've never quite decided what is the 'right' way. We always thought the right solution would be something like Macromedia's Flash design suite that allows the designer to create virtually any type of UI with all the eye candy he wants to include and any type of interaction model. The problem is, last time we looked, Flash and all similar tools didn't support the fundamental concepts of embedding, inheritance, and variations like designer.

Case in point: There may be 100 screens that embed a standard navigation cluster (play, pause, stop). You don't want to recreate that cluster on all 100 screens; you want embedding: create it once, and then on every remote embed that cluster on each of the 100 screens. Next the cluster and the buttons in it all need to behave differently on different target platforms or with different skins. If you just want to change the look of the 'play' button for a certain skin, you don't want to have recreate all the commands and the other stuff on the play button; just change what needs to change the other properties are inherited. And there are different variations for different target platforms. Maybe on the Cisco UI we have dedicated one of the physical buttons to be 'play', so the "navigation cluster" should only have stop and pause. On a mobile phone, they may be shortcuts for soft keys. On a touchscreen, big buttons to touch. On an OSD, invisible elements bound to buttons on the remote control. On a PDA, they may be a vertical cluster and not horizontal. This is fundamentally different from Flash and the other tools which have the goal of making a given UI look identical on each platform; it's easier to create a design tool since what you see in the design tool is what you get no matter the platform. In our case, we want the opposite; the UI should look and behave completely differently on different platforms with totally different interaction methods, but while still inheriting and reusing the existing objects so each time you create a new platform you don't need to recreate all 5,000 elements in the UI from scratch.

We had a mini UI3 conference in January to brainstorm solutions. But, we spent a lot of time discussing licensing and other issues. Also, none of the participants knew HADesigner. Although the implementation in HADesigner is awful, it sort of does what we need it to for this type of app; it has embedding, inheritance and variations. What will be helpful with this Workshop is that if more people know how Designer works who also know how 'real' design tools work, then maybe we can find the right solution for next gen UI3 which includes the elements of HADesigner we need to preserve, but does it right. Pluto will sponsor this.

Case in point: There may be 100 screens that embed a standard navigation cluster (play, pause, stop). You don't want to recreate that cluster on all 100 screens; you want embedding: create it once, and then on every remote embed that cluster on each of the 100 screens. Next the cluster and the buttons in it all need to behave differently on different target platforms or with different skins. If you just want to change the look of the 'play' button for a certain skin, you don't want to have recreate all the commands and the other stuff on the play button; just change what needs to change the other properties are inherited. And there are different variations for different target platforms. Maybe on the Cisco UI we have dedicated one of the physical buttons to be 'play', so the "navigation cluster" should only have stop and pause. On a mobile phone, they may be shortcuts for soft keys. On a touchscreen, big buttons to touch. On an OSD, invisible elements bound to buttons on the remote control. On a PDA, they may be a vertical cluster and not horizontal. This is fundamentally different from Flash and the other tools which have the goal of making a given UI look identical on each platform; it's easier to create a design tool since what you see in the design tool is what you get no matter the platform. In our case, we want the opposite; the UI should look and behave completely differently on different platforms with totally different interaction methods, but while still inheriting and reusing the existing objects so each time you create a new platform you don't need to recreate all 5,000 elements in the UI from scratch.

Hi Aaron,

Surely all of these differences between physical devices can be handled by sub-classing the object for the target platform and changing the behaviour of the those elements in the sub-class. The 'standard' control cluster is subclassed so for example the PDA use case of a vertical cluster is implemented... on a mobile phone the sub-class implements the softkeys etc etc. I can't any problem with this... it would address this platform/device specific requirement very well.

Did a dry run of the HADesigner Workshop this last Saturday. All went well. I am trying to find a bit of screencasting software with audio support that will work alongside the Webcasting software that I am currently using to pipe everything to the conference display.

I could provide a Teamspeak-server and if needed Ventrilo too (which are both already running 24/7 on a fat backbone).All you would need is the Windows or Linux client (http://www.goteamspeak.com/?page=downloads) and a headset.

Regardsburgi

« Last Edit: March 25, 2008, 09:32:05 pm by burgiman »

Logged

Microsoft advertised: "install a good running system without compromises..."And i installed Linux !