Monday, May 31, 2004

Gmail is in trouble

Gmail is in trouble:






Anti Gmail Legislation



California Senate Passes Watered Down Anti-Gmail Bill 


So the California state government is passing legislation controlling an as-yet-unreleased technology service. I don’t think I’ve ever heard of such a thing before.



 

Rob Howard is leaving MS:
Via Dino. Rob is on the news today


Rob Howard, one of  brains behind the excellent provider model in ASP.NET 2.0 (sure, not just that...) leaves MS. I want to wish all the best of luck (and why not, a LOT of fun) to Rob for the new venture: Telligent Systems. As of today, the Web site contains just a GIF but I wonder which technology are they using to build the site. Maybe JSP? <g>


PS: I also wondered why Telligent Systems and not, a more natural for me, Intelligent Systems. Elementary, Dr. Watson! Intelligent Systems already exists; both with .com and .net. It doesn't exist as .it, but who cares :-)

Saturday, May 29, 2004

Yahoo's new toolbar can stop spy ware and ad ware. It's a very neat feature to many users. What will MS ang Google do with this?-)
Nice Saturday. Will meet my friends tonight.

Tuesday, May 25, 2004

Recommended by Scobleizer, a cool rss reader:


Sauce Reader, another RSS aggregator to try



Wow, another cool news aggregator was released over the weekend: Sauce Reader.


It also has integration with the Windows Messenger client (not yet the MSN one). I have that on my desk at work, so will try it there.


Nice WSE 2.0 Tracing tool:


WSE 2.0 Tracing Utility








With the release of the Web
Services Enhancements 2.0 (go here href="http://msdn.microsoft.com/webservices/building/wse">http://msdn.microsoft.com/webservices/building/wse
for a download) I thought I’d publish my efforts at providing a secondary
tracing utility. WSE 2.0 has tracing facilities that can be switched on via the
configuration file which traces messages to a text file but I wanted something
that looked a little bit more like the SOAPTrace tool that shipped with he SOAP
toolkit so that I can more easily use it for demos and so on.

 

So, I wrote something. I’m sure it
has flaws but if it’s of use to other people then that’s great and I’ll share it
here – the usual caveats apply around not being intended for any particular
purpose and coming without warranty implied or explicit.

 

This href="http://mtaulty.com/downloads/WSE2_Tracing_V1.zip">http://mtaulty.com/downloads/WSE2_Tracing_V1.zip 
is the URL for download – I’ve not included the source at this point but I can
do that if someone’s keen to get it.

 

Essentially, what I wrote uses
WSE2.0 SOAP messaging to trace WSE2.0 messaging (be that ASMX or SOAP
messaging).

 

So, naturally, your messaging slows
down a bit because whenever you send/receive a message if you’ve switched on
tracing I then go and send a copy of your messages over the SOAP.TCP protocol to
the tracing client.

 

The tracing client looks like
this;

 

src="http://mtaulty.com/blog/Images/traceclient.jpg" align=baseline
border=0>

 
So, to work the client
you use File->Start/Stop tracing to start the client listening for messages
and then File->Clear to clear the traces captured and the tree view will
display messages that it has traced going in or out of each process and
application domain that you have configured tracing for. You can configure
tracing to be for incoming or outgoing messages or both.

 

By default, the tracing client
listens on soap.tcp://localhost:9999/SoapTracer. If, for some reason you don’t
want this you can change it using the Tools->Options dialog box which looks
like this;

 

align=baseline border=0>

 

And should allow you to pick a
different endpoint to listen on for those trace messages.

 

That’s pretty much it for the
tracing client – note that it’s actually persisting the XML to disk in order to
use Internet Explorer to display the XML which is not very clever but was a
quick “win” for me.

 

So, how do you configure your
applications in order to get their WSE2.0 messages traced to the tracing
client?

 

Essentially, you modify the
configuration file for the application that you want tracing for. A sample
configuration file is shipped within the MSI and looks like this (except the
real file has more comments in it);

 

<?xml version="1.0"
encoding="utf-8"?>

 

 size=2><configuration>

 

  <configSections>

    <section
name="microsoft.web.services2"
type="Microsoft.Web.Services2.Configuration.WebServicesConfiguration,
Microsoft.Web.Services2, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35" />

    <section
name="WSETraceSettings" type="WSETracingConfig.ConfigHandler, WSETracingConfig,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=1c1f2f7177e1ff79"
/>

  </configSections>

 

  <WSETraceSettings
xmlns='urn:wsetrace-mt-com'>

    
<hostname>127.0.0.1</hostname>

    
<port>9999</port>

    
<endpoint>SoapTracer</endpoint>

  </WSETraceSettings>

 

 
<microsoft.web.services2>

 

    <filters>

       
<output>

size=2>           
<add type="WSETracingFilter.WSEOutputFilter,WSETracingFilter,
Version=1.0.0.0, Culture=Neutral,
PublicKeyToken=1c1f2f7177e1ff79"/>

size=2>           
<add type="WSEReorderPipelineFilter.WSETracingReorderOutputFilter,
WSETracingReorderPipelineFilter, Version=1.0.0.0, Culture=Neutral,
PublicKeyToken=1c1f2f7177e1ff79"/>

       
</output>

       
<input>

size=2>           
<add type="WSETracingFilter.WSEInputFilter,WSETracingFilter, Version=1.0.0.0,
Culture=Neutral, PublicKeyToken=1c1f2f7177e1ff79"/>

size=2>           
<add type="WSEReorderPipelineFilter.WSETracingReorderInputFilter,
WSETracingReorderPipelineFilter, Version=1.0.0.0, Culture=Neutral,
PublicKeyToken=1c1f2f7177e1ff79"/>           

       
</input>

   
</filters>    

  </microsoft.web.services2> 

</configuration>

 
face=Verdana color=#000080 size=2>

So, the way that the tracing filter is implemented is as a filter for
the WSE 2.0 pipeline so if you want tracing to occur you need to configure it
into that pipeline. This is done through the;

 

       
<filters>

color=#000000>               
<output>

color=#000000>                       
<add>

       
<filters>

color=#000000>               
<input>

color=#000000>                       
<add>

 

 

Elements that we have in the configuration file above. Note that you do not
need to have both input and output tracing – it’s entirely up to you. Note that
if you do want filtering then you have to include both add lines in each case
(explanation to follow).

 

Note that the section within the

 

       
<WSETraceSettings>

 

element is entirely optional and is only necessary if you have changed the
tracing tool (via Tools->Options) to listen on a new endpoint. If you have
done that then you need to configure that endpoint here as well or the trace
messages will not reach the tracing client. It’s important to note that if you
do include this <WSETraceSettings> element then you also need to include
the;

 

       
<configSections>

color=#000000>               
<section name=”WSETraceSettings” …

 

in order that the <WSETraceSettings> section can be understood.

 

That’s pretty much it. I’m keen to take feedback and/or share the source
with people if anyone wants it. Happy to fix bugs for people or rework it
completely if someone spots a fundamental flaw.

Source: CSS2 Intellisense for Visual Studio .Net

CSS2 Intellisense for Visual Studio .Net
Thanks Scott for the link !

Read this article and download the required metadata file to bring CSS2 to VS.Net.

When will MS release the Longhorn?-)


Objectspaces, WinFS and MBF all in Longhorn



I've been watching - and reading - the recent debate over the announcement to postpone the launch of Objectspaces to Longhorn by aligning it with WinFS.


Barry Gervin has a report from TechEd on this issue that ties together this decision with MBF also being moved to the Longhorn timeframe. I think it makes sense to make every effort possible to make sure that when we [MSFT] decide to put out a new data-access API, we can say that we have done everything possible to make sure that it is aligned across all layers that will build on it, and that it will provide a stable programming model for many years forward.


I don't think it is prudent to dismiss WinFS as "Just a Filesystem" that does not have anything to do with data-storage. It represents a paradigm shift in terms of connecting structured and unstructured storage, database and filesystem, and provides an object-relational model for data access - That, combined with the need to support the requirements for data access that ObjectSpaces and MBF bring to the marriage will help make WinFS suited to be the data-access platform for the future. For MBF this partnership will surely mean that we can now rely on a strong underlying persistance platform that will also be the data-storage platform of choice for Longhorn generation apps.

Slides about Avalon:


Talking Avalon at WinHEC



Earlier this month I had the opportunity to present the overview of Avalon at the Windows Hardware Engineering Conference (WinHEC).  The conference attendees are typically independent hardware vendors, designers, and folks writing software at the software/hardware interface level.  As such, there's less interest in the higher level aspects of Avalon, but there was a lot of interest in the entire graphics and media stack.  So my talk focused on that.  General WinHEC session information and materials can be found here.


Other Avalon graphics and media sessions at WinHEC delivered by my colleagues can be found here:


  • Greg Schechter: Avalon Graphics Stack Overview [682 KB]  (mine, referenced above)
  • Joe Beda: Avalon Graphics - 2D, 3D, Imaging and Composition [284 KB]
  • Kerry Hammil: Graphics on the Windows Desktop [496 KB]
  • David Brown: Avalon Text [1.05 MB]

    Stay tuned for another post, hopefully soon, about 3D, for which WinHEC was our coming out party.

  • Note this for latter use:


    Reporting Services: How can I deploy my report without Visual Studio?



    To handle this,  there is a utility called rs.exe.  This utility allows the a developer to create a script utilizing Visual Basic.NET. 


    A sample script will follow soon.

    Monday, May 24, 2004

    Visual Studio 2005 Team System Technical Preview is published:
    Visual Studio 2005 Team System
    Connect IE and Mozilla FireFox:


    View in Firefox, courtesy of Raymond Chen



    Raymond Chen wrote up a post on extending the IE context menu in response to a comment I left on Brendan’s blog post of useful IE features.


    Reading Raymond’s post, it definitely is not hard to do, and I appreciate the fact that he didn’t nuke me. When I originally searched around with the “View in Firefox” idea in mind, I never found the article he links to. I think I had a problem with figuring out the right search terms, because it seems pretty obvious now. Be sure to check out the comments, there’s more cool tweaks there.


    Anyway, thanks Raymond.

    Sunday, May 23, 2004

    Good experience in VPC:


    Virtual PC Lesson Learned



    Yesterday I wanted to use a locally installed Virtual PC Windows 2003 Server
    to test an MSI file that needed to be built for the Crystal Reports Merge
    Module. We don't use the "shared folder" approach to deploying applications,
    rather, we let the FrontPage Server Extensions do the heavy lifting. It just
    works. My original problem was that the networking was terribly slow, though,
    and the process would time out.


    On reflection, that's easy to understand: both the OS (a Windows XP session)
    and the Virtual PC program were in a race to utilize the network interface. My
    fix?



    1. Power down and crack the case of the PC.

    2. Install a second NIC (I have a small cache of parts around for just such
      cases)

    3. Patch second NIC into hub, switch or what-have-you.

    4. Boot up, log in.

    5. Access the property sheet for the original NIC and unbind "Virtual
      Machine Network Services." Apply change.

    6. Access the property sheet for the new NIC and verify that the "Virtual
      Machine Network Services" binding is made.

    7. Run Virtual PC console. Update Virtual Server as needed.


    While I didn't actually measure the impact of this change, it felt like my
    Virtual PC session was making at least a 500% improvement in total network
    utilization.

    Scott is ready to fight with spams:0)


    Summer Project: Destroy Blog Spam



    The path of a righteous man is beset on all sides, by the inequities of the selfish , and the tyranny of evil men. blessed are those who in the name of charity and goodwill , shepherd the weak through the walley of darkness , for he is truly his brothers keeper and finder of lost children. and i will strike down upon thee whit great vengeance and furies anger those who attempt to poison and destroy my brothers. And you will know my name is the Lord , when i lay my vengeance upon thee. [Ezekiel 25:17]

    A little too dramatic? Probably. Blog spam has to go. Turning off comments is not an answer. No solution will be perfect. But hopefully, with the right set of tools/features, something can be done.

    Datetime gave me some trouble in my previous project as well.-(


    Even more on DateTime...



    I thought I’d promote some of the discussion from a recent blog entry to the main feed as others may find it interesting…  As Mark Treadwell says, it is a complicated subject. 


     


    Comment (Markus Reiner):


    Hello,
    we have also problems with DateTime because of using local time. IMHO DateTime should internally use always UTC. Only Parse() and ToString() (the methods converting it for interacting with a user who lives always relativ to local time) should ask the OS and convert it if needed.
    If someone persists a DateTime instance (to a file, to registry and so on) you will always get in trouble! Don't look only at serialization!
    It would be very helpful if we could have a patch for .NET 1.1.


     


    Response (Anthony Moore)


    Markus, thanks very much for the feedback. I have been working on some FAQ entries to answer these questions, which for now I have posed on the BCL Blog:

    http://weblogs.asp.net/bclteam/archive/2004/05/21/136918.aspx

    In short, it is not practical to make a change as substantial as you are recommending to DateTime, either in servicing or in future releases. Believe me, the options have been thoroughly explored, but it is not possible to get acceptable compatibility in terms of both functionality or performance. The first FAQ entry goes into the detail on this issue.

    However, it is possible to serialize DateTime without getting into trouble, so two of the FAQ entries are devoted to recommended ways to serialize DateTime in Binary and Text.

    Thanks very much for your response and I hope this is helpful.

    VS 2005 zone in WindowsForms stie:


    Windows Forms web site has launched a new section for Whidbey, which has a high-level review of Whidbey features.
    Spam in blog, too bad to Roy Osherove:


    Comment spam wave



    I'm getting comment spam (about 50 in the past two hours or so), and for some reason .Text won't let me disable my comments. Already mailed Scott about it but thought maybe anyone had a quick fix for this?

    Friday, May 21, 2004

    This would be helpful to SPS users:


    SharePoint Database/List Best Practices???



    Anyone out there have a reference to what the best practices for programming SharePoint are?  Specifically, how much normalization one should use in their database/lists?  Here's my scenario:


    I'd like to create a Time Off Request and Reporting application. It would have the following operation:



    • Employees would go to a form to request a period or day as PTO

    • Managers would be alerted to the request and either approve or deny it (which would then update the employee

    • When the scheduled day came, the manager would confirm that the employee did or didn't take the day off

    • Payroll would be able to run a report of the data to see who took what time off.  Managers could run the same report for their departments.  Employees could not.

    With a normal database application, I'd have 4 related tables: Employees, Departments, Administrators (but actually, this could be a boolean field for the employee table), and the  PTOData table.  However, I'm not sure if you can write all of these within the context of SharePoint lists.  Anyone have any ideas?  Should I just create separate tables, and only use SharePoint as a wrapper?  Let me know what you think!


    BTW - Dustin - I asked my manager if they'd send me to the dev training.  If I can go, this is something I'd like to cover.  For those of you who also would like to go, but are afraid of asking your boss for a few grand, I can send you my request document (the sucker was 2 1/2 pages long!) as a template.

    Visual Blogger 2004:


    Visual Blogger 2004 released



    Last night Robert McLaws released VisualBlogger 2004. It's getting good reviews from a bunch of blogs. Congrats Robert! I gotta try it out, I hear it works with Radio UserLand too.