# Saturday, October 08, 2005

Monday: I met Andreas Hoffmann (2nd UG Lead of the VfL Usergrop) and Peter Nowak (Head of FIAEon.net, a community for .NET related vocational education) at Starbucks in Düsseldorf.

Tuesday: Benjamin Mitchell notified me that one of my sessions was voted by the british community and I'll have a session at the Developer Developer Developer Day.

Wednesday: I'm in contact with the Student Partners in Wuppertal now (better said Anselm Haselhoff because Marcel Wiktorin is moving and has not replied yet :-)).

Thursday: Usergroup meeting in Düsseldorf: Sebastian Weber (Developer Evengelist at Microsoft Germany and member of the VfL-UG) answered all our members questions about SQL Server 2005 and Tuan Nguyen (Lead of annos.de and VfL-Member) talked about the Annos project. Great, thanks guys.

Friday: I updated the VfL-Site and fixed a few bugs.

Saturday, October 08, 2005 6:50:30 PM (W. Europe Daylight Time, UTC+02:00)  #    Disclaimer  |  Comments [0]  | 
# Wednesday, October 05, 2005

The IE Developer Toolbar provides several features for deeply exploring and understanding Web pages.

-- Explore and modify the document object model (DOM) of a web page.
-- Locate and select specific elements on a web page through a variety of techniques.
-- Selectively disable Internet Explorer settings.
-- View HTML object class names, ID's, and details such as link paths, tab index values, and access keys.
-- Outline tables, table cells, images, or selected tags.
-- Validate HTML, CSS, WAI, and RSS web feed links.
-- Display image dimensions, file sizes, path information, and alternate (ALT) text.
-- Immediately resize the browser window to 800x600 or a custom size.
-- Selectively clear the browser cache and saved cookies. Choose from all objects or those associated with a given domain.
-- Choose direct links to W3C specification references, the Internet Explorer team weblog (blog), and other resources.
-- Display a fully featured design ruler to help accurately align objects on your pages.

http://www.microsoft.com/downloads/details.aspx?FamilyID=e59c3964-672d-4511-bb3e-2d5e1db91038&displaylang=en

Wednesday, October 05, 2005 2:34:19 PM (W. Europe Daylight Time, UTC+02:00)  #    Disclaimer  |  Comments [0]  | 
# Friday, September 30, 2005

It was the second time this year I went to Warsaw (Poland). The Microsoft Technology Summit happend for the first time and was a big success. An amazing event: Two days, about two-thousand attendees, six parallel tracks, four a day. I had about three-hundred listeners in each of my sessions ("Layout and Personalization with ASP.NET 2.0" and "Data-Driven Application with ASP.NET 2.0"). The feedback in the breaks was great.
Thanks to everybody at Microsoft Poland especially Artur and Dominika.

I met Rafal Lukawiecki

Fred Baumhardt and Maciej Pilecki

And had an interesting discussion with Yogesh Bhalerao.



The audience while i was speaking



And the view out of my room in the Meriott.

http://www.mts2005.pl/


Friday, September 30, 2005 1:12:50 PM (W. Europe Daylight Time, UTC+02:00)  #    Disclaimer  |  Comments [0]  | 

Torsten Weber invited me to do one day of sessions at the .NET Summercamp: I introduced .NET 2.0 and C# 2.0 and talked about Visual Studio 2005 Team System.

It was the first time in Leipzig and i really liked it. Hopefully i'll be there next year too.

C# | Event | Team System
Friday, September 30, 2005 12:48:42 PM (W. Europe Daylight Time, UTC+02:00)  #    Disclaimer  |  Comments [0]  | 
# Thursday, September 15, 2005

Cropper is a free Screen Capture Utility written in C#

http://www.thegridmaster.com/
C# | Misc
Thursday, September 15, 2005 12:34:21 PM (W. Europe Daylight Time, UTC+02:00)  #    Disclaimer  |  Comments [0]  | 
# Wednesday, August 31, 2005

[http://www.opera.com/pressreleases/en/2005/08/30/]
It's been ten years: Ten years of innovation and ten years of gratitude to Opera users. Today, Opera Software ASA gives back to its community.

Opera just launched its online party. As a sign of gratitude for the community's continuing support, Opera will give away complimentary registration codes for 24 hours. At the party site, people can also chat with Opera employees (including the CEO and CTO), play games, check out the history of the Opera browser, download music made by employees and send in their greetings. In addition, people can check out what happened at midnight at Opera's anniversary party
[...]

http://my.opera.com/community/party/reg.dml

Wednesday, August 31, 2005 10:06:58 AM (W. Europe Daylight Time, UTC+02:00)  #    Disclaimer  |  Comments [0]  | 
# Thursday, August 11, 2005
OIS

For years I used ACDSee 3.0. It always remembered me of the days of Windows 95/NT 4.0. That is the past now.

Deep deep in your file system there lies a neat tool that does the job very well. The only problem I did not recognize that its even there for years. After i found it, and yes also liked it. I decided to use it and added the missing part to integrate the Office Picture Manager into daily work. Context menu integration:



Here ist the reg-file:
REGEDIT4

[HKEY_CURRENT_USER\Software\Classes\Folder\shell\Browse Pictures ...\command]
@="\"C:\\Program Files\\Microsoft Office\\OFFICE11\\OIS.exe\" \"%1\""


 

Thursday, August 11, 2005 2:01:05 PM (W. Europe Daylight Time, UTC+02:00)  #    Disclaimer  |  Comments [0]  | 
# Wednesday, August 10, 2005

Carefully said I do not like that sharepoint "hijacks" the Internet Information Server. When you create a virtual directory it is just not accessable because SharePoint took over IIS.

Funny fact: This is the second post how to fix issues with IIS and "extension" that cause issues :-)

So i decided to hack a small utility serving my needs:

ExcludeFromSharepoint.zip (3.46 KB)

Enables to exclude applications from sharepoint services through the directory context menu.
Install using the "-install" switch; Uninstall using "-uninstall" switch.

Because I'm running my machine under a LUA (Limited User Account) i wrote the tool in a way that you can install and uninstall it without administative rights - the contextmenu will be installed per user!

if(args[0]=="-install")

{

    RegistryKey _rkey = Registry.CurrentUser;

    _rkey = _rkey.OpenSubKey("SOFTWARE\\Classes",true);

    _rkey = _rkey.CreateSubKey("Folder").CreateSubKey("shell");

    _rkey = _rkey.CreateSubKey("Exclude from Sharepoint");

    _rkey = _rkey.CreateSubKey("command");

    _rkey.SetValue(null, App.Application.ExecutablePath + " \"%1\"");

}

else if(args[0]=="-uninstall")

{

    RegistryKey _rkey = Registry.CurrentUser;

    _rkey = _rkey.OpenSubKey("SOFTWARE\\Classes\\Folder\\shell",true);

    _rkey.DeleteSubKeyTree("Exclude from Sharepoint");

}

else

{

...

}

 

The Implementation works with the webserver extensions version 4.0 or higher

 

    RegistryKey _rkey = Registry.LocalMachine;

    _rkey = _rkey.OpenSubKey("SOFTWARE\\Microsoft\\Shared Tools\\" +

        "Web Server Extensions",true);

   

    foreach(string _subKeyName in _rkey.GetSubKeyNames())

    {

        try

        {

            int.Parse(_subKeyName.Replace(".",""));

            RegistryKey _fpKey = _rkey.OpenSubKey(_subKeyName,true);

            _fpDir = (string)_fpKey.GetValue("Location");

        }

        catch(Exception _ex)

        {

            string _err = _ex.ToString();

            break;

        }

    }

 

and uses the stsadm.exe from the shared tools of the server extensions.

    System.Diagnostics.Process _p = new System.Diagnostics.Process();

    _p.StartInfo.FileName = Path.Combine(_fpDir, "BIN\\stsadm.exe");

    _p.StartInfo.Arguments = "-o addpath -url http://localhost/" +

        _strProjectName + " -type exclusion";

    ...

    _p.Start();

 

ASP.NET | C# | Indigo | Misc | Projects | Security | WebServices
Wednesday, August 10, 2005 6:43:48 PM (W. Europe Daylight Time, UTC+02:00)  #    Disclaimer  |  Comments [0]  | 

I develop with 1.1 and 2.0 - When VS 2003 creates a web solution it is configured to use the 2.0 runtime. Placeing the following code to the Global.asax's of your 1.1 projects and setting execute permissions on the aspnet_regiis.exe helps much.

protected void Application_Start(Object sender, EventArgs e)

{

      if(System.Environment.Version.Major==2)

      {

            System.Diagnostics.Process _p = new System.Diagnostics.Process();

            _p.StartInfo.FileName = "%WINDIR%\\Microsoft.NET\\Framework\\v1.1.4322\\aspnet_regiis.exe";

            _p.StartInfo.Arguments = "-s W3SVC/1/ROOT" + Request.ApplicationPath;

            _p.StartInfo.UseShellExecute = false;

            _p.StartInfo.RedirectStandardOutput = true;

            _p.Start();

      }

}

 

ASP.NET | C# | Misc
Wednesday, August 10, 2005 12:56:11 PM (W. Europe Daylight Time, UTC+02:00)  #    Disclaimer  |  Comments [1]  | 
I got an E-Mail from a student this morning asking how to thumbnail an uploaded image. Here is a "quick" solution (there are a few things you can do to increase quality, set JPEG compression factor or keep gif transparency). If you like to dig deeper have a look at one of the articles i wrote for the DotNetPro magazine's #Talk column (dnp0305_Thumbnail.pdf [German])

 

<%@ Page Language="C#" %>

 

<script runat="server" Language="C#">

 

    public void UploadFile(object sender, EventArgs e)

    {

        System.Drawing.Image _img =
             System.Drawing.Image.FromStream(
             this.InputTypeFile.PostedFile.InputStream);

 

        int _maxWidth = 100;

        int _maxHeight = 100;

 

        int _width = _img.Width;

        int _height = _img.Height;

 

        string _filename =

              System.IO.Path.GetFileName(

              this.InputTypeFile.PostedFile.FileName);

           

        string _uploadPath = System.IO.Path.Combine(

            Server.MapPath(".\\upload\\"),

            _filename);

       

        if (_width > _height)

        {

            width = Math.Abs((int)(height *

                        _img.Width /

                        _img.Height));

            _height = _maxHeight;

        }

        else

        {

            _height = Math.Abs((int)(_maxWidth *

                        _img.Height /

                        _img.Width));

            _width = _maxWidth;

        }

       

        System.Drawing.Image _newImg =

            _img.GetThumbnailImage(width, height, null, null);

           _newImg.Save(_uploadPath);

           _img.Dispose();

    }

 

</script>

<body>

    <form id="form1" runat="server">

 

    <input id="InputTypeFile" type="file" runat="server" />

    <asp:Button ID="Submit" OnClick="UploadFile" Text="Upload" />

 

    </form>

</body>

</html>

ASP.NET | C# | Misc
Wednesday, August 10, 2005 11:41:33 AM (W. Europe Daylight Time, UTC+02:00)  #    Disclaimer  |  Comments [0]  |