Entries:
Comments:
Posts:

Loading User Information from Channel 9

Something went wrong getting user information from Channel 9

Latest Achievement:

Loading User Information from MSDN

Something went wrong getting user information from MSDN

Visual Studio Achievements

Latest Achievement:

Loading Visual Studio Achievements

Something went wrong getting the Visual Studio Achievements

Discussions

Kazi Kazi
  • Happy Birthday To Channel 9!

    Watching Channel 9 videos is like sitting in front of a fireplace with friends. It tells you good stories always. Thanks for the experience.

    Happy birthday Channel 9 Smiley

  • No Glass Sucks

    I have a Tecra S3 Laptop with Nvidia GeForce Go 6600 video card (128MB RAM on it) and there is no Aero Glass by default with Vista Beta 2.

    1) I downloaded (from nvidia.com) and installed the Nvidia Forceware driver for Vista Beta 2, but there is no GeForce Go 6600 in the list, I choosed a similar one: GeForce 6600 GT

    2) I adjusted the settings to the 32bit color depth and 1400x1050 for the builtin LCD display

    3) finally I forced to refresh the performance rating (it was "1" with the default SVGA driver, it is "4.3" with the new driver).

    And I have Aero Glass now Smiley

  • This world is not the English world!

    The best solution of this problem is using the english version of ms products with MUI packs.

  • DiskSpace visualizer

    This is the illustration of the "nested grids" what this utility uses for displaying the colored bars:



    As you can see
    1) Every single grid has two columns only
    2) and contains rows as many as the childitems.
    3) The column widths are constant.
    4) The row heights are in proportion to the folder/file sizes.
    5) The column 0 of a grid contains colored bars only.
    6) The column 1 contains subgrids only.

    The above picture displays the following hierarchy:

    B0
    B0.B1
    B0.B1.B3
    B0.B1.B4
    B0.B1.B4.B6
    B0.B1.B4.B7
    B0.B1.B5
    B0.B2

    IF

    B = Bar
    G = Grid
    C = Column
    R = Row
    C0 = Column 0
    C1 =  Column 1
    R0 = Row 0
    R1 = Row 1
    etc...


    Then the items have the following coordinates:

    G0
    B0 = G0.C0.R0
    G1 = G0.C1.R0
    B1 = G0.C1.R0.G1.C0.R0
    B2 = G0.C1.R0.G1.C0.R1
    G2 = G0.C1.R0.G1.C1.R0
    B3 = G0.C1.R0.G1.C1.R0.G2.C0.R0
    B4 = G0.C1.R0.G1.C1.R0.G2.C0.R1
    B5 = G0.C1.R0.G1.C1.R0.G2.C0.R2
    G3 = G0.C1.R0.G1.C1.R0.G2.C1.R1
    B6 = G0.C1.R0.G1.C1.R0.G2.C1.R1.G3.C0.R0
    B7 = G0.C1.R0.G1.C1.R0.G2.C1.R1.G3.C0.R1


    This utility displays the folder hierarchy the above way.
  • DiskSpace visualizer

    Thanks Charles for the good words.

  • DiskSpace visualizer

    has been updated

  • DiskSpace visualizer

    The title says everything. You can navigate through your folders and you can see the allocated spaces on the hard disks.

    This little project contains some interesting solution/idea, worth to see:

    - Uses ThreadPool queue to get the information from the hard disks
    - Uses Avalon to visualize the data, concretely nested grids

    Later I'm going to describe these in detail if somebody is interested in.



    Requirements:

    to run:
    1. .Net 2.0 Beta 2 runtime
    2. WinFX runtime Sept CTP

    to compile:
    1. VS2k5 Beta 2
    2. WinFX SDK Sept CTP


    EDIT1

    It's precise now:

    - uses the allocated size of a file instead of the filesize. These are not the same. The allocated size is the sum of the allocated clusters belongs to that file, simply: allocated size = allocated clusters * cluster size

    - uses the CompressedFileSize of that file if that file is compressed.

    - shows the Unknown space if there are unreachable files/folders (permission denied) or other unreachable data ($mft)


    just a note, if it is not obvious:

    Click on the colored bars to navigate through the folders.

    EDIT2

    New color scheme, looks like a rainbow now Cool

  • SlideShow (Avalon, WinFS)

    Here is an interesting sample of the animation feature, copy/paste it to the XAMLPad:
    -------------------------
    <Page
        xmlns="http://schemas.microsoft.com/winfx/avalon/2005"
        xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005"
        >

      <DockPanel>
        <Grid DockPanel.Dock="Left" Margin="10">
          <ColumnDefinition/>
          <ColumnDefinition/>
          <RowDefinition Height="50"/>
          <RowDefinition Height="50"/>
          <Button x:Name="button1" Grid.Column="0" Grid.Row="0" Width="50" Height="50">1</Button>
          <Button x:Name="button2" Grid.Column="1" Grid.Row="0" Width="50" Height="50">2</Button>
          <Button x:Name="button3" Grid.Column="0" Grid.Row="1" Width="50" Height="50">3</Button>
          <Button x:Name="button4" Grid.Column="1" Grid.Row="1" Width="50" Height="50">4</Button>
        </Grid>

        <Viewbox>
          <Canvas Width="100" Height="100" Background="VerticalGradient LightCyan LightBlue">
            <Ellipse x:Name="ellipse" Canvas.Left="40" Canvas.Top="40" Stroke="Blue" StrokeThickness="1" Width="20" Height="20"/>
          </Canvas>
        </Viewbox>

      </DockPanel>

      <Page.Triggers>

        <EventTrigger RoutedEvent="ButtonBase.Click" SourceName="button1">
          <EventTrigger.Actions>
            <BeginStoryboard Name="sb1">
              <Storyboard TargetName="ellipse">
                <ParallelTimeline>
                  <DoubleAnimation Storyboard.TargetProperty="(Canvas.Left)" To="05.0" Duration="0:0:5" />
                  <DoubleAnimation Storyboard.TargetProperty="(Canvas.Top)" To="05.0" Duration="0:0:5" />
                </ParallelTimeline>
              </Storyboard>
            </BeginStoryboard>
          </EventTrigger.Actions>
        </EventTrigger>

        <EventTrigger RoutedEvent="ButtonBase.Click" SourceName="button2">
          <EventTrigger.Actions>
            <BeginStoryboard Name="sb2">
              <Storyboard TargetName="ellipse">
                <ParallelTimeline>
                  <DoubleAnimation Storyboard.TargetProperty="(Canvas.Left)" To="75.0" Duration="0:0:5" />
                  <DoubleAnimation Storyboard.TargetProperty="(Canvas.Top)" To="05.0" Duration="0:0:5" />
                </ParallelTimeline>
              </Storyboard>
            </BeginStoryboard>
          </EventTrigger.Actions>
        </EventTrigger>

        <EventTrigger RoutedEvent="ButtonBase.Click" SourceName="button3">
          <EventTrigger.Actions>
            <BeginStoryboard Name="sb3">
              <Storyboard TargetName="ellipse">
                <ParallelTimeline>
                  <DoubleAnimation Storyboard.TargetProperty="(Canvas.Left)" To="05.0" Duration="0:0:5" />
                  <DoubleAnimation Storyboard.TargetProperty="(Canvas.Top)" To="75.0" Duration="0:0:5" />
                </ParallelTimeline>
              </Storyboard>
            </BeginStoryboard>
          </EventTrigger.Actions>
        </EventTrigger>

        <EventTrigger RoutedEvent="ButtonBase.Click" SourceName="button4">
          <EventTrigger.Actions>
            <BeginStoryboard Name="sb4">
              <Storyboard TargetName="ellipse">
                <ParallelTimeline>
                  <DoubleAnimation Storyboard.TargetProperty="(Canvas.Left)" To="75.0" Duration="0:0:5" />
                  <DoubleAnimation Storyboard.TargetProperty="(Canvas.Top)" To="75.0" Duration="0:0:5" />
                </ParallelTimeline>
              </Storyboard>
            </BeginStoryboard>
          </EventTrigger.Actions>
        </EventTrigger>

      </Page.Triggers>

    </Page>

    -------------------------

    Click on the buttons at random!

  • SlideShow (Avalon, WinFS)

    The magic is to use your own RoutedEvent to start an animation in XAML:

    this tag: <?Mapping XmlNamespace="SlideShow" ClrNamespace="SlideShow"?>

    and this attribute: xmlns:ss="SlideShow"

    and then you can use it as:

    <Window.Triggers>
      <EventTrigger RoutedEvent="ss:Window1.ShowImage" SourceName="image1">
    ...

  • SlideShow (Avalon, WinFS)

    The buttons on the upper right corner have animated visual style now. It's very easy to change the visual style and appearance of an Avalon control by the styling feature.