Ryan Dawson on Longhorn

The software we think, but do not write

October 2005 - Posts

  • Shipping so early?

    I'm surprised VS has shipped? Is that just me? I don't think it's ready for primetime, in terms of bugs. Oh well, hopefully they have some sort of updater block.
    PostTypeIcon
    2,229 Views
  • Are you looking for a job?

    Anyone doing Avalon work out of the SanFran area?
    PostTypeIcon
    2,403 Views
  • Redlines pt. 2

    More on my previous post about Redlines.

    The problem is that if you are not experiencing the exact problem as everyone else on your team, you will inevitably build build a different product. This is outsourcing. Outsourcing doesn't work unless the terms can be easily and explicitly stated. And, don't just think this is about shipping over continent boundaries. If the work is outside the same office, then you're going to have problems.

    At its heart, the problems lies in the fact that the developer isn't sitting right next to the designer. In which case, the developer is building a different solution than the designer is designing. It's gets worse because companies break the two disciplines into completely separate teams. We have a technical team and a design team--which doesn't work. The company was based on building products, yet they destroyed that end in favor of the means--it's easier to manage 2 teams, in which the management is geared at the exact discipline.

    My colleague is working on an article along the lines that the design is simple, the implementation is the hard part. So, it's all about execution. Who can execute on the vision? Who can break the outsourcing (from one desk to another down the hall)?

    It gets worse. Not only does the designer have to sit next to the developer, they have to be on the same page. They have to understand the process. They have to work as one and deliver on the same vision. Although, this doesn't mean that the developer should constrain the designer with technical hurdles. Under no circumstance should a designer understand the technical implications. Just build a great vision and do what you can. Then, at last sight, you figure out what can't work and ask for more iterations on that feature, hopefully trying to ferret out a better idea, that can also work tecnhically. Iterate, iterate, iterate...

    As a developer, you must understand design. In most cases the developer is the primary guage for interaction design, because in building and testing a feature, they get the first glimpse into its usability. Therefore, they should understand how to run with ideas on bad interaction design and change the feature. Then, they can show the designer, and a democratic decision can be made (it's hard for a visual designer to understand the implications of interaction from photoshop--they need something to play with).

    So, remember, although the developer is the ultimate gate keeper for a product, they are also expected to understand design. The disconnect between the two disciplines must be dissolved immediately. It's not about the code, it's about the product, the experience, and the emotion.

    PostTypeIcon
    2,084 Views
  • The fallacy of Apple...

    The fallacy of Apple is one that their design is organic. Quite the opposite, though, it has no element of panic. It's cold and technical, the lines too straight and the gradients too proper. The features from from a spec, but it's no show stopper. Their pens don't drip and their zeroes don't slip. But, that's where the tale ends, and the prevale begins. They may be no tree, but they are the only ones on the block, and that you must agree. To this I rest, but in time, they will have a real test.

    PostTypeIcon
    2,206 Views
  • XSI

    I saw the new SoftImage product: XSI. Let's just say the 3D space is full of tough competition, and comsumers are winning through the quality of CG in motion films.
    PostTypeIcon
    1,866 Views
  • Media Player 11 (pus, minus, minus)

    Media player 11 (a.k.a. Vista).

    I think it is a step forward, as it should be (version 10 to version 11).

    But, I don't think they understand it. iTunes is king because they realized that the music should be a flat list. The music is what people open up the app for.

    Also, I think the gloss is a little heavy. That UI was 2 years ago. Besides, there is a mized visual langauge between the high-gloss and the tree icons which should be fixed immediately.

    PostTypeIcon
    2,530 Views
  • Redlines

    Robby showed this redline at his PDC talk:

    Definition: Redline--a comp with exact dimensions denoted in red.

     

    If you are building redlines, stop. Do not build them. Do not think about it. Redlines were last generation. Redlines are for products with no soul--no emotion.  Louie Armstrong once said, if you have to ask what Jazz is, then you'll probably never get it.

    PostTypeIcon
    3,214 Views
  • Side-by-side Avalon

    Please give me side-by-side execution of the plethora of WinFX builds coming out.

    Why oh why...

    PostTypeIcon
    1,759 Views
  • Where are the tools?

    I keep getting complaints from people who would like to get into Avalon, but can't. There aren't any tools.

    Adobe give up Flex...You have Photoshop, Illustrator, and After Effects which are just waiting for Avalon and XAML integration. Come on...

     

    Also, we need some 3D integration. I don't want Electric Rain, I want plugins for MAX and 4CD--throw in animation export, also.

    PostTypeIcon
    1,700 Views
  • Define: Web 2.0

    Oh, the truth comes out...

    And, all along, I thought it was a secret :)

    PostTypeIcon
    2,101 Views
  • Newsgroups

    I noticed a lot of good comments and questions on the Avalon newsgroup. The problem is that I couldn’t stand to stick around. I mean, the newsgroup technology is so 1980’s. I expect to see Zack Morris hanging out—maybe even Kelley Kapowski. ;)

    Who is working on the future of that problem? I think it is widely understood that the promised goal of everyone having a voice on the internet is harder than originally thought. If everyone had a blog, it would just be chaos. So, instead, you make a chronological listing of threads by users (newsgroup).

    Is this the best we have? I don’t see why we can’t have something in the middle? On the bright side, this is a huge potential of ClickOnce NoInstall apps. People don’t necessarily want to have listings within the Programs Files on Windows, but they sure as hell want better experiences. So instead, we have links to these ClickOnce apps and the problem is a lot more solvable. Do we need cross-platform for a Windows developer community site? No.

    This also brings up a good point about Favorites and hyperlinks. In the new age, web addresses are being used for far more interesting things than web pages and so it makes sense to break the favorites bar away from IE. They tried adding it to the start menu in XP, but that was a joke. Does anyone have a better idea?

    PostTypeIcon
    2,108 Views
  • Blend Modes

    Pete Blois just posted some really awesome proof-of-concept demos using strings. They’re really easy on the eyes.

    But, more interestingly, he brought up a point about Avalon lacking blend modes as those available in Photoshop. The point is well taken. Avalon can’t be everything in v1, but blending modes are the way that real visual designers mix compositions. This is for a couple of reasons, but most importantly:

    Using blend modes is essentially a non-destructive effect. In the world of Photoshop, there are 2 schools of thought. The old, which is pixel art, and the new, which is the use of non-destructive effects. Pixel art is about using the pencil and various fills with edge blurring (feathering, etc). Obviously, this is destructive, and once the layer has been modified, the pixels are no longer changeable. On the other side of the fence, there are non-destructive effects, essentially with the ability to have a compositional rendering of the vector shape with various effects applied (Drop Shadow, Fill, Bevel & Emboss, etc). These are what BitmapEffects in Avalon will eventually deliver on.

    You can probably understand, but the former group is going away in terms of the productivity gains--which leads to a second reason for using blend layers. The colors need not be changed once you have changed your background--you essentially let the colors bleed through and play with the Opacity and blend mode. This means you change one color when you want to experiment with different looks for your comp. Also, the colors tend to be more mathematically correct (given there is such a thing as perfect color compliments).

    PostTypeIcon
    2,750 Views
  • Young != Old

    I find it interesting how out-of-touch everyone is:

    Web 2.0: Conversation with Five Teenagers

    And, I assure you that those kids don’t represent the majority in any stretch. People use computers because they have to--not at all because they want to. The problem is that the computer industry has miserably failed to make any enjoyable experiences, thus far.

    How about something that I use because I have fun doing it. Or, what about emotions. Ever seen those?

    No, no, no. The problem is that people who design the software don’t ever take into account the user. In the rare case that they do hire a design firm (which there are only a couple worth the time), the developers scrap the ideas.

    PostTypeIcon
    1,856 Views
  • Example of DataTemplate failure

    Here’s a good example of a DataTemplate failure: 

    (From John Gossman’s site)

     

    Check out the “Appearance” section in the middle. There are 2 items in the list, Fill and Stroke--and, each has a little box with the preview of the value.

     

    Here is a likely representation of the data:

        public class Property

        {

            private string name;

            private object value;

     

            public string Name

            {

                get { return name; }

                set { name = value; }

            }

            public object Value

            {

                get { return value; }

                set { value = value; }

            }

        }

     

    Here is the DataTemplate:

                <DataTemplate DataType="{x:Type l:Property}">

                      <Grid>

                            <Grid.ColumnDefinitions>

                                  <ColumnDefinition Width="*" />

                                  <ColumnDefinition Width="15" />

                            </Grid.ColumnDefinitions>

     

                            <TextBlock Text="{Binding Path=Name}" />

                           

                            <Border Grid.Column="1" BorderThickness="1" BorderBrush="Black">

                                  <Rectangle Fill="{Binding Path=Value,Converter={StaticResource l:propertyConverter}}" />

                            </Border>

                      </Grid>

                </DataTemplate>

     

    Note: There is an IValueConverter that converts the object into type Brush.

    So, that’s all cool. It works fine. But, with all good design, you iterate a bit more and figure out it would be a lot better if when you change the color, the little box animates from one color to the other (Or, does it by Opacity).

     

    This is something that I would consider necessary, and yet the DataTemplate will not let me do it.

    PostTypeIcon
    1,730 Views
  • Transitions are King

    Most everyone probably notices a disconnect in the practices that I suggest in comparison with other members of the community--which more or less boils down the scenarios we are attempting.

     

    So, although I can’t tell you what everyone else is working on, I will try to explain the types of things I am doing so you can understand why it seems that I need to break all of the rules.

     

    First of all, transitions are king. Here are some different examples:

    • Fading an element in by changing the Opacity from 0 to 1
    • Translating a element from an off-screen location to center stage
    • Cross-fading colors
    • Scaling an item from one size to another
    • Wiping an OpacityMask across an element
    • Using a 3D composition (spinning, etc)
    • Etc

     

    The list goes on, and it’s pretty much limitless. Anyway, I think the next generation UX relies on animations. These subtle, yet slick transitions are what make a meaningful experience. So, the value isn’t in stark animations, it’s in something that is transparent to the experience in the long run—but in the short run--make it fun to use. The thing is that development time never gets shorter--instead we use it for other things. So, in this case, we use it on the interaction design--which by the way is something that isn’t too easy for designers to envision, so it really allows a creative outlet for the developers. Switching out these transitions and trying different stuff is where the fun is at. It’s really just creative time, because the developer gets to experiment with all the different transitions and find the best one.

     

    Anyway, back to the point. I can’t stress enough how important transitions and animations are to the experience (But I also can’t tell you what good design is. The closest I can get is a rough guideline, but in the end, it’s just chaos). The thing is that most of the time it takes a stranger and more robust solution to fulfill these needs. It requires more logic, which requires more handling on the actual elements. So, this is why I questioned the viability of DataTemplates. In practice, the data is probably coming in asynchronously, but the UI is loading immediately, so you have visual queues representing the current state of the element, while also having a nice UI.

     

    John Gossman talks about switching out DataTemplates when you want to represent different states in a UI, and this works fine for some things, but the reason it doesn’t work for me is because you can’t have transition animations when you rip out one template for another. And, if you remember, I believe that transitions are essential to the experience. You can go 2 ways with your application--you can design it for the users, or you can design it for the coders. The user experience isn’t an afterthought. It’s not something that you add in later--it’s something you mold the code around (Leave the back-end part of your application to robust software architecture, but code your front-end around the idea of ripping it out at any time).

    PostTypeIcon
    976 Views
1 2 Next >