Marquee de Sells: Chris's insight outlet

Thoughts that Chris Sells has about whatever interests him that day

Last build:
Language:
en-us
Feed URL:
http://www.sellsbrothers.com/news/rss.aspx

RSS FEED IDEMS: Marquee de Sells: Chris's insight outlet

  • On Beyond Unit Testing

    Quetzal Bradley is a software development engineer (SDE) on my team with *tons* of experience in all manner of infrastructure stuff including the requirements of real-world software testing from the trenches at Microsoft.

    Q gave a talk about what comes after unit testing to my team and I was blown away, so I sent him to tell Scott about it so that you could hear it, too.

    Enjoy.




  • My Favorite Blog: Scott's computerzen.com

    If I have time to read the web, I go to digg.com first, computerzen.com second and very little after that.

    Just this morning, I enjoyed Six Months in the Inside - Am I evil yet?, Amazon Kindle and LINQ to Everything - LINQ to XSD adds more LINQiness. The Kindle review was especially enlightening because it was the first one I've read that actually a) covered the stuff I care about and b) pushed me off the fence about whether I want one (I do!).




  • Programming WPF: "Programming Book of the Decade"

    *blush*




  • Programming WPF enters 2nd printing!

    Wahoo! You love us, you really love us! : )

    When a book goes to another printing, 100% of the time, there's a list of "errata" (aka "mistakes") that are fixed in the new printing. In this case, neither Ian nor I have any fixes to apply. So, it's official -- the book is perfect! : )

    Thanks for reading.




  • Bridging object models: the faux-object idiom

    My 1997 master's thesis came online today (he says, trying not to flinch). Here's the abstract:

    Microsoft's Component Object Model (COM) is the dominant object model for the Microsoft Windows family of operating systems. COM encourages each object to support several views of itself, i.e. interfaces. Each interface represents a collection of logically related functions. A COM object is not allowed to expose multiple interfaces using multiple inheritance, however, as some languages do not support it and those that do are not guaranteed to do so in a binary-compatible way. Instead, an object exposes interfaces via a function called QueryInterface(). An object implements QueryInterface() to allow a client to ask what other interfaces the object supports at run-time.

    This run-time type discovery scheme has three important characteristics. One, it allows an object to add additional functionality at a later date without disturbing functionality expected by an existing client. Two, it provides for language-independent polymorphism. Any object that supports a required interface can be used in a context that expects that interface. Three, it provides an opportunity for the client to degrade gracefully should an object not support requested functionality. For example, the client may request an alternate interface, ask for guidance from the user or simply continue without the requested functionality.

    COM attempts to provide its services in as efficient a means as possible. For example, when an object server shares the same address space as its client, the client calls the functions of the object directly with no third-party intervention and no more overhead than calling a virtual function in C+ +. However, when using COM with some programming languages, this efficiency has a price: language integration. COM does not integrate well with a close-to-the-metal language like C+ +. In many ways COM was designed to look and act just like C + + , but C + + provides its own model of polymorphism, object lifetime control, object identity and type discovery. Of course: since C+ + is not language-independent or location transparent. it was designed differently. Because of these contrasting design goals, a C+ + programmer using COM often has a hard time reconciling the differences between the two object models.

    To bridge the two object models, I have developed an abstraction for this purpose that I call a faux-object class. In this thesis, I illustrate the use of a specific instance of the faux-object idiom to provide an object model bridge for COM that more closely integrates with C+ +. By bundling several required interfaces together on the client side, a faux-object class provides the union of the operations of those interfaces, just as if we were allowed to use multiple inheritance in COM. By managing the lifetime of the COM object in the faux-object's constructor and destructor, it maps the lifetime control scheme of C+ + onto COM. And by using C+ + inline functions, a faux-object can provide most of these advantages with little or no additional run-time or memory overhead.

    COM provides a standard Interface Definition Language (IDL) to unambiguously describe COM interfaces. Because IDL is such a rich description language, and because faux-object classes are well defined, I was able to build a tool to automate the generation of faux-object classes for the purpose of bridging the object models of COM and C+ +. This tool was used to generate several faux-object classes to test the usefulness of the faux-object idiom.

    Enjoy.




  • .NET Source Code Mass Downloader

    On 1/16/08, Microsoft announced the ability to download some of the .NET Framework source code for debugging. This download process was only supported inside of a properly configured Visual Studio 2008.

    21 Days Later: Kerem Kusmezer and John Robbins released a tool to download the source code en mass. Frankly, I'm surprised it took so long. : )




  • I woke up today and decided to win the lottery

    And so I did the only thing I could to do increase my odds -- I actually played the lottery. (I blame my inability to apply this strategy for my lottery losings in the past.)

    I did a little research and then went to two local Plaid Pantries to purchase the Oregon Lottery "Trio."

    At the first Plaid Pantry, an thin, stringy haired older lady behind the counter blinked in surprise when she saw me and then laughed to herself.

    "I just saw your geek pin. It's so subtle... geek..." she said. "I wish I would've paid more attention to geeks when I was growing up. I only paid attention to the rockers."

    "Well, that's pretty common," I said.

    "But they're dumb and self-centered!"

    "Yeah, but they get all the girls..."

    "Well, I'm not a girl anymore and I prefer nerds. They're more stimulating!"

    "Well," I said. "On behalf of the geek community, thank you."

    She smiled, handed me my tickets and I left proud of my geek heritage.

    At the second Plaid Pantry, a crowd had formed at the front desk. I got to the front of the line and a little old lady with a plastic tiara was cutting into a homemade chocolate fudge cake. The lady behind the counter said, "It's her birthday! And we love her!"

    "Your birthday!" I said.

    The birthday girl said, "Yep, don't you see my 65-year-old birthday crown?"

    "Lovely," I said. "Happy birthday!"

    The lady behind the counter said, "Well, no one was going to make a cake, so I did. That oughta be against the law."

    I agreed and placed my Trio order. On the way out, I was happy to have been even a short part of that woman's birthday at the local convenience store where she was loved.

    I decided to walk across the street to the locally owned coffee shop, tucked away off the main streets, fighting for survival against the Starbucks juggernaut. I walked in, said good morning to Ju, the owner and proprietor, who immediate started making my standard order. I haven't been there for months, but he still remembered what I wanted.

    It's already been a good day. Think how much better it'll be after they announce my winning numbers? : )




  • Poetry Proclivities

    I'm not a big poetry fan in general, but notable exceptions are Poe's The Raven (especially the Simpson's version), Dr. Seuss and Shel Silverstein.

    However, I have to admit a certain fondness for the lowly limerick. I've done some composing, but the subject matter is often not something I'd want to post on my blog ("Hi, Mom!"), so when I ran into the rare clean one, I had to share:

    A Limerick packs laughs anatomical
    In a space that is quite economical
    But the good ones we've seen
    Very seldom are clean
    And the clean ones so seldom are comical

    I've seen geek poetry, geek activities as song parodies, programs as songs (genius!), but I've never seen a geek limerick. Got any?




  • Configuring VS08 to Debug .NET Framework Source

    Shawn Burke has released the details to set up VS08 to debug into the .NET Framework source code, including the following assemblies:

    • mscorlib.DLL
    • System.DLL
    • System.Data.DLL
    • System.Drawing.DLL
    • System.Web.DLL
    • System.Web.Extensions.DLL
    • System.Windows.Forms.DLL
    • System.XML.DLL
    • WPF (UIAutomation*.dll, System.Windows.DLL, System.Printing.DLL, System.Speech.DLL, WindowsBase.DLL, WindowsFormsIntegration.DLL, Presentation*.dll, some others)
    • Microsoft.VisualBasic.DLL

    Others are coming. Thanks, Shawn!




  • Bookscan says "Programming WPF" is #3 .NET book!
    Wahoo!


  • WPF Book Easter Egg
    Does anyone have both the Anderson WPF book and the Griffiths/Sells WPF book? If so, have you read Don's forewords in both books?


  • The Annotated Turing!
    I just saw that Mr. Petzold is re-publishing the paper that started computer science and annotating it so that even I can understand it. I can't wait!


  • Time for some anti-social networking

    OK, just after all my friends are on FaceBook, now I'm getting the requests to join Spock.com. I don't know what Spock.com is, but after the address-book thingie, MySpace, the high school alumni thingie, Friendster (?), the Google ork-something, the business thingie and most recently FaceBook, I'm all done. All I ever do on these sites is approve friends requests! Isn't there supposed to be some value to it other than that?

    Oh, sure, I've had a few messages from people I haven't heard from in a while, but email works for that. In fact, email works for a helluva lot of the internet apps I see today. Plus, most of them just forward web form results to my email anyway! Why do I need a whole other thing when I've already got all my friends listed in my address book?

    I declare the social network backlash officially started!

    From now on, I'm going to be doing some anti-social networking around the ol' Casa de' Sells. If you want me, you know my email addresses, how to post comments on my blog and my phone number. That should be enough.

    "*cough* When I was a boy, we didn't have these fancy social networks. *cough* *cough* We had email and we were happy to have it!"

    "Yes, Grandpa. Shhhh...."




  • "So easy to read, it should be illegal"
    Thanks very much "ET" on the Canadian Amazon. I can think of no higher compliment. : )


  • WHS Continues to Rock My World

    In the same way that .NET manages memory for you, Windows Home Server manages storage. All you have to do is tell it the names of shared folders you want it to have and which computers to back up and it will spread it and duplicate it across however many HDDs you have, without you worrying about which actual HDD your "Music" folder is on or where your wife's computer is being backed up to.

    Plus, if you have more than one HDD and you have "Enable Folder Duplication" enabled for a shared folder, the data in that folder will be shared across multiple HDDs, effectively giving you the benefits of RAID without the config muss and fuss. (It's my understanding that this cross-HDD data duplication happens automatically for backed up data, but I don't know how to confirm that empirically without risking the data.  : )

    Because a 750GB SATA HDD was $156 at newegg.com, it was a no-brainer to pick one up. It arrived today and it was mean-time of 10 minutes between tearing the tape off the box and the new HDD being used for data storage on my WHS. I didn't even have to turn off the HP MediaServer machine!

    All I did was pull an empty drawer forward, place the new HDD into it and push the drawer closed. Seating the drawer also seated both the data and power connections on the HDD itself, no wires or plastic connectors needed. I want all HDDs to work this way!

    10 seconds later, the little light went on that said my new HDD was ready to be added as storage to my WHS, which only took right-clicking in the WHS console (already updated to display the new HDD) and adding it as storage. Another 10 seconds and some additional settings changes to enable folder duplication on my shared folders and the new HDD is in active service, providing redundant storage for all the data I care about in the house.

    Really, the only problem I have now is that I only have enough data to fill 14% of the 1.4TB of new storage space. Maybe we need a Windows Friends & Family Server and I could rent out the extra space? : )




Submit your RSS Feed

Subscribe to this RSS Feed

Copyright © 2006-2007 Listopica, Inc. RSS Feed Directory