prog_dotnet prog_dotnet

Niner since 2004

studying computer science


  • PhotoSynth: What. How. Why.

    what about a predictive algorithm for those low res pictures,
    a mathematical equation to help the computer guess whats between the dots, like extrapilation of information based on the sourrounding pixels.
  • Greg Schechter: Windows Presentation ​Foundation(​WPF) Architecture

    watching it right far very interesting..but I was a bit confused  in the beginning...had to do a live search to find out that Windodws Presentation Fundation is abbreviated WPF Smiley


  • Seventeen Minutes With Bill

    BryanF wrote:
    Asking him whether he uses competitors' technology is a rather snarky and pointless thing to do. It seems little more than a passive-agressive way to imply his products are inferior.

    I quite disagree, and I really wonder where you get the passive agressive tactics from. Using ohter vendors products shows quite the opposite from a single minded view, like you nearly impose on Microsoft employees ( the interview subject or othervise). From a programmers perspective ( as one of the stanford professors are knows of telling storys about Bill Gates hacking around in assembly at the uni) one uses the best tool for the job.
    And he is also a Windows user like the rest of us, so its quite likely that he has used and perhaps are still using, other vendors products.

    BryanF wrote:

     A more interesting question would be to ask where he feels Microsoft still needs to catch up to competitors...


    Why should that be more intersting ?? Dont you think that question answers itself?? Competition in the software industry is firece and it allways will be.

  • Seventeen Minutes With Bill

    How did you prepear for this interview?
  • MSN Virtual Earth Team - Virtual Earth Ships

    Awesome stuff Smiley

    Have installed the Microsoft Location Finder...

    1. When I right click location finder in the notification area and select help, the Microsoft Location Finder Help file, are placed right over the current window in IE, forcing users to use the back button.
    It would be more practical to open a new window for the help file.

    2. The auto run feature (automatically run location finder when I log on to windows), are located under the settings option.
    I think it would be easier if you just placed an auto run menu item that the user could check/uncheck

  • Neal Christiansen - Inside File System Filter, part II

    I would recomend Operating Systems: Internals and Design Principles, 4/E and/or 5/E

    There is an extract from the book ( in .pdf format) that contains all the information covering windows.

    You can find it on this page:

    or go directly to the document:


  • Daniel Lehenbauer - Demo of Avalon 3D

    The Year Before Longhorn

    Anderson & Box

    'Twas the year before Longhorn, when all through the land
    Not a demo was given, not even one canned;
    The windows were stacked on each edge with such care
    In hopes that some user soon would be there;

    The coders were nestled all snug by their desks,
    While visions of ship-parties danced in their heads;
    And Chris with his pixels, and I with my SOAP,
    Had just failed to integrate despite our best hope,
    When out from the build lab there arose such a clatter,
    I sprang from my desk as working sets grew fatter.

    The queries against my old data did hang,
    And XAML-based markup from each window rang,
    The startup time of our new OS must be fixed
    As it seems as if running a 286

    When, what to my wondering eyes should they see,
    But a leadership team, with eight tiny VP,
    With a little old driver, so lively and trim,
    I knew in a moment it must be St. Jim.

    More rapid than eagles his coursers they came,
    And he whistled, and shouted, and called them by name;
    "Now, William! now, Eric! now, BrianV and Jonesey!
    On, BobMu! on PaulFle, on, Soma and JoePE!
    To the tech previews march! to the betas install!
    Now ship away! ship away! ship away all!"

    As bug counts that before the testers they fly
    When they meet with a DCR, mount to the sky,
    So up to the ship date the VPs they flew,
    With the Windows so shiney, and St. Jim was too.

    And then, with a reorg, there came such a hum,
    The prancing and pawing of each newly coined PUM.
    As I checked in my code, and was running my suites,
    A new ship date, St. Jim, says we all now must meet.

    He had scenarios, experiences, and use cases few,
    For the home user, aye, but MBAs too;
    A bundle of features he had thrown off the list,
    Just the basics, my boy, lest our ship date get missed.

    His eyes -- how they twinkled! his dimples how merry!
    And SteveB was pleased with our revenues less airy!
    With heads down we code on our features now prime
    To WinFS, yes, but perhaps not this time.
    With St. Jim now confident with this release,
    The rank and file coders may now code in peace.
    As VPs now focus on Blackcomb and beyond,
    Of Longhorn, St. Jim, remains oh so fond.
    And I heard him exclaim, ere he drove out of sight,
    "Happy Longhorn to all, and to all a good-night."

  • Introducing MSN Toolbar Suite - Silicon Valley team (and demo!)

    This judgmental filosophy are plain wrong.

    Desktop Search is just a prelude for future search technology.
    Some of the code base actually goes back to the Kairo days, and they have now combined it in this package.  
    Its a company strategy to get this stuff out, show customers that Microsoft are investing in search for the desktop, and that Windows are and will be, the most productive os for home users and corporate enviroments. 

    There is a huge amount of stuff that just wait in the horizon, and MSN desktop sarch is a base building block in this effort.

  • Introducing MSN Toolbar Suite - Silicon Valley team (and demo!)

    mwirth wrote:
    i'd also request win 2003 server support for msn desktop search. win2003 server  is a fine client desktop os if you get to use it for free by your uni.  i always think by myself that there's got to be a way to install it on win 2003 .. those mcse's would fingure that out in a minute... right? +g+

    Server 2003 install: 
    /c /t: for unpacking
    msiexec /i MsnToolbarSuite.msi TBSDEVCODE=1

  • Jason Zander - Tour of the .NET CLR team

    Comparing Java and .NET

    K John Gough Stacking them up: A Comparison of Virtual Machines , Presented to the Australian Computer Systems and Architecture Conference, ACSAC-2001 Gold Coast, Australia, February 2001 (Draft Version)


  • Gary Daniels and Evan Goldring - Mock whiteboard problem

    Just wanted to recomend this book, 4 stars rating based on 114 reviews

    Introduction to Algorithms, Second Edition
    ISBN 0-262-03293-7


    This book provides a comprehensive introduction to the modern study of computer algorithms. It presents many algorithms and covers them in considerable depth, yet makes their design and analysis accessible to all levels of readers. We have tried to keep explanations elementary without sacrificing depth of coverage or mathematical rigor.  Each chapter presents an algorithm, a design technique, an application area, or a related topic.

    Algorithms are described in English and in a “pseudocode” designed to be readable by anyone who has done a little programming. The book contains over 230 figures illustrating how the algorithms work. Since we emphasize efficiency as a design criterion, we include careful analyses of the running times of all our algorithms.

    The text is intended primarily for use in undergraduate or graduate courses in algorithms or data structures. Because it discusses engineering issues in algorithm design, as well as mathematical aspects, it is equally well suited for self-study by technical professionals.  In this, the second edition, we have updated the entire book. The changes range from the addition of new chapters to the rewriting of individual sentences.

    To the teacher

    This book is designed to be both versatile and complete. You will find it useful for a variety of courses, from an undergraduate course in data structures up through a graduate course in algorithms. Because we have provided considerably more material than can fit in a typicalone-term course, you should think of the book as a “buffet” or “smorgasbord” from which you can pick and choose the material that best supports the course you wish to teach. You should find it easy to organize your course around just the chapters you need. We have made chapters relatively self-contained, so that you need not worry about an unexpected and unnecessary dependence of one chapter on another. Each chapter presents the easier material first and the more difficult material later, with section boundaries marking natural stopping points. In an undergraduate course, you might use only the earlier sections from a chapter; in a graduate course, you might cover the entire chapter. We have included over 920 exercises and over 140 problems. Each section ends with exercises, and each chapter ends with problems. The exercises are generally short questions that test basic mastery of the material. Some are simple self-check thought exercises, whereas others are more substantial and are suitable as assigned homework. The problems are moreelaborate case studies that often introduce new material; they typically consist of several questions that lead the student through the steps required to arrive at a solution.

    We have starred (⋆) the sections and exercises that are more suitable for graduate students than for undergraduates. A starred section is not necessarily more difficult than an unstarred one, but it may require an understanding of more advanced mathematics. Likewise, starred exercises may require an advanced background or more than average creativity.

    To the student

    We hope that this textbook provides you with an enjoyable introduction to the field of algorithms. We have attempted to make every algorithm accessible and interesting. To help you when you encounter unfamiliar or difficult algorithms, we describe each one in a step-bystep manner. We also provide careful explanations of the mathematics needed to understand the analysis of the algorithms. If you already have some familiarity with a topic, you will find the chapters organized so that you can skim introductory sections and proceed quickly to the more advanced material.

    This is a large book, and your class will probably cover only a portion of its material. We have tried, however, to make this a book that will be useful to you now as a course textbook and also later in your career as a mathematical desk reference or an engineering handbook. What are the prerequisites for reading this book?

    ·        You should have some programming experience. In particular, you should understand recursive procedures and simple data structures such as arrays and linked lists.

    ·        You should have some facility with proofs by mathematical induction. A few portions of the book rely on some knowledge of elementary calculus. Beyond that, Parts I and VIII of this book teach you all the mathematical techniques you will need.

    To the professional

    The wide range of topics in this book makes it an excellent handbook on algorithms. Because each chapter is relatively self-contained, you can focus in on the topics that most interest you. Most of the algorithms we discuss have great practical utility. We therefore address implementation concerns and other engineering issues. We often provide practical alternatives to the few algorithms that are primarily of theoretical interest.

    If you wish to implement any of the algorithms, you will find the translation of our pseudocode into your favorite programming language a fairly straightforward task. The pseudocode is designed to present each algorithm clearly and succinctly. Consequently, we do not address error-handling and other software-engineering issues that require specific assumptions about your programming environment. We attempt to present each algorithm simply and directly without allowing the idiosyncrasies of a particular programming language to obscure its essence.


  • Kang Su Gatlin - ​"​Phoenix,​" next-​generation compiler

    XBox-2 are based on PowerPC processors from IBM, the current xbox model is founded on x86 PC technology

    A document that is claimed to be intended for use of game developers involved in software making process for Microsoft’s next-generation game-console known as Xbox 2 has leaked into the World Wide Web and was published by a number of web-sites. The document outlines some specs of the software giant’s game console scheduled to emerge in 2005 or 2006 and confirms the details published earlier this year.

    Xbox 2 Main Specs Confirmed?

    The document addressed to game developers is believed to be written by Pete Isensee, Development Lead, Xbox Advanced Technology Group, and contain some preliminary information about the Xbox 2 console’s internal hardware and architecture. While some specifications are not yet finalized, pretty a lot of things have their shape now and are not likely to substantially change.

    Among the goals for the Microsoft’s future console’s hardware the company notes maximization of general purpose processing performance rather than fixed-function hardware, elimination of performance bottlenecks and overall improved performance of central processing unit and graphics processing unit.

    The Xbox 2 – the project code-named Xenon – is said to be powered by a triple-core 3.50GHz or faster IBM PowerPC processor and a 500MHz or faster ATI graphics processor, has 256MB or more of unified memory, runs a custom operating system based on Microsoft Windows NT, similar to the Xbox operating system. The graphics interface is claimed to be a superset of the Direct3D version 9.0.

    Although the architecture of the two consoles is quite different, the Xbox 2 has the processing power to emulate the Xbox, according to Microsoft. Whether the next-generation console will be backward compatible involves a variety of factors, not the least of which is the massive development and testing effort required to allow Xbox games run on Xenon.

    Xenon is a big-endian system. Both the CPU and GPU process memory in big-endian mode. Games ported from little-endian systems such as the Xbox or PC need to account for this in their game asset pipeline, the Microsoft’s engineer notes.

    Tapping into the power of the CPU is a daunting task. Writing multithreaded game engines is not trivial. Xenon system software is designed to take advantage of this processing power wherever possible. The Xbox Advanced Technology Group (ATG) is also exploring a variety of techniques for offloading graphics work to the CPU.

    Below scoops from the document are published.

    Xbox 2 May Process up to 6 Threads

    The Xbox 2’s central processing unit is a custom processor based on PowerPC technology. The CPU includes three independent processors (cores) on a single die. Each core runs at 3.50GHz speed of faster. The Xbox 2 microprocessor can issue two instructions per clock cycle per core. At peak performance, Xenon can issue 21 billion instructions per second.

    The chip for Microsoft’s future console was designed by IBM in close consultation with the Xbox team, leading to a number of revolutionary additions, including a dot product instruction for extremely fast vector math and custom security features built directly into the silicon to prevent piracy and hacking.

    Each core has two symmetric hardware threads (SMT), for a total of six hardware threads available to games. Not only does the “Xenon CPU” include the standard set of PowerPC integer and floating-point registers (one set per hardware thread), the microprocessor also includes 128 vector (VMX) registers per hardware thread. This astounding number of registers can drastically improve the speed of common mathematical operations, according to the document.

    Each of the three cores includes a 32KB L1 instruction cache, a 32KB L1 data cache and share a 1MB L2 cache. The L2 cache can be locked down in segments to improve performance. The L2 cache also has the very unusual feature of being directly readable from the GPU, which allows the GPU to consume geometry and texture data from L2 and main memory simultaneously.

    Microsoft claims that instructions of the next-generation console are exposed to games through compiler intrinsic, allowing developers to access the power of the chip using C language notation.

    Xbox 2 Graphics Processor to Use Shader Model 3.0

    The graphics processor designed for the Xbox 2 console is a custom 500MHz chip from ATI Technologies.

    The shader core has 48 Arithmetic Logic Units (ALUs) that can execute 64 simultaneous threads on groups of 64 vertices or pixels. ALUs are automatically and dynamically assigned to either pixel or vertex processing depending on load. The ALUs can each perform one vector and one scalar operation per clock cycle, for a total of 96 shader operations per clock cycle. Texture loads can be done in parallel to ALU operations. At peak performance, the GPU can issue 48 billion shader operations per second.

    The GPU has a peak pixel fillrate of 4 or more gigapixels/sec (16 gigasamples/sec with 4x antialiasing). The peak vertex rate is 500 or more million vertices/sec. The peak triangle rate is 500 or more million triangles/sec. Microsoft reportedly states that the figures are attainable with non-trivial shaders.

    Microsoft’s future console is designed for HDTV output. In order to fit 720p frame-buffer inside the chip, a special 10MB or larger on-die embedded dynamic RAM (EDRAM) buffer will be incorporated. Larger frame-buffers are also possible because of hardware-accelerated partitioning and predicated rendering that has little cost other than additional vertex processing. Along with the extremely fast EDRAM, the GPU also includes hardware instructions for alpha blending, z-test, and antialiasing.

    The Xbox 2 graphics architecture is a unique design that implements a superset of Direct3D version 9.0. It includes a number of important extensions, including additional compressed texture formats and a flexible tessellation engine. Xenon not only supports high-level shading language (HLSL) model 3.0 for vertex and pixel shaders but also includes advanced shader features well beyond model 3.0, Microsoft claims. For instance, shaders use 32-bit IEEE floating-point math throughout. Vertex shaders can fetch from textures, and pixel shaders can fetch from vertex streams. Xenon shaders also have the unique ability to directly access main memory, allowing techniques that have never before been possible.

    As with Xbox, Xenon will support precompiled push buffers (“command buffers” in Xenon terminology), but to a much greater extent than the Xbox console does. The Xbox team is exposing and documenting the command buffer format so that games are able to harness the GPU much more effectively.

    In addition to an extremely powerful GPU, Xenon also includes a very high-quality resize filter. This filter allows consumers to choose whatever output mode they desire. Xenon automatically scales the game’s output buffer to the consumer-chosen resolution.

    Xbox 2 Memory to Pump up to 22.4GB of Data per Second

    The Xbox 2 will have 256MB or more of unified memory, equally accessible to both the GPU and CPU.

    The main memory controller resides on the GPU (the same as in the Xbox architecture). It has 22.4GB/sec or higher aggregate bandwidth to RAM, distributed between reads and writes. Aggregate means that the bandwidth may be used for all reading or all writing or any combination of the two. Translated into game performance, the GPU can consume a 512×512×32-bpp texture in only 47 microseconds.

    The front side bus (FSB) bandwidth peak is 10.8GB/sec for reads and 10.8GB/sec for writes, over 20 times faster than for Xbox. Note that the 22.4GB/sec main memory bandwidth is shared between the CPU and GPU. If, for example, the CPU is using 2GB/sec for reading and 1GB/sec for writing on the FSB, the GPU has 19.4GB/sec available for accessing RAM.

    Eight pixels (where each pixel is colour plus z = 8 bytes) can be sent to the EDRAM every GPU clock cycle, for an EDRAM write bandwidth of 32GB/sec. Each of these pixels can be expanded through multisampling to 4 samples, for up to 32 multi-sampled pixel samples per clock cycle. With alpha blending, z-test, and z-write enabled, this is equivalent to having 256GB/sec of effective bandwidth! The important thing is that frame buffer bandwidth will never slow down the Xbox 2 GPU.

    New Audio Format for Xbox 2

    The Xbox 2 central processing unit is a superb processor for audio, particularly with its massive mathematical horsepower and vector register set. The microprocessor can process and encode hundreds of audio channels with sophisticated per-voice and global effects, all while using a fraction of the power of a single CPU core.

    The system’s south bridge also contains a key hardware component for audio – XMA decompression. XMA is the native Xenon compressed audio format, based on the WMA Pro architecture. XMA provides sound quality higher than ADPCM at even better compression ratios, typically 6:1–12:1. The south bridge contains a full silicon implementation of the XMA decompression algorithm, including support for multi-channel XMA sources. XMA is processed by the south bridge into standard PCM format in RAM. All other sound processing (sample rate conversion, filtering, effects, mixing, and multispeaker encoding) happens on the CPU.

    The lowest-level Xbox 2 audio software layer is XAudio, a new API designed for optimal digital signal processing. The Xbox Audio Creation Tool (XACT) API from Xbox is also supported, along with new features such as conditional events, improved parameter control, and a more flexible 3D audio model.

    No Built-in Wi-Fi in Xbox 2

    As with Xbox, the next-generation console code-named Xenon is designed to be a multiplayer console. It has built-in networking support including an Ethernet 10/100-BaseT port. It supports up to four controllers.

    From an audio/video standpoint, Xenon will support all the same formats as Xbox, including multiple high-definition formats up through 1080i, plus VGA output.

    In order to provide greater flexibility and support a wider variety of attached devices, the Xenon console includes standard USB 2.0 ports. This feature allows the console to potentially host storage devices, cameras, microphones, and other devices.

    Xbox 2 Unlikely to Feature HDD

    The Xenon console is designed around a larger world view of storage than Xbox was. Games will have access to a variety of storage devices, including connected devices (memory units, USB storage) and remote devices (networked PCs, Xbox Live). At the time of this writing, the decision to include a built-in hard disk in every Xenon console has not been made. If a hard disk is not included in every console, it will certainly be available as an integrated add-on component, Microsoft said.

    Xenon supports up to two attached memory units (MUs). MUs are connected directly to the console, not to controllers as on Xbox. The initial size of the MUs is 64MB, although larger MUs may be available in the future. MU throughput is expected to be around 8MB/sec for reads and 1MB/sec for writes.

    The Xenon game disc drive is a 12x DVD, with an expected outer edge throughput of 16MB/sec. Latency is expected to be in the neighbourhood of 100ms. The media format will be similar to Xbox, with approximately 6GB of usable space on the disk. As on Xbox, media will be stored on a single side in two 3GB layers.

    Design Not Finalised

    The Xenon industrial design process is well underway, but the final look of the box has not been determined. The Xenon console will be smaller than the Xbox console.

    The standard Xbox 2 controller will have a look and feel similar to the Xbox controller. The primary changes are the removal of the Black and White buttons and the addition of shoulder buttons. The triggers, thumbsticks, D-pad, and primary buttons are essentially unchanged. The controller will support vibration.

    Xenon Development Kit

    The Xenon development environment follows the same model as for Xbox. Game development occurs on the PC. The resulting executable image is loaded by the Xenon development kit and remotely debugged on the PC. Microsoft Visual Studio version 7.1 continues as the development environment for Xenon.

    The Xenon compiler is based on a custom PowerPC back end and the latest MS Visual C++ front end. The back end uses technology developed at MS for Windows NT on PowerPC. The Xenon software group includes a dedicated team of compiler engineers updating the compiler to support Xenon-specific CPU extensions. This team is also heavily focused on optimization work.

    The Xenon development kit will include accurate DVD emulation technology to allow developers to very precisely gauge the effects of the retail console disc drive.

    Representatives for Microsoft Corporation did not comment on the report.

View All