Archives / 2004 / January
  • Hex Clock for Geeks

    The hex clock arranges time in a more consistent and logical manner than our present clock. Instead of dividing the day into arbitrary divisions (twenty-four hours in a day, sixty minutes in an hour, etc.), the hex clock represents time of day as a single hexadecimal number. A hex clock displaying three digits gives even better resolution than a standard clock, which displays a digit (or two) for the hour and two for the minutes. If you watch the clocks above, you will see that the hex clock increments about three times as often as the standard clock.


  • Static Class : C# Whidbey

    Now C# Whidbey got a cool new feature called “Static Classes”

    VC# sneak preview via Eric

    public sealed class MyClass 
       // Keep class from being created
       private MyClass() { }

    can now be written as

    public static sealed class MyClass

    This features replaces the design patterns of creating sealed classes with a private constructor that contains only static methods.

  • Info : InfoPath Myths & Reality

    00. What is InfoPath? from stephencummins

    InfoPath (previously code-named "XDocs"), is a new product in the Microsoft Office family. Using InfoPath helps to streamline the
    process of gathering information by enabling teams and organizations to easily create and work with rich, dynamic forms.
    The information collected can be integrated with a broad range of business processes because InfoPath supports any
    customer-defined XML schema and integrates with XML Web services. As a result, InfoPath helps to connect you directly to
    organizational information and gives you the ability to act on it, which leads to greater business impact and productivity.

    01. Infopath is an excel like application?

    No, Infopath has very few similiarities with other office products like excel and word but it has a very distinct
    idea behind it. Infopath is more concerned about the portability and one time data fill-up application, where as other office
    applications are more biased towards the data storage.

    02. How can I develop a complete office solution using Infopath?

    Using Infopath we cannot develop a complete sequential workflow application. It is more intended for a small scale data
    gathering applications, preferabily one form at a time. You cannot expect logical flow or receprocal  actions with InfoPath

    03. How secure is InfoPath?

    Infopath stores everything as XML storage. The typical Infopath document is devided in to UI and Data. These two parts are
    stored as XML and XSLT respectively. So unlike other binary documents, Infopath documents are virus free.

    04. Infopath needs some developer efforts.

    True, but very very less. Most of the features are wizards which are easy enough to be handled by any non-developer. The big
    advantage of Infopath over other office applications is Highest level of abstraction in Data validation. The data validations are implicitly taken care by Infopath. You can develop a simple registration form with in 5 minutes (yes 5 only) with all basic validations in place.

    05. Infopath only comes with Office system 2003 which is expensive.

    No, You can buy Infopath as a seperate individual product. But if you buy a complete Office System 2003,
    you'll get Infopath as a part of suite.

    06. Infopath needs Microsoft .NET Framework.

    No, though Infopath can be integrated with .NET, it does'nt require it.

    07. What is the role of Sharepoint server in Infopath based applications?

    Sharepoint enables Infopath applications to be deployed across teams internally. Since Sharepoint is a part of Office System, it
    enables the highest level of integration with Infopath and Team services.

    08. Do employees need to have InfoPath installed on their PCs in order to fill out forms created with InfoPath?
           - stephencummins -
     Information workers will need to have InfoPath 2003 installed on their PCs to enter information into InfoPath forms and
    to take advantage of the rich client functionality such as structural editing, business-logic validatin, rich-text formatting,
    AutoCorrect, and spell-checking. That said, you can read an InfoPath form that has been saved to .MHT in your browser or within
    an HTML-enabled e-mail client, as the body of your mail message. Because InfoPath generates XML belonging to any
    customer-defined schemas, other software could be used to reuse and display that XML document.

  • Microsoft Win32 to Microsoft .NET Framework API Map

    Microsoft has released a Map of Win32 API calls in .NET Framework here. Worth a print out. This Map has Alphabetical Category List, Alphabetical List and a nice hierarchical list also. I found one thing missing here. There are no documentation links to these classes even though these classes have MSDN documentation.

    Go here


  • Visual Studio .NET : a TOY? or a Machine Gun ?

    I am still wondering how many of a typical developer pool write thier own unit test cases for .NET.
    This is due to the lack of architectural background in many developers and great
    abstraction in Microsoft's technologies. Upto my observations, the Java guys are far ahead of these things since they have a large scope of error prone factor. The higher degree of abstraction spoils the developer's ability to build software by making him as an end user of the technology. But still there is an oppertunity to break that abstraction in .net. But the technology and tools like VS.NET hides that creativity and capability by doing more than enough.

    Though VS.NET gives more productivity by decreasing the work hours, It gives you a pipeline look, where you cannot think of other way also. e.g. In whidbey, you can get one DataGrid with Bi-directional sorting, Editable, Nice formatted features with out writing a single line of code. This kind of features will have a risky edge of making the new developers blind in coding. I have seen most of the developers putting blank feelings on faces for questions on internal things like this in my interviews.

    On the otherhand IntelliJ Idea and Eclispse are growing like VS.NET, but I could see many of good things, which are making developer to think. My only concern is why should we make any language as a kid's toy as well as a machine gun at other end? The reality is : Most of the developers are opting that "TOY" only.

    I must admit that Microsoft's PAG is doing a very good job in pumping the architectural knowledge in to Microsoft developer communituies. But at the same time there is no development going for architectural extensions to Visual Studio.NET from microsoft. Most of the MSDN seminars in india are focusing on a common VB developer who knows; by double clicking a button, you can an event for that. I am 100% sure that .NET lacks that architectural touch atleast in the hands of a common developer.

  • Google Fame

    Today I found two interesting googlies.

    01. Search for Microsoft Hyderabad. (With out quotes). 

          Our Microsoft User Group, Hyderabad's
    .NET Wing ranked at 3rd :), My blog at 8th and MUGH at 10th positions.

    02. Search for Hyderabad User Group (With out quotes) results. (Thanks Deepak)

           Rank 1 : .NET User Group Hyderabad (MUGH member)      

           Rank 2 : India Linux User Group, Hyderabad Chapter

           Rank 3 : Java User Group, Hyderabad Chapter

           Rank 4 : WebSphere User Group, Hyderabad Chapter

           Rank 5 : My Blog

           Rank 6 : My Blog (Student Chapter Post)

           Rank 7 : Our Mighty MUGH

  • .NET Academia

    Today I have started my .NET Academia (a .NET weblog for students) on thespoke. I want to blog mosrt of my .net basics teachings and tips.

    Few words about Spoke : Janaki Ram [Academic Evangelist, Microsoft ] pointed me to Spoke in Microsoft User Group, hyderabad's Student chapter initiative meeting. Spoke has got some cool features like internal blog reader and a blogroll etc...More over this the interesting point is : Microsoft is maintaining this.

    Thanks Janaki[MS]


  • HTTP Compression Explored

    Original Source :

    Compression is simultaneously one of the best-supported and most under-utilized technologies available on the Web today.

    The Technology

    HTTP 1.0 (1996) and HTTP 1.1 (1999) contain support for the "content codings" protocol parameter, the primary purpose of which is to enable compression of Web-based content without loss of data or change in its underlying media type. Since 1.1, HTTP implementations have routinely included support for all of the protocol elements necessary for reliable use of these content codings. Most major browsers like Internet Explorer, Netscape and Opera have supported compression since their fourth generation versions (roughly since 1998/9).

    At the HTTP level, compression is primarily supported through the use of a pair of HTTP headers: Accept-Encoding and Content-Encoding. The Accept-Encoding header is sent by browsers to indicate that they can accept a compressed version of the resource being requested, and to specify which of the commonly available compression formats they are capable of decoding. The Content-Encoding header is used by servers to inform browsers that the requested resource is being returned in compressed form, and to indicate which of the supported encodings was used to do the compression.

    The most common content encodings used for compression in HTTP are all based on the deflate format -- a combination of LZ77 and Huffman encoding (
    RFC 1951). The "deflate" encoding combines this deflate fomat with Zlib (RFC 1950), which adds the ADLER-32 checksum. GZip (RFC 1952), wraps the deflate format in a special header and a 32-bit cyclic redundancy check.

    The Benefits

    Any company with a Web site or Web-based application will benefit from using HTTP compression, whether self hosting or outsourcing dedicated Web servers from a hosting provider. Companies deploy HTTP compression for Web server acceleration, reduced bandwidth and faster perceived page load times for their end-users. HSPs generally leverage compression to reduce bandwidth expenditures.

    Depending on the type of Web server you have, there are a variety of HTTP compression solutions available.

    Microsoft Internet Information Services (IIS)

    • httpZip - Given limitations in internal compression features for IIS 5.0 on Windows 2000 and IIS 4.0 on Windows NT, httpZip is the best, most affordable third party tool for fully configurable, safe HTTP compression and acceleration on IIS 5 and 4.
    • Internal compression on IIS 6.0 - Microsoft made improving compression with Windows Server 2003 and IIS 6.0 a priority. As a result, this feature is now of sufficiently high quality that third party tools are no longer needed for IIS 6 compression -- check out ZipEnable to manage IIS 6.0 Built-in Compression.
    • Xceed's Compression Component for .NET -
      • Supports the Deflate and Deflate64™ compression methods

      • Supports the GZip, Zlib, Info-Zip, Java and proprietary compression formats that include embedded checksums to ensure data integrity 

      • Can read/write ".gz" GZip files used on Unix / Linux platforms and provides access to GZip header information fields 

      • True .NET pass-through stream object that can automatically compress or decompress any other type of .NET stream's data  

      • Compress and decompress byte arrays 

      • Calculate CRC-32 and Adler-32 checksums on streams or byte arrays 

      • Controllable compression level for each compression method

    Netscape Enterprise Server

    • Hardware solution for compression - Consider a reverse proxy hardware compression solution AppCelera or VIGOS.

    Apache HTTP Server