Ryan Dawson on Longhorn

The software we think, but do not write

  • Blogging from the Apple store

    Tiger still Rocks...

    Seriously Spotlight is quick and it even searches help and control panel features. So, search for expose, and the preferences control panel for expose comes up.

    You already know how I feel about dashboard...

    Safari with RSS is the best RSS reader I have seen to date. The integration is seemless. It is almost a pleasure to read a site in the RSS view as compared to the HTML view. With all other RSS readers, I think the experience is lacking (big time).

    Automator--messed with it, but don't really know how to use it.

    IChat--two guys were talking across the store with it and I couldn't help but watch. Another way apple is delivering on the promise of the internet coupled with rich interaction.

  • Microsoft Trouble

    I think the real take-away in the Microsoft debacle comes down to this principle, which is consistently missed:

    Fail fast...

    Fail forward...

    Don't repeat...


    It's sad, to say the least. I think they need some design thinking. I love reading how designers pick apart Aero. Then, Scoble or someone else will respond "Just wait, this isn't the real thing." Personally, I don't care what it is. Someone keeps fiddling with the UI. So, it tends to seems like someone is polishing. It's not easy being the most dominant software company.


    Microsoft releases WinFS at PDC, and people say "cool", so Apple, being the good designers they are, say, "if the users want, then let's give it to them." And, a year later, Tiger ships.

    I have always thought that the developer strategy (the Microsoft strategy) is the best. But, I have to say that I don't know anymore. Apple does everything. It's getting rare to to have 3rd party apps on Apple (specifically because they rip them off, but that's not the point). Even more so, business is consistently coded in angle brackets--where platforms don't matter.


    In spite of all the hoo-haa associated with Tiger and Longhorn, I think there are bigger bets being made. When you don't have anything, you don't have anything to risk. Ask Google? Specifically, watch Google Maps. They shipped at Christmas, easily becoming the best. Then, they started layering things on top: addresses, contextual addresses, directions, real-time taxi services, aerial photographs. What's next? Let's see, traffic reports, maybe some sort of flight tracking, etc.

    But, the truth is this, the PC isn't a great experience for these things. So, I bet they are really looking at cell phones and mobile devices. I guarantee it...


    We don't need any more developers--we need people who find the real problems. How do you do business? Are you disruptive? How many times have you read the Clue Train Manifesto? Are you familiar with IDEO? Or, Amazon? Or, Ebay?

  • Hah

    Hah, this is funny...the old and the new are clashing. Microsoft, I guess it's going to take time, but you can't play both at once.

    Either you are running a business with disruptive technologies like Google, or you have a permanent law staff and play like IBM.


    Some interesting quotes:

    When someone asked why they were doing this, Chris Pirillo quipped, "because it looks like #$%,"

    Microsoft has not filed patent applications, and the confidentiality provisions protect or mitigate the company's filing rights. One of the focus areas of IP protection has been user interface, hence Microsoft cannot permit screenshots of the UI.

    So, I guess the real question is: who would patent '#$%,' (Starts with 'sh' and ends with 'it')?


  • Custom Panels Hack

    Filed under:

    In the current Avalon build, you cannot databind to a custom panel...Unless you use this hack:


    In order to implement a custom panel, you have to access the Children property do measurements and arrange. The problem is that in a databound environment, there is a bug, so you need to use the protected internal property InternalChildren that all Avalon panels use.

    UIElementCollection children = this.GetType().InvokeMember("InternalChildren", BindingFlags.FlattenHierarchy |

             BindingFlags.GetProperty | BindingFlags.IgnoreCase | BindingFlags.Instance | BindingFlags.NonPublic |

             BindingFlags.Static, null, this, null) as UIElementCollection;

    foreach (UIElement child in children)


             // ...


  • IE7 ##

    Go ahead and check out the IE7 details Robert is talking about. Now, go ahead and read the comments (There's a lot of them).

    "I can't wait!"

    "I'm on the edge of my seet, keep up the good work!"


    What a bunch of suck-ups. Come on. Everyone knows IE7 is in response to Firefox. The details of IE7 that I have heard are nothing close to innovative, they are simply bug-fixes. There is no way that IE can afford to be innovative. They are tied down as the cornerstone of the browsing experience for Windows.


    As John Stossel would say "Give me a break."

  • Data Converter - IValueConverter

    Filed under:

    So, how to convert a databound value at runtime...IValueConverter


    public class Converter : IValueConverter{

             public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)


                      int i = (int)value * 2;

                      return i.ToString();


             public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)


                      return null;



    public class Data


             public int Value




                               return 5;






             <l:Data x:Key="data" />

             <l:Converter x:Key="converter" />


    <Grid DataContext="{StaticResource data}">

             <TextBlock TextContent="{Bind Path=Value,Converter={StaticResource converter}}" />



    So, we passed in a value of 5, and now it should show up as 10...

  • Tiger Dashboard Rocks

    Tiger Dashboard is so cool. The interaction and interface design is top notch. Could you expect anything less? After watching this video, I am thinking about buying a mac.

    And who says that a killer app doesn't sell a computer. By the way, when are PC makers going to get their own Jonathan Ive?

    End-to-end, Macs are great machines. The only problem is that they never figured out their problem. Windows isn't popular for Windows. Windows is popular because they were nice to developers (most of the time), and gave them cool stuff to use and great platforms to build on.


    Now, if apple will grab the Mono kit and run with it...

  • The Saga continues

    Between the last post and this, I just took 2 shots of everclear, because I need to clear my head. I am very discouraged right now...


    Has anyone stepped back and realized what kind of crap we do? Over and over.

    Just earlier today I was reading Rocky talk about how we keep changing the communication infrastracture (RPC, IIOP, DCOM, RMI, Remoting, Web services, Indigo) and never have we had enough time between revs to do anything interesting.


    Where are we going? Is it better? Says who?


    It's no secret why IDEO is the best. They follow real people around and find real problems. Too often there are engineers making the decisions. Too often there is management making the decisions. They only should decide implementation, the rest should be left up to the real users.

    You would think software has advanced. It lets me do this or this, and do it better. But, no. We're just repackaging the same crap over and over. I'm guilty, the app I am working on is all about repackaging. I am trying to fix mistakes of other people. I'm trying to build a product for someone real. I never said I was perfect, but I will be dead the day my software ships that real people can't use it.


    I love Avalon--I really do. But, real people use Windows 98 or Windows XP without any service packs.

    Iteration is good. And, we should get Avalon and Indigo. But, come on--I swear I'm just getting good at WinForms.

    Is there such a thing as keeping up with the Jones' in software. I don't know, but it sure seems probable.


    Who is out there looking for real problems? Not the next one, the real one. Who's out there following around people and finding out what makes them tick. Finding their weak spots, and areas of concern.


    Not software developers...They tell you what you want, and that's what you get. They know best, they work with the problem on their dual AMD opteron quadruple by-pass Windows XPert. And, that's the problem--real users don't.

    Users are stupid. Of course. Keep telling yourself that. I hope one day, you are the user. Then, you will know how it feels.

    But, don't tell me about your problems. Software developers are busy readying last years crap in this years box. Got my drift. Go on down the street, ask them for help.


    And, the code...Well you know, it's also crap. Why do we keep rewriting everything, because last year the code sucked, and this year it's the same, but we spent 2 months more time. Hope you like it...But, when you do have problems, go down the street. Or better yet, send it to support@xyz.com, that way, we can do a batch delete. Humans, we don't have those types around here. We like to make our crap and give it to people without names so that we don't have problems. That way, no one feels bad when we get bug lists. Outsource, insource, it all sucks. Who's out there working for me?

  • Save your VCExpress *Project* or lose big

    Well, I had a power outage today, and a big Avalon project I have been working on is now gone...

    I did a search on the disk and I couldn't find anything, it's so deceiving that things act like they are saved, but I guess they really aren't.

    Just make sure you don't make the same mistake--It's so discouraging. It's crap, actually. I hate computers...

    Who's out there actually creating software for real people?

  • Avalon layout engine and percentages

    Filed under:

    Is it just me, or is the Avalon layout engine a *** in my side.

    What I mean is that they used to have something called percentages (I.e. you could specify a width of 100%). They cut this because there were scenarios where people could abuse the system and put in incorrent values. For exmaple, you could create a button, where the width is auto (which means it auto sizes to its content), and then you could add a content element that has width 100% (which takes the width of the parent). As you can see, there is a problem here, the dependencies overlap.

    That's fine...there was a problem. But, by the same token--with percentages removed completely (except for stars in Grid), my layout is at least 40% as good as it was before. I have so much trouble trying the get items sized to their parents, which all I really want to do. I usually like to set top-level control measurements, and then have the children size in respect to the parent. But, with styles and the *Alias, none of this works.

    Maybe, it's because the interim build is broken, which I hope so--but I need a better way to do layout--this just isn't working.

  • Custom Controls in Avalon Article

    Filed under:
    Custom Controls in Avalon Article...(Click here)

    A real lap around longhorn to build a toolbox control.

  • Conviat Agave

    Filed under:


    I’d like everyone to check out Conviat Agave and let me know what you think. I am just putting it in beta, but I know it is stable enough to try. I’d like all the feedback I can get.


    By the way, it is .NET 1.1 and not Avalon (for the time being, at least).


    Here’s an image of the weather:


    Since this a longhorn related site, I will justify this post by using Conviat Agave as an example of how Avalon applications may work and look:

    • All corners are now rounded
    • The color palate is much more extensive, but at the same time unified into a congruent look
    • Custom controls and custom navigation is the norm
    • Navigation is first class (although my navigation is only within web pages at the moment, it will be extended to every part of the application very shortly)
    • The layout engine is a two pass optimized engine just like the one in Avalon –with FlowPanels and Canvases…
    • Besides an initial installer, Conviat Agave runs on a ClickOnce architecture for up-to-the-day synchronicity with my current build


    There is more information at my site: http://www.conviat.com/Agave.aspx


  • AvalonXP is King

    Filed under:

    Since the WinFX CTP hit the street, I can already see that Longhorn is out of the question.  What do I mean?  Well, with such a large install base on WinXP and no real advantages to Longhorn, people may as well have forgot about it.


    And who says Microsoft hasn’t changed.  This was definitely a move for the customers.


    Anyway, I predict that the version that is after Longhorn –which includes WinFS, will be the kid to watch.  That will be the final fulfillment of PDC2003.

  • Visionaries, Back to the Drawing Board

    Filed under:


    Many visionaries predict that the next Windows will be built through the web browser.  They believe that Google will host these largely distributed applications, and Windows will come crashing down.  This is only slightly after the fact that they had a hard enough time selling consumers on the idea of open source.  I guess they didn’t think roach motels were that hard to break.  The plan seems great, it seems futuristic.  I go to any computer and log in to find that all of my applications and data are there to use at a whim.  Sounds terrific!  I mean, look at all of the visionaries who are predicting it.


    Well, on second thought, many of the visionaries have a significant stake in making it succeed.  That is their only way to tap the money they so dearly want.  So, in a sense, these guys just don’t see it as the future, they see it as the only future in which they survive.  Are they visionaries or businessmen?  Look, let’s be honest, everyone wants a slice of the pie; I’ll give them that much, at least.


    They just forgot one thing…On small thing…


    Computers have continually advanced throughout time.  And, it is through this progression that people become dependent on the infrastructure and presentation to which they have become accustomed.  They will only upgrade if the next big thing sits on the shoulders of the past.  Imagine that I came out with a killer word processor with AI (Artificial Intelligence) and the likes, but it ran on a character-based input.  I wouldn’t sell one copy.  This is a drastic example, but it proves that I must use a GUI (Graphical User Interface) in order to take the next leap and add AI to my word processor.  It is a requirement, not a suggestion.


    Now, fast forward till today.  On one hand, there are these games that keep coming out that have killer graphics (absolutely spectacular), and on the other we have the static web, with a few hints of dynamism.  On the one hand, we have these people getting used to playing these games with rich interaction, on the other we have a system where information is seamlessly connected to everyone.


    Now, do you seriously expect people to drop the games?  Or do you expect them to drop the interconnectedness?  I suspect neither.


    People want stunning applications with magnificent graphics, extravagant interaction, and incredible connectedness. 


    So, please tell me, visionaries, how in the world do you plan for me to turn my back on the graphics and responsiveness that I have become accustomed to?  I think you can’t ask the question, it’s ridiculous.  I may be biased towards rich graphics since this article comes to you from a source who is a major proponent of the Avalon graphics system for Windows.  But, it’s not just me.  Everyone loves rich graphics.  That’s why those computer animated films are becoming so popular.  Pixar and Dreamworks are making great products, and people love them (if you don’t believe, check how much money they have made).  People love TV.  That is almost too evident.


    Software is at an age in which graphics and UI (User Interface) really matter.  If you don’t have a great experience, your customers won’t use your product.  Point.  And, that is only the tip of the iceberg.  I think modern UI’s are antiquated.  Microsoft Office is great, but I feel a revolution is upon us.  Transparencies, rounded edges, gradients, and animation are a few of the concepts that are around the corner.  Stunning interaction in which things are moving with crisp refresh and making me enjoy the product, connect with it.


    How does a designer make a user connect with their product?  They make their product evoke emotions in the user.  So, that they have a bond.  When the next version comes out, they are hesitant to upgrade, no because it is not a better product, but because the user and the product are bonded.  They share feelings together.  I have digressed, but this is the next step in software.


    Now, onto the web.  The web is also antiquated, at least for the sake of the users.  Like it or not, Microsoft has brought the computer industry so far in the simple fact that there was only one platform.  I don’t care if you don’t like it, but we, as a society, were not to the point where our software from different platforms could integrate seamlessly.  I just can’t begin to say how much that one monopolistic operating system has done for us, for the sake of users.  For the sake of my grandma.


    But, the web is only what its name implies – a communication network.  HTML over HTTP is just one aspect.  Why does the web have to be so apparent?  When I want to check stock prices: I care nothing about web browsers.  I care nothing about web sites and domain names.  I care nothing about navigation and advertisements.  I care about the stock prices and that is it.


    We are on the verge of abstracting the web.  Why?  Because my grandma doesn’t care about the web.  She cares for ideas and information, and the web is just a confusion point.  She cares for rich graphics and interaction.


    There is no reason why I should beat the idea with a stick, but you see where I am going.  You may ask how I am so sure this is where things are going.  The answer is because I am working on a product weeks away from shipping that encompasses all ideas that I have talked about, and users love it.  If that isn’t evidence enough, then I don’t know what is.



  • Flex has potential

    Filed under:


    Over the weekend I decided to play around with Macromedia Flex.  This stuff is really cool…really!  I swear if they had a full code backing – like .NET, and all of the UI was handled by their goop, they would have a killer app.  I was doing some serious thinking and I don’t think it would be that hard – just sort of mask all the Flex controls with .NET controls, and then interop out (or however) to the Flex UI layer.  If Flex (Flash) is coded well enough, it should be a walk in the park with the declarative markup already written, everything is probably abstracted well enough.


    Did you hear that Chris Coenraets or Matt Chotin…put some serious ability (code, real code) behind your graphics and you could put Avalon on XP to bed.  Think about it: the Flash graphics platform has already shipped (long ago), and the redist is small.


    Flash is just so much more appealing than WinForms.