Joshua Prismon's Technical weblog

.NET News Now

  • Anyone from the MS-Word team around?

    I am not sure how many people here are aware of the discussion going on right now about some supposed memos unearthed from the late 60s/70s. While the debate itself is political, the actual question is fairly technical. Someone pulled up the memos and started typing them into Microsoft Word (with the truetype Times New Roman)  and discovered that the output looks identical to the supposidly old and typewritten memos from the 60s. In fact, It's even Superscripted exactly where Word auto superscripts. Never-mind the proportional fonts and the fact that the signature is now being called into question. The theory is that this may have been written in word and photocopied 10+ times.

    Here is the original version:

    Here is the new version typed in word and printed in PDF:

    Here are the two layered on top of each other:

    The debate has focused around the idea to try and disprove that any typewriter in the 60s/70s could have actually published this. Rather then try and prove a negative, how about prove a positive. Is there anything in this document that definitively proves that it is modern? In particular, there definitely seem to be some TrueType hinting going on (check out the my/regarding etc).

    If this post is too political, I will happily remove it. I am more curious whether we can prove it was Word or not.


  • Go Space Ship 1

    Congrads to the team for going orbital. It's nice to see any sort of new space record set ;-)


  • Annotated Reference...

    After loosing the last six months to a java project, I finally get to turn my attention back to .NET. To try and catch up on things, I just picked up a copy of Brad Abrams BCL Annotated Reference. Most interesting. More as I get thru that. Finally installed Whidbey and VS2005, and I am looking forward to seeing what improvements they and the mono team are up too.


  • $199 or No....

    Lance Wrote:

    Special Access to Longhorn and Whidbey PDC Release Code Active MSDN Operating Systems, Professional, Enterprise, and Universal subscribers may request a set of software distributed at the Microsoft Professional Developers Conference 2003 (PDC), including the preview versions of the "Longhorn" operating system and SDK, and Visual Studio "Whidbey". Eligible MSDN Subscribers can request the previews by calling MSDN Customer Service. Certified Partners and Breadth ISV / Empower partners should contact their respective Service Centers for further assistance. Note that the preview package contains DVD media, and a DVD drive is required. Please allow 3-4 weeks for fulfillment.
    Actually, I called them up earlier today, and they stated that it would be $119. They also stated that it would only be available for PDC members, so I suspect that there story is still a bit up in the air, so I will try calling back later. This PDC stuff (and the lack of budget at my company) is killing me, but at least there is some good documentation out there. /me heads back to read more on XAML.

    One of the things that got .NET off the ground was the availability of the Beta2 bits everywhere. I hope Microsoft continues with that


  • Excited...

    Sounds like both XAML and ASP.Net2 have support for partial classes. This sounds excellent. UI is seperate from Design (in the form of partial clases) yet simple in class access to private and protected members. Neat Design.


  • Postback's of dooom

    I got “instructed” by a friend to blog some of my more informative forum/list/newsgroup posts, especially the following one which describes the general mechanisms of events with webcontrols, so here you have it. (Names and emails removed to protected the guilty)

    Here is an abbreviated look at the lifecycle:

    Load ViewState Data
    Load PostBack Data
    Fire Events

    To fire control events at a base level, you implement either
    IPostBackDataHandler or IPostBackEventHandler.

    When you implement IPostBackEventHandler, you are saying that when the
    page has determined that your control was the cause of the post back it
    will call your RaisePostBackEventHandler implementation during the "Fire
    Events" phase. Buttons implement this, for when they are clicked. In
    that method you should raise your event.

    When you implement IPostBackDataHandler, you are saying that your
    control has post data that you need to examine in order to determine if
    an event needs to be fired. The page will call your LoadPostData
    implementation during the "Load PostBack Data" phase. Here you look at
    the post data to determine if you need to raise an event, but you don't
    raise it now. If you return true from this, the page will call your
    RaisePostDataChangedEvent implementation during the "Fire Events" phase.
    Now you raise your event. Textboxes implement this interface, to
    determine if they should raise their TextChanged event.

    Those are the low-level event mechanisms. However, if you are
    implementing a composite control, you have another, higher-level choice,
    which is to handle the events raised by your child controls in order to
    raise your own events. Sometimes this is done via event bubbling, other
    times by creating a whole new event. To do this, progmaticly hook up the
    eventhandler as you are creating the child controls. This is the way the
    datagrid works.

    Andy Smith
    Chief Code Monkey

    [Andy Smith's Blog]

    Funny you should blog over this, since I have been grappeling with it the last few days. As a interesting side note, simply implementing System.Web.UI.IPostBackDataHandler doesn't always seem to result in postback's being routed to public bool LoadPostData().

    Because of the way that I was generating my controls (reflection at dynamically proxied objects, which change depending on the database structure, and the current user) and because I was a idiot a couple of times, I was running into weird bugs where I would have three postbacks pending, but after the first postback was called, neither of the other two were delivered. There were also business rules that say things like: "You must add the password to the object before adding a username." Because of all of these problems, I decided that I needed to handle Postback's manually rather then let do the lifting for me.

     Even though I use three layers of objects to determine rendering order (PropertyGrid, Panel, Row), using three layers made dispatching Postback's a bit more difficult. I ended up overriding the Render() method on each object and used ListArrays to determine what needed to be rendered at each point. The trick was that even though I was rendering three layers of a tree, I put all of my controls in the top level ControlCollection. This made it much easier to dispatch and control postback's carefully. Then I used LoadPostData to write data to my proxied objects via reflection and to the Textboxes and whatnot. What I am striving for is a single control that I throw at any arbitrary object, add a few attributes and voila, a nice data entry system.


  • The right tool for the right job?

    In a blog entry entitled: JetBrains Selling Arms to the Enemy?, Carlos Perez summed up the entire .NET vs. Java battle:

    Okay, I don't want to be controversial, however after reading the latest blog from the CTO of JetBrains, I just got to sound off! For the uninitiated JetBrains is the developer of the kick-ass Java IDE IntelliJ IDEA. It appears that JetBrains has a plan to develop, god forbid, a addin for VS.NET! See, Java developers have for a while now have a enviable position of having bleeding edge coding tools. Something many in the .NET community aren't aware of and therefore don't miss.

    Now, I'm not against companies exploring new market opportunities. However, isn't creating an addin for VS.NET just like selling arms to your enemies?

    Rather then review the many incorrect technical points that Carlos has made in the 101 list, as well as the technology changes that have now led to .NET leading Java in terms of programmers and new projects, I will focus simply on the above points as well as another post that I somehow missed (probably because I un RSS'd subscribed him).
    "Do More With Less" the latest marketing slogan from Microsoft. Is there more to this than a spin on their technology or could this be more of a subtle hint, an invitation to go offshore? ....

    Is it any wonder that the Microsoft group, that built the Java to .NET converter (i.e. JLCA), is based in India and Costa Rica? I don't know where the other Microsoft migration tools where developed, however I can bet you that Microsoft's "center for excellence" in porting and migration is located in some offshore location.

    You can read the full argument Here As usual the arguments tend to be rhetoric based on his own personal observations rather then any statistical analysis. Most of the projects I have seen have been old C++ or technical support systems rather then the architecture of new projects or ports which tend to require much more "lead" experience, but I digress.

    Now, my latest project is back in the Java/JSP world, and I am amazed at how well the platform has done (primarily via eclipse) in this time since I started .NET only a few years ago. I am glad that these innovations are leaking over. My .NET projects are also rolling around, and I just completed a JSP/SOAP/.NET project for integrating to a old data system. Which ever tool works better for the job is the tool that I try to use.

    The problem with the entire ".NET vs. Java" battle (of which Carlos Perez seems to be the most voracious defender) is that discussion is that he seems to focus on "us vs. them" or "America vs. India" or "Java vs. .NET." Rather then applaud the fact that some programmers are now getting better support for refactoring he would rather complain about JetBrains "Selling Arms to the Enemy." Rather then complain about it, how about working on making Eclipse a better project (Eclipse has made me re-examine my assertion last year that large projects in Java should be limited to the server only). Java is showing good signs of innovation for the first time in a while, including attributes and better event support (my favorite parts of the CLR).

    Any American steel worker can tell you the futility of hoping for protection against innovation by other companies in other countries. Likewise either the Java community or the .NET community ignoring innovations will result in a worse system for us, the constituents of each community. I for one look forward to some good refactoring support in .NET. I hope Java gets better. Which ever fits the task better will be what I recommend. Period.


  • view

    Just Because:

    Qualitative analysis of your type formula

     You are:
    • distinctively expressed extrovert
    • slightly expressed intuitive personality
    • moderatly expressed thinking personality
    • moderatly expressed judging personality


  • Not going to make it....

    A last minute trip is going to keep me from going To the colorado tech blog meetup. (Bummer). However, unless you guys decide to cancel it, go ahead and do it. Sorry for the late notice, I didn't know myself until yesterday. Really bummed that I am not going to get a chance to meet you all. (Check this article for comments)!


  • Blogshares...

    Very amusing... Have to play with it.... As a matter of fact: Listed on BlogShares Listed on BlogShares