in

ExpressionBlog.com

Microsoft Expression Studio Community

This Blog

Syndication

Mirrored Blogs

Browse by Tags

All Tags » Programmer insanity (RSS)
  • Organizing Lots of Information

    A very smart and frequent participant here wrote in today and said (paraphrasing)   ...Why do you  organize the Learn section around type (video, quickstart, tutorial) instead of topic/task (data binding, layout, browser integration)? Today I had a Data Binding question...I remember seeing what I wanted on Silverlight.net but not where. I looked at quick starts, then videos and finally found it in tutorials. Doesn't it make sense to have everything about Data Binding together? Great question!  I have three parts to my answer at least: 1. We are going to be reorganizing this site in the coming months to make it more useful; that is certain. What I'm about to write, though, has nothing to do with that process. 2. What is useful for one person is not always useful for everyone else, and one reasonably difficult thing to agree on is categorization, though you wouldn't think so. A quick social psych experiment: next time you are a party, ask someone to empty their pockets and to separate the contents into six logical piles. Refuse to provide further guidance.  Once they are done, ask them to explain their piles.  You'll find over time that everyone can do it, that everyone can explain in some detail why these are the logical mutually exclusive piles, but that everyone's criteria are different. 3. I have not discussed what I'm about to say with anyone else, nor am I sure that this way of organizing our tutorials and videos would be useful to anyone but me, but I did enjoy losing an hour thinking about it. If I were using this site; I'd like total control of how I access the learning material. I'd want to be able to find the material by topic, by type or even by who created it. But I would want all these "boxes" to be transparent.   I want to know what is in them before I open them, to minimize hunting around, and I want to be sure that whichever path I take I can always change my mind.       In this truly geeked out approach, I'm asked to choose if I want to see the available information by Topic , by Medium or by Presenter , but I don't have to guess what is under each of these choices. Let's assume that I prefer the presentations by that incredibly talented chap Liberty, and so I click on his name. This opens up the sub-menu that displays the contributions he has made, but once again I can choose to see it organized by topic or by medium (of course, just the...
  • Will Silverlight Controls Become More WPF Like - A Personal Opinion

    I was told when I joined Microsoft that I no longer had personal opinions about matters having to do with Microsoft software, and certainly not about Silverlight. As a "Blue Badge" I'm just exposed to too much confidential information to be seen as offering informal speculation or personal opinions, or so they said. It might even be true; who can really keep straight what you hear in back channels and what you hear inside your head (you don't hear little voices in your head? How do you get any work done?). About a week ago a very smart fellow wrote to me asking for a list of the differences between Silverlight and WPF. I responded saying that I didn't think such a list existed and (I added) "the list is shrinking all the time." He immediately picked up on that and asked me if I was hinting that there is a plan to make Silverlight 2 considerably more like WPF. Answer: I don't know. And I wouldn't say (we really are careful about not announcing features until they're cooked). But let me step away from what I do know and put on my rational individual non-employee hat and observe (keeping in mind how often I've been wrong over the past 2 decades!).... Silverlight was originally named WPF/E. The Silverlight controls are clearly and markedly very similar to and almost a subset of the WPF controls and Silverlight itself is very similar to and almost a proper subset of WPF - so much so that you can take a Silverlight application and plop it into a WPF application and it works. So we can't be that far. It is just that some things don't work quite the way you expect. For example, I blogged earlier about the fact that click events don't bubble. I sorta' kinda' understand why not, but they don't in Silverlight and they do in WPF. Will that change? Will they, eventually bubble in Silverlight? I don't know . But again, let's think about the pressures on the programmers logically. Here are these guys who build the Silverlight controls (e.g., the button) who are incredibly and justifiably proud of what they've wrought. They use the controls themselves. They also read the email from customers and from WPF programmers and from others, many of whom are confused by (or outraged by, or annoyed by, or mildly bemused by) the differences between Silverlight and WPF behavior. I'm guessing they'd like the Silverlight click event to behave the same as the WPF click event. Either they think the...
  • More on Routing and Bubbling

    One of the readers of my earlier post on routing and bubbling was left confused about when events are bubbled and when they are not. The documentation is clearer about this in some places than in others. For example, the Mouse events documentation has this to say: There are two things to notice here. One is that this particular documentation does clearly distinguish those events that bubble from those that do not. The second is, unfortunately, that the first sentence unfortunately seems to equatebeing a routed event with bubbling. What I think it means to say is "are routed events that bubble"  The documentation shows that MouseEnter (which does not bubble) is an event of type MouseEventHandler and MouseEventHandler is a delegate for three non bubbling events: So.... we can safely conclude that All bubbling events are routed events but Not all routed events bubble ( All C# Programmers are human, but not all humans are C# Programmers * ) So which events Do and Do Not Bubble and Why? One rule seems to be that any event specific to a control does not bubble. That means that Button.Click and Slider.ValueChanged do not bubble. Wait a minute! What would it mean for Slider.ValueChanged to bubble? Where would it bubble to? What could contain a slider that could possibly do anything with the ValueChanged event?  Clearly that event needs to go to the Slider and nowhere else. Okay, what about a ListBox which has SelectionChanged. Where should that bubble to? We're beginning to see the pattern. Most of the time, it doesn't make sense for the events specific to a given control to bubble. (Clearly not all of the time - Click is a good example where you might want a control event to bubble,  but you can work around that as we did in the previous example with mouse up.) In WPF you can decide because there are three types of Routed Events (Bubbling, Direct and Tunneling). In Silverlight, for Beta 1 at least, what has been put in place is that control-specific events do not bubble and what does bubble is many (though not all) of the more fundamental events  such as MouseDown/Up/Move,  which lets you get what you want, though not always as elegantly. One of the other comments was that this "must be fixed."  I'll post my own speculations on that tomorrow, but whether or not this is changed, a few things are becoming clearer: It is possible to accomplish all the event handling you might want as implemented There certainly...
  • Scott Guthrie

    My first posting of the Road Map to the Silverlight 2 Tutorials was linked to an earlier draft, which is why it was taken down (these things happen). Unfortunately, RSS being what it is; before one can sat "Stop the presses!" archives appeared in various places, and so that mistake will live on for a while. This is actually not a terrible thing, because those early versions said the series is by "Jesse Liberty and Scott Guthrie" and you will notice that the series as published does not say that. Here's why: The tutorials were originally conceived by Scott, who also mentored me in getting them going, and shepherded and managed the early project. I wanted his name on the series as a recognition of that work and because, well because he's ScottGu. He asked that his name be taken off because he hadn't written them, and he doesn't put his name on material he didn't write. So, I took it off, but I do get to thank him and say that I've never met anyone with quite his combination of abilities to make things happen, stay deeply in touch with the technology, inspire others and squeeze 40 hours into 24. Now that he's a VP anything else I say (and probably all that) will sound like sucking up to the boss, but I'm too old for that, and he doesn't need it; with Steve Ballmer singing your praises, you can hardly care what I say. Finally, last mention of it, Scott has a great post on Silverlight 2 programming and a second great post on Silverlight 2 Programming with Expression Blend . (Those tutorials are his, and are not part of my Silverlight 2 Tutorial Series) So, I'm off to Mix to see Scott and (I'm so pleased) Guy Kawasaki and Ray Ozzie give keynotes; some of the most creative people in the field. Should be great times. Note that the keynotes will be available along with the other sessions at MIX08 sessions within 24 hours. NB: The Mix07 keynote on Silverlight literally changed my life (as noted in previous posts ) - so be careful when watching; you may end up on a jet to Redmond!
  • The difference between a geek and a snob

                                          In my recent post I tried to distinguish between my (mis?)understanding of the role of an Evangelist (helping folks figure out if they want to commit to Silverlight) vs my role  as I see it (helping developers lean and use Silverlight).  It is hard enough defining ones own role, let alone the role of others. My Evangelist friends define their role differently, more inclusively as people who are passionate about the technology they work with.  In that sense, my post reeked with condescension ("you guys are just in sales, I'm a developer).  It is the Dilbert attitude towards marketing (at times  deserved, but certainly not applicable in this case). So, live and learn. The interesting thing is, none of them complained; they are too busy getting their work done. Some other ideas: Evangelist   Evangelist   Evangelist All of which is to say, there are a lot of folks here at Microsoft who are spinning in circles getting ready to talk with you about Silverlight 2; eager to show off what we have, and hoping that you will be as enthusiastic as we are. Much more to come soon..
  • The Difference Between An Evangelist and A Geek

    Today's NY Times declares (ever so quietly) the beginning of the Netware wars (did I just coin that term?). They get a lot wrong in the article, but if you know more than they appear to, you can conclude that Silverlight and Air/Flex will be competing for the hearts and minds of the same developers. For some developers, that is certainly true. Moreover, many will be facing a strategic choice in coming months (we've seen this movie: DOS vs. CP/M, Windows Vs. Unix vs. OS2, and on and on). This is a choice that the Evangelists at Microsoft are well equipped to help you make (as, I suspect, are the evangelists at Adobe and at IWannaPlayToo, Inc.) But even though I was shocked and dismayed to see that Microsoft's computerized career planner has me on their Evangelism track I am not an Evangelist . Never was, don't think I will be. I spent the last 15 years of my life doing three things: developing applications, writing books and teaching. I was hired into the Development Division and I don't Evangelize (at least not on purpose). I'm actually pretty useless at telling you why Silverlight is a better choice because I take it as given and self-evident. Worse (much much worse) I don't really care which you choose (gasp!) except in terms of keeping myself employed, selling books and for other entirely selfish reasons. Some of the people I respect and like most built one of the flagship AIR programs, and seemed to have a good time doing it, so I figure Flex can't be the Devil's work. But I have no desire to be a Flex programmer (and I secretly believe, though they have not said so, that if Silverlight 2 were available when they started, they would have used that; of course they would, at least some of them were already .NET programmers. But I speak for myself, not them. I certainly would have, that's for sure). The bottom line is that I suspect that there is merit to both technologies, though I can't quite imagine why anyone would choose to develop in Flex now that Silverlight 2 is (almost) available, when Silverlight is part of a product line that runs from ASP.NET, through Ajax, to WPF and one that includes SQL Server and Visual Studio, all with one 800 number to call; as a developer I always preferred to have a single vendor so that they could never say 'oh the problem is that other guy's stuff isn't working' -- but truly I digress because that is just my preference. That is not a compelling argument. It's...
  • A note on reading, technology and mental illness

    I posted yesterday about Amazon's Media Library -- which I believe could be a great back end to a very cool Silverlight project and that led to a comment on the volume of my reading. I started to write a response but once you get me started talking about reading... well I thought I'd indulge in one more blog post during the gentle moments before Mix. There have been a few amazing changes in technology that have significantly affected my reading (though I admit I was always a serious reader -- see note below on reading and mental illness.) It started with Books. Remember books? I bought 'em by the truck load, back when Barnes and Noble was a single store on 18th Street and if you wanted a book you got on the train and went and bought it. Then came Books On Tape which was great: rentals I could listen to in the car (though I still felt compelled to buy printed versions to look at later). I started listening to in the early 1990s . They went out of the retails business just as I seriously got into The Teaching Company Lectures, which has gotten better and better over the years (Click here and then on Lectures, for my recommendations). But the big break through was Audible (the Platinum deal is great; I buy 4 a year) In the past 2 years I've bought a few hundred books from Audible. I love Audible. Wish they gave green stamps. Digital is so very much better than tapes. Especially digital that remembers where you are in the book. Or books. Gotta' be able to read more than one at a time. You really want more than one book with you at a time. And who can remember where all the tapes are? Audible is one thing, but what gave it enormous power was the iPod , er, ah the Zune, yeah, the Zune. Here's a picture of my Zune. (See, it says Zune right on it) Love my Zune. Got the 80 Gig. Ran out of room on my 8. Sometimes you gotta' read. Then there's print. Now, I still like reading, but books are heavy (and I fractured my shoulder in December, which quintupled the weight of every page. And remember, I have ADD, which means I like to be reading a few different books so I can switch off every ten minutes. Long flights require at least 3 books, usually more. And a couple magazines. Heavy. Also, I hate waiting for books to arrive from Amazon. Who can wait two days? That's crazy. Thank God for the Kindle Here's my ungrateful review . (Some people are never happy). Right now I have 7 books on the Kindle (including Bleak House, which is big...
  • Share Everything...

    Clearly one thing that social networking is about is exploring the limits on what you want to share and what other people might be interested in. There is, I'm sure, at least one sociology paper (and two reports to the D.A.) in this theme... Different social networking services have been more or less successful in getting folks to enter information about what they're listening to, reading, etc., but if there is one lesson after 20 years in this industry it is that people love to share, but they hate filling out forms more than 2 or three times. Ask most people who, unlike me do not have OCD, to fill in all the books they've read or all the music they've bought, and they get bored right quick. Amazon, however, is in a unique position to let you share without doing nearly that much work. All you need do is to agree to sacrifice a bit of privacy and hey! presto! instant lists and lists and lists. I've been keeping a list of books I recommend for a number of years, but it is a lot of work;   Now, with Amazon's Your Media Library I can start off with a list that Amazon keeps for me.     I can easily take a more visual view, which just cries out for a Silverlight front end, don't you think? (NB: I've chopped these images down to help them fit)   Hmmm.... the potential is pretty powerful. Even if I don't use their front end, there may well be a way to hook into their list as a web service or... a Sliverlight application.  It's way too late at night to figure this all out, but it is very intriguing, so I'm going to go dream about it and see what I can some up with. Meanwhile, if you write anything interesting that creates a Silverlight front end to this service, be sure to let us know.
  • Kind Words, the fuel of cooperative communities...

    A very kind reader sent this, and I am incredibly happy to share it with you. Stay tuned for another Tip of the Day later today. In getting ready for Silverlight 2 I've been playing with some early bits. Today I began to see how much easier some things are going to be and your eagerness to know is now far exceeded by my eagerness to tell . Soon, soon. [Interesting. I've been having some qc issues with images. Must keep an eye on that.]
  • One more gadget (the ego never quits)

    I woke up at 5 this morning, so I decided to take apart the Silverlight Tip of the Day gadget that Kelly White had so kindly created and, as an exercise in egomania, modify it to display all my blog entries, rather than just those that are tagged as Tip of the Day. It turned out to be an interesting adventure in playing with Sidebar gadgets, in the frustration of making sure you find all the references to all the images, and not much more than that (oh yes, it was a good time sink). In any case, here it is, if you want a copy: Silverlight Blog.gadget.zip . Just unzip it into the usual gadget folder and it will run side by side with the Tip of the Day gadget, or you can choose one or the other or neither. Now, to make this at all relevant, the next step is to put a Silverlight control together that does the same thing. That would be worth blogging about!
  • Tip of the Day - Getting Ready for Silverlight 2

    We have announced that Silverlight 2 Beta 1, will be released during the first 3 months of this year (that is, any day now) with a go-live license. It is important to keep in mind that this will be a beta product, and that 1.0 will be a release product, but you can bet that there will be a lot of interest in Silverlight 2 because it is... well.. fantastic.  And filled with great stuff. (And is the proximate cause for my ending 12 years as an independent contract programmer and becoming a  Microsoft employee!) So, as you can guess, like lots of folks in and out of Microsoft, I'm busy ramping up a huge amount of material have ready as soon as Silverlight 2 is released  (though I promise not to neglect Silverlight 1.0). And, like lost of folks, I've found that there is a lot to learn. I'm asked at least once a day how developers can start learning 2.0 even before they get their hands on the bits. Or the documentation. Well, I can in fact tell you, without getting fired, if I word it very carefully.  Silverlight uses XAML and while we've not announced the complete set of controls that will be implemented in Silverlight 2.0, if you review Scott's blog post again you'll find that we hae said that there will be layout manager support, two way databinding support, control template and skinning support along wth textbox, checkbox, radiobutton, StackPanel, Grid, TabControl., Slider, rich networking support, generics, isolated storage,   That turns out to be a lot of information about what to look for in Silverlight 2 (though not necessarily in Beta 1), and all of that is a subset of what is already well documented in WPF.  So if you are eager to get going, you can hit the books today with a good book on WPF. Here are three I think are particularly good : Programming WPF by Chris Sells, Ian Griffiths Read more about this title... Windows Presentation Foundation Unleashed (WPF) (Unleashed) by Adam Nathan Read more about this title... Essential Windows Presentation Foundation (WPF) (Microsoft .NET Development Series) by Chris Anderson Read more about this title... For example; let's say that in reviewing Scott's article you decide you'd like to get a head start on understanding how controls are going to work. No one can promise which controls will be in the beta, nor that they'll be precisely as they are in WPF, but I'm willing to go on record saying that spending the time reading chapter 5 in the...