Thursday, April 07, 2005

Changed blog

Hi guys. Blogger has been giving SO MANY PROBLEMS lately, with not letting me post when I need to, I've decided to migrate to SgDotNet's blog space. All of you can get my blog at Rss Feed and ATOM Feeds are at and respectively. I'll be migrating my entire blog over there this weekend. I hope you guys continue to support me and update your feed links. Thanks!!!

Monday, April 04, 2005

SharePoint Portal Server 2003 Articles

Here's a link to Patrick Tisseghem's Blog on some Sharepoint Articles.

A few good articles to take note is the "Building Web Parts for Sharepoint Services".

An Object-Aware Memory Architecture

A paper published on February at Sun's site, by Greg Wright, Matthew L. Seidl and Mario Wolczko: An Object-aware memory architecture. Quoting from the abstract:

Despite its dominance, object-oriented computation has received scant attention from the architecture community. We propose a novel memory architecture that supports objects and garbage collection (GC). Our architecture is co-designed with a Java Virtual Machine to improve the functionality and efficiency of heap memory management. The architecture is based on an address space for objects accessed using object IDs mapped by a translator to physical addresses. To support this, the system includes object-addressed caches, a hardware GC barrier to allow in-cache GC of objects, and an exposed cache structure cooperatively managed by the JVM. These extend a conventional architecture, without compromising compatibility or performance for legacy binaries.

Advanced Personalization Services in ASP.NET 2.0

Advanced Personalization Services in ASP.NET 2.0 Part1

Advanced Personalization Services in ASP.NET 2.0 Part2

Advanced Personalization Services in ASP.NET 2.0 Part3

Summery: Learn about personalization, how to implement the first aspect of personalization features in your web applications using membership object provided by ASP.NET 2.0.

A fantastic article on Personalization in ASP.NET 2.0 by Khaled Hussein.


Sunday, April 03, 2005

Minimizing Applications

I've done this before so many times and I've always forget. It's high time I jot it down. Most of the times during startup applications, I want those applications to start up minimized, and usually these applications will minimize into the tray. So how do I do it? Very simply -

1) Right click on the shortcut
2) Click on Properties
3) Under Shortcut tab, change Run option to "Minimized"

As simple as that. I use it to load my Outlook during startup into the tray, and my Task Manager too! Well, mostly those 2 only. :)

Try it out. Task Manager is a MUST-HAVE during start up.

Thursday, March 31, 2005

Finally! I can BLOG! Updates on SgDotNet!

Hey guys and girls! It's been so long since I blogged. Anyway I've been busy getting Community Server up and working for SgDotNet. The link for the new forums is

I'll be switching my blog as soon as I can figure out how to migrate all my posts here to the Community Server Blogs @ SgDotNet.

Well, anyway, my new blog url is @ There's nothing up yet until I write the code to migrate. A lot of people I know are waiting for this migration code. Well, I'll try my best to write it this weekend.

I have to get the SgDotNet Website up ASAP, because we're having a meeting next thursday. I achieved something today with the website, I've fixed the Single-Sign-On issue between cross-sites, the website and the community server. :) I rock. Yeah I do! :)

Till next time, hopefully you'll see me in my new blog space. Cyaz!

Monday, March 28, 2005

Content Management System - Is creating one viable?

A friend of mine was telling about creating a commercial Content Management System is a good way to go. Then I was asking myself, why would I want to pay for a CMS which is so expensive, when I can get a CMS which costs $0, has online support, and many resources on how to set the system up.

One of them is the Mambo CMS created using PHP and MySQL which all runs on Apache. Here's a recent review on it.

Open source Mambo CMS succeeds admirably

All these are free. Another one of them is the DotNetNuke created using Visual Basic.NET and runs on IIS which isn't much of a CMS but there are modules to convert it into a CMS which can also interface with MySQL. The same goes with PHPNuke.

Just do a google search for "Content Management System Opensource" and you'll get back so many results. So now I ask you, why should I spend time creating my own, and selling it? One way to make money from CMS would be to take one of these Opensource free CMS, and provide the service of customising it for the client. It's much faster, reduces cost, and it's already easy and ready to use.

Now I want your opinion on this.

What's the rationale for creating your own CMS? Even if the rationale is that CMS is meant for big enterprise-level businesses, and most SME aren't really taking for it, as previously mentioned, there is the niche market there to push into. But why would I want to spend time creating a CMS from scratch, then customising it, then selling it?

And why should I as a businessman want to buy the CMS from Microsoft when it's so complicated, difficult to setup, and most of all, EXPENSIVE? Integration is one thing, but that's all I can see as the advantage, which I don't quite need really for CMS.

Comments please. :)

Discovered (??) CSS Hack - Loading Logos First

I've always had problems putting links on css backgrounds. For example, a simple logo like this.

<div id="logo">
<a title="SgDotNet For Cool Developers" href="/">
<span class="alt">SgDotNet For Cool Developers</span>

with the CSS...

#logo a { background: transparent url(../Images/logo/sgdn.jpg) no-repeat left top; }

The logo will render the background image LAST! Now, as a main website logo, we don't want that do we? We want it to be rendered first. So here's what I changed.

#logo { background: transparent url(../Images/logo/sgdn.jpg) no-repeat left top; }

This will render the background image FIRST, but the anchor is gone. This isn't what I need.

So this is what I did... I added both CSS in. And it renders FIRST, plus the anchor is still there.

#logo { background: transparent url(../Images/logo/sgdn.jpg) no-repeat left top; }
#logo a { background: transparent url(../Images/logo/sgdn.jpg) no-repeat left top; }

And this is all I did. It worked perfectly fine. If there's such a hack already discovered out there, please forgive me for my ignorance.

Hee, feeling proud I discovered this myself.

Friday, March 25, 2005

BrainGate - Science Fiction becomes Reality

Have you ever watched sci-fi movies that show interaction between computer and human just by thought alone? Or plugging into the computer through a jack like the Matrix?

It's becoming reality.

Check out the research here.

Cyberkinetics - Neurotechnology Systems, Inc.

Cool huh! Check out the demo video.

Google OS?!? And advice for Imagine Cup teams

For those participating in Imagine Cup 2005, I wished you would have given me something like this.

A Google OS by 2010?

I was just talking to another group of participants in IC2005 about an idea similar to that article up there, though it's not coupled to a specific OS. Apparently this article came up soon after. LOL. Great minds think alike.

You guys want dissolving boundaries? That is your ultimate idea. Why didn't anyone from Singapore think about that? Or something similar, or even something of the same granduer. Think grand scale, think innovation, think out of this world.

What was mentioned in the article is just waiting to be implemented, to be used, to be wide-spread. The idea has been going around since ages ago. We have webservices, we have SOA, we have the .NET Framework, we have Java, we have Linux. The technology is out there already. We're waiting for it to happen.

Come on people, I was very disappointed with most of your proposals that I judged. Apparently Singaporeans have very little ambition, and are quite polluted by the fact of marketing and business. Think of out the box, please!! I had an agonizing time reading all the proposals I got.

Anyway, I wish all of the teams who got into the Semi-Finals of Imagine Cup 2005 in Singapore all the best, and please go all out to impress.

A good idea is only good when you yourself are excited over it.

Thursday, March 24, 2005

Accepted into University!!

Yesterday I just got news that I've been accepted to University of Waterloo. I did it!!

1 hour later, I got news that I've been accepted to University of Toronto @ Scarborough (UTSC) too!! Stress! Now I've got to choose which one.

Anyone knows which I should go? Anyone knows which is better? Stress!

And furthermore, now that I got in, I've got to consider about paying for my education. I'm wondering if there's any grants or scholarships around for my lowly results. Because all I see is scholarships asking for high A level results, with S-Papers and such. Oh well, I'll do my best searching for some $$$. Each university also has scholarships and grants over there. So I might be applying for those too.

Well, congratulations to me! WOOOOHOOOOOOOOO!!!!!!!!

Wednesday, March 23, 2005

Game Developer Conference 2005 Slides

The Microsoft DirectX slides are available for download here.

This download includes presentations given by the Windows gaming and graphics team at the Game Developers Conference 2005. Included is the Microsoft DirectX Developer Day content and the High-Level Shader Language (HLSL) Workshop content.

The nVidia slides are available for download here.

The ATI slides are available for download here.


Zeta OS Deluxe Edition Screenshots

A few days ago I posted some news on Zeta OS, the successor of BeOS. Here are some screenshots to follow.

I'll be ordering my Zeta OS v1.0 when it's officially released on the website.

Cool looking Pub

Here's a cool looking pub in Poland.

Take a look at it. It looks damn cool. :P

lex / YACC on .NET?

I was trying to find a lex or YACC or bison equivalent on .NET, and lo ho and behold I finally found it, by accident.

It's called The Compiler Generator Coco/R, or just Coco/R in short. Here's the link to it.

It has ports to C#, Java, and others. It does things slightly different from lex or YACC or bison, but it still serves the same purpose. To parse text/code.

So that's that. This is actually for a project that MIGHT be doing in future. Check out the thread here.

Design Patterns C#

I think it's high time I posted this up.

Design Patterns C#
This book covers all the 23 patterns in the Gang of Four book.

Here is an online resource for the 23 patterns in C#.

Learn the basic design patterns and appreciate it. Every developer needs to have this book.

Tuesday, March 22, 2005

Routing Secured SOAP Messages Through Multiple SOAP Intermediaries Using WSE 2.0

Routing Secured SOAP Messages Through Multiple SOAP Intermediaries Using WSE 2.0

Route secure SOAP messages through multiple HTTP SOAP intermediaries using "Next-Hop" mechanisms, and use the ExtendedSecurity function to form a secured chain of SOAP nodes through which messages must pass.

Well, this is my friend's, Softwaremaker, or he'll like me to call him William Tay instead, article on MSDN!! Well, I've read it, and it's one great article. But it really needs indepth knowledge of the internals of web services. So be prepared for one hell of a ride.

Here's his blog about this article.,guid,efeecf7b-a2bc-45bc-8e71-3f16e586ce15.aspx

Good stuff. Thumbs up!

Atom Resources

Hey ho. I'm back again with more things. Here I am getting interested in Atom.

Here are some resources to read up on.

Note that the current version of Atom is v0.3, and the Atom WSDL specs are for v0.3, and not the drafts.

After reading, this link seems to have the most updated WSDL file for Atom.
Randy Charles Morin

This is link is some fix up before the top link, and provides some c# client code.
Sam Ruby

And some thoughts from Christopher Ferris about the old Atom WSDL before the top link was revised.

For those playing with WSDL 2.0, here's the updated WSDL file.
Dave Orchard's Blog
Atom 0.3 WSDL 2.0

And lastly, this is the official WSDL that everyone uses. IMO, the first WSDL file posted up there is still the latest and updated one.


Atom Specifications
New Atom Format Draft
Atom Publishing Protocol (txt) (html)
Current Atom v0.3 Specifcations

Atom Resource/Website
The Atom Project Wiki

From what I see, the Atom community activity seems to have stopped for a while, web-presence I mean. Whereas in the mailing list and such, they are very much active.

That's all folks. Note to self, get softwaremaker to take a look at the Atom WSDL file.

You guys might be wondering why the sudden interest in Atom, and the WSDL. You'll find out soon. Hee! Man I took 1 hour to type out this post.


ManWrap Library - Managed Code in Unmanaged C++!?!

Use Our ManWrap Library to Get the Best of .NET in Native C++ Code

The Managed Extensions for C++ make it possible to mix native and managed code freely, even in the same module. Wow, life is good! Compiling with /clr, however, has consequences you may not want. It forces multithreading and dispenses with some useful runtime checks. It interferes with MFC's DEBUG_NEW, and some .NET Framework classes may conflict with your namespace. And what if you have a legacy application that uses an older version of the compiler that doesn't support /clr? Isn't there some way to reach into the Framework without the Managed Extensions? Yes!

In this article, I'll show you how to wrap Framework classes in a native way so you can use them in any C++/MFC app without /clr. As my test case, I'll wrap the regex classes from the .NET Framework in a DLL and implement three MFC programs using it. You can use RegexWrap.dll to add regular expressions to your own C++/MFC applications, or use my ManWrap tools to wrap your own favorite Framework classes.

WOW! THIS IS COOL STUFF!!!!! I ALWAYS WANTED TO DO THIS; THE OTHER WAY AROUND FROM MANAGED TO UNMANAGED!! Enough of CAPS. This is cool. Alot of C++ guys will love this. Maybe I should fire up my passion for C++ again, since C++ is actually getting SOME recognition in the .NET environment, finally.

The Trustworthy Computing Security Development Lifecycle

The Trustworthy Computing Security Development Lifecycle

This paper discusses the Trustworthy Computing Security Development Lifecycle (or SDL), a process that Microsoft has adopted for the development of software that needs to withstand malicious attack. The process encompasses the addition of a series of security-focused activities and deliverables to each of the phases of Microsoft's software development process. These activities and deliverables include the development of threat models during software design, the use of static analysis code-scanning tools during implementation, and the conduct of code reviews and security testing during a focused "security push". Before software subject to the SDL can be released, it must undergo a Final Security Review by a team independent from its development group. When compared to software that has not been subject to the SDL, software that has undergone the SDL has experienced a significantly reduced rate of external discovery of security vulnerabilities. This paper describes the SDL and discusses experience with its implementation across Microsoft software.

4 words - Read it. Use it.


My friend icelava had asked me what's that blueish thing with so many headlines at the top right hand corner of my laptop screen. That, is KlipFolio.

Download it here.

You can get more klips here at KlipFarm.

Klips are just getting changes from anything and everything under the internet skyline. :) That's about it.


IE7 and CSS: the Acid2 test - Microsoft has now been challenged

This is just something my friend Kit Kai was interested. So I thought maybe you guys might be interested too.

IE7 and CSS: the Acid2 test - Microsoft has now been challenged

In a public effort to encourage Microsoft to add as much CSS 2 support as possible as its developers embark on IE7, HÃ¥kon Wium Lie (CTO of Opera Software and the father of CSS) and the Web Standards Project have begun the development of a test suite, known as “Acid2.”

"To ensure that IE 7 does not become another failed promise, the Web community will issue a challenge to Microsoft. We will produce a test page, code-named Acid2, that will actively use features Web designers crave, such as fixed positioning of elements.

...To the IE 7 developers, I want to say:

You are smart and talented. You know Web standards as well as anyone. You were capable of fixing IE in the past, but your managers didn't let you. You now have a new chance to get it right--don't waste it. Download Acid2 when it's released and get in touch if you think it's unfair for any reason. Resist pressure from management to ship before you are done--spend the extra time it takes.

...To the Web community I want to say: Microsoft has now been challenged. They will respond, if enough people remind them of the challenge. Please remind them. And, when IE 7 is released, make sure this is the first thing you type into it"

What do you guys think? For me, I support the web standards committee to push IE 7 to be as compliant as it can be. I like the current CSS 2.0, and XHTML 1.1 standards. It's clean, simple, and good.

Infrared Programming Using the .NET Compact Framework

This is quite old, but it seems quite a few people are asking how to do it. It's written by Lee Wei Meng from Singapore. Yay! 3 Cheers.

Here's the link.

Infrared Programming Using the .NET Compact Framework

Oh btw, if I'm not wrong there are some changes for Infrared and Bluetooth programming on .NET Framework 2.0. I'll have to check that out.

Changelog from .NET Framework 1.1 to .NET Framework 2.0

Here's the changelog link for the changes from .NET Framework 1.1 to .NET Framework 2.0.


Monday, March 21, 2005

Microsoft Solutions Framework v3.0 and v4.0 Resources

If anyone realise yet, I'm bored and tired. So I'm just searching stuff to read.

Here's a link of resources on MSF v3.0 and v4.0(still under beta).

MSF v3.0 Resources

MSF v4.0 Resources

I'm sure you guys will benefit more from the v4.0 resource. I've been trying to find stuff about v4.0 and this guy's all I've got.

If anyone has more links, please feel free to post them under comments.

Patterns And Practices LIVE

Some schedules of Enterprise Library Webcast.

Check it out.

Enterprise Library can be downloaded here.

Software Factories

This is a bit old, but I'll post it anyway.

Download it from here.

It's a webcast talking about Software Factories. I'm not too sure about this topic, but I'll be watching the webcast and will write more on it.



A .NET Library to dynamically call Web services at runtime.

Have you ever thought of invoking your Web services dynamically without having to generate a client-side proxy class at design/compile time with WSCF, wsdl.exe or Visual Studio .NET? No need to know the exact Web service description and endpoint at compile/design time. Just get your WSDL, specify the service (binding) to use and the operations to call, and voila! The library can be used especially good in testing scenarios.

Just noticed this other good stuff for web services, posted by Softwaremaker. It's from the same guy as the previous post I made, WS-ContractFirst (WSCF).

Do check it out.

Oh and just to add, the web services guru in Singapore, Softwaremaker aka William Tay's blog.

MSDE Deployment Toolkit

Finished! Completed 1 project. Feeling good. 5 more to go. UGH!

Anyway, here's something to tingle your senses. I'm sure everyone needs to use a database somehow or another during their development, and not everyone has SQL Server 2000 installed. One way would be to use Access, but that's too slow. Another way would be to use MSDE. Here's a good article as how to create your application installation to include and setup MSDE 2000 for your application.

The MSDE Deployment Toolkit (RC) in Action


Next up I'll talk about Paladin, if I can remember anything to write about.

Sunday, March 20, 2005

WS-ContractFirst (WSCF)

Yo yo yo. I'm 90% done with one of my long-passed dateline project, and NOW I'm going to rest. But before that, I'd like to share with you guys WebServices - Contract First.

A few weeks ago, my friend Softwaremaker gave a presentation to the SgDotNet User Group. And he did a wonderful presentation about WebServices - Contract First. Here's his blog about it.

Introducing WS-ContractFirst (WSCF) to Singapore

And he did mention about Christian Weyer's WS-ContractFirst (WSCF) tool. Please do check it out. Contract First with webservices is a good way to go, though not the best, but I assure you SWM has convinced me it's the best way to go at the moment.

There is a March 2005 Indigo CTP just released on MSDN Subscribers. Here are a few good articles on Indigo.

Microsoft "Indigo" The Unified Programming Model for Building Service-Oriented Applications

Introducing Indigo: An Early Look

Well, that's all folks! It's dinner time, and after that, I have to do the rest of this. I have another 5 more projects which datelines are way long overdued. Sigh.

Hopefully till tomorrow, I'll be blogging again.

Saturday, March 19, 2005

Saying Hi from MRT!

Yo! I'm using GPRS with Bluetooth connection to my cellphone to connect to the interenet from the MRT train! w00t! Technology rocks. Improving my productivity by the double, or maybe eventually triple. Who knows... Weeeeeee!!!

Being connected every second and minute feels good.


No technical stuff today. It's rest day for me. w33t.

Phalanger - the PHP Language Compiler for .NET Framework

Phalanger - the PHP Language Compiler for .NET Framework

The Phalanger is a complex solution giving web-application developers the ability to benefit from both the ease-of-use and effectiveness of the PHP language and the power and richness of the .NET platform. This solution enables developers to painlessly deploy and run existing PHP code on an ASP.NET web server and develop cross-platform extensions to such code taking profit from the best from both sides. Compatible with PHP 5.0, the object model in Phalanger enables to combine PHP objects with the .NET ones. It is possible to use a class written in PHP from a .NET application or even to import a .NET class (written for example in C# or Visual Basic .NET) into PHP scripts provided that this class respects the PHP object model implemented in the Phalanger. The Phalanger is the only existing PHP compiler which produces .NET Framework MSIL bytecode.

From another point of view, Phalanger provides the .NET programmers with the giant amount of practical PHP functions and data structures - many of them reimplemented in the managed environment of the .NET Framework. The whole Phalanger class library (including functions implemented in the PHP extensions) is accessible to a .NET programmer regardless to her favorite programming language together with type information and in-library debugging.

For last but not the least, compilation of PHP scripts gives yet more power to the existing web applications in the Phalanger environment. All the static (run-time immutable) code in the scripts gets parsed and compiled only once and all following accesses to a page benefit from the unleashed execution of the native compilation of the script. Yet the usage of Phalanger is not limited to web applications. The compiler supports output of standalone executables or dynamic link libraries enabling you to create managed PHP console applications or library modules reusable from any other .NET Framework application.


Take a look at their interview at Channel 9
Phalanger: PHP .NET compiler revealed #

Friday, March 18, 2005

Thoughts on Business

I was thinking just now about business and how it runs. Basically, a business simply contains 3 things.

1 - Providing (a) service(s)
Be it a product, a way to do things, creating applications, and so on, everything is based on providing a service. That's what the main business runs on, and depends on.

2 - Creating Awareness
You have to make known of what your business does, and let people know it's benefits and how it is different from others and so on. This in it's way is to create awareness, or advertising, or social networking, or whatever you call it. It basically boils down to creating awareness for your business.

3 - Innovation
As mentioned above, you need to let people know how your service is different from others. Therefore you'll need to innovate, and come out with something unique for your "service". Why I put this last is because innovation in itself is quite difficult to achieve, and it requires someone of certain calibre to handle it. Most businesses do not have that calibre. But they still fulfill the first 2 criterias on business.

These are just my thoughts on business, as I was talking to a friend. I don't study business or marketing or what have you, so I might be wrong, or this might be extremely obvious to everyone, but I just find it quite interesting that every business must at least fulfill 2 of the criterias.

Do you guys have any thoughts on this? Feel free to comment.

Thursday, March 17, 2005

GoWebTools - Free Hit Counter


This looks like quite a good hit counter provider. Reminder to use this for SgDotNet website.

Wednesday, March 16, 2005

Five Undiscovered Features on ASP.NET 2.0

Five Undiscovered Features on ASP.NET 2.0

By now, developers everywhere have had the opportunity to download the first beta of the Microsoft® .NET Framework 2.0. ASP.NET developers who have played with it are no doubt salivating at all the cool new features. From Master Pages to declarative data access to new controls to a new provider-based state management architecture, ASP.NET 2.0 offers myriad ways to do more with less code. And with Beta 2 just around the corner, now is the time to get serious about ASP.NET 2.0.

You may have read some of the many books and magazine articles previewing the upcoming features. You might even have seen a live demo at a conference or user group meeting. But how well do you really know ASP.NET 2.0? Did you know, for example, that those wonderful $ expressions used to declaratively load connection strings and other resources can be extended to create $ expressions of your own? Did you realize that the new ASP.NET 2.0 client callback manager provides an elegant solution to the problem of keeping browser displays in sync with constantly changing data on the server? Did you know that you can encrypt sections of Web.config to prevent connection strings and other potentially injurious data from being stored in plaintext?


My Take? Interesting article. I like the part about the client script callbacks, which is extremely useful. And the custom expression builder.

Tuesday, March 15, 2005

Interest Articles : Communities

My friend Savagerx at SgDotNet posted something interesting for me to read up.

This article discusses some of the common roles we can expect to find in a community.

Yet another of somehow the same article.

Designing a Computer Supported Community

I should get all these read one of these days. Reminder.

Visual Studio 2002 SP 1

Download it here.

Here is a list of the changes and hotfixes included in the SP.;en-us;837234

Release Notes are here.

This download installs Service Pack 1 for Microsoft Visual Studio .NET 2002. Fixes in this Service Pack concern stability and security enhancements made in many areas of the product. A comprehensive list of hotfixes requested by customers since the release of Visual Studio .NET 2002 and included in this Service Pack can be found by following the appropriate link under Related Resources on this page.

Enjoy! :)

And you thought ActiveX was bad... Here comes Java!

Firefox Spyware infects IE?

The terror has come. Java Runtime Environment is now the target for spywares. It's no more ActiveX. Read on to find out.

What if there was an infection out there that could bypass Firefox and still get its grubby little paws on IE, and from there, the heart of your OS? What if that same infection could get past not only FF, but a whole raft of other (supposedly more secure) browsers too?

What if, of all people, Neil Diamond was indirectly involved in this craziness?

Unfortunately, this has now become a reality and woe betide anyone looking for lyrics from Neil's latest hit. You're more likely to end up with a nasty case of browseritis. After hearing rumours of a Firefox Adware bundle from this thread, I thought I'd go check it out. The results were, as they say, a right kick in the pants.

The Algorithm Structure Design Space in Parallel Programming

The Algorithm Structure Design Space in Parallel Programming

The first phase of designing a parallel algorithm consists of analyzing the problem to identify exploitable concurrency, usually by using the patterns of the Finding Concurrency design space. The output from the Finding Concurrency design space is a decomposition of the problem into design elements:

  • A task decomposition that identifies tasks that can execute concurrently

  • A data decomposition that identifies data local to each task

  • A way of grouping tasks and ordering the groups to satisfy temporal constraints

  • An analysis of dependencies among tasks

This chapter will help you, the algorithm designer, to leave the parallel algorithm design abstract enough to support portability while ensuring that it can eventually be implemented effectively for the parallel systems on which it will be executed.

Monday, March 14, 2005

Zeta 1.0

BeOS has been dead for almost 4 years or more. Yellowtab took up the mandate and carried on it's legacy. Now, Zeta 1.0 is out. Check it out at

Other news on reliving BeOS, probably my most favourite OSes in my life, OpenBeOS or now named Haiku-OS is the opensourced implementation of the recreation of BeOS. This is how wonderful BeOS is. Perfect and powerful in it's own being.

For those OS hackers, please consider helping out Haiku-OS. Long Live BeOS.

More CSS?!? Oh no...

To re-iterate my growing love for CSS, here again are some links (some which I've posted before) to get good resources.

Why tables for layout is stupid: problems defined, solutions offered

css Zen Garden: The Beauty in CSS Design

css-discuss Wiki
The css-discuss Wiki is a companion to the CssDiscussList mailing list.

A List Apart: Alternative Style: Working With Alternate Style Sheets

A List Apart: CSS Design: Taming Lists Advanced HTML, CSS, and DHTML : CSS layout techniques

CSS, Accesibility and Standards Links

The W3C CSS Validation Service

Quite a number of articles & forum discussions regarding design, layout, css, etc.

Good forums for CSS discussions

Cracking Wi-Fi Protected Access (WPA)

Cracking Wi-Fi Protected Access (WPA) Part 1

Cracking Wi-Fi Protected Access (WPA) Part 2

Good read. Don't tell anyone I told you about this. Hee! Anyway it's quite a difficult thing to understand unless you've done lots of packet h*cking before.

I'm not responsible for whatever damage might come from you learning from those links.

The Wordlist Project

The Wordlist Project

I won't talk much about this. It's just for my reference. Wonderful list. Fantastic for *ahem*. Enough said. Those of you who knows what to do with it, use it. Any other links to other similar sites would be much appreciated.

Sunday, March 13, 2005

Microsoft Learning 2nd Shot Exam Offer

Give yourself the best chance for success with an extra opportunity to pass any Microsoft IT Pro or Developer certification exam. Sign up now, and if you don't pass the first time around you can retake it free.

Website Statistics - AXS Visitor Tracking

AXS Visitor Tracking

AXS records visits to your web page and processes those records into meaningful graphs and database listings. The scripts tell you where visitors are coming from, charts their flow through your site, and tells you which links they follow when leaving. In addition, the scripts record visitors' server name, IP address, type of web browser, and time of visit.

It is based on Perl.

This is something I want to set up on the SgDotNet website.

ASP.NET and Struts: Web Application Architectures

ASP.NET and Struts: Web Application Architectures

Learn about the similarities and differences between ASP.NET on the .NET Framework and Struts on Java 2 Enterprise Edition; and the features that each provides to solve common developer problems. Learn about the advantages and disadvantages of each, and the utility that they bring to next-generation Web development.

My Take:
Struts was the revolution in J2EE. Struts seperated design from logic using the MVC model. Struts was the next best thing for J2EE other than JBoss. Struts is the Controller.

But then came about ASP.NET. :)

Professional C#, 2nd Edition: Graphics with GDI+

Professional C#, 2nd Edition: Graphics with GDI+
The sample book chapter shows you how to interact directly with users in C#, displaying information on the screen and accepting user input. You'll draw lines and simple shapes, images from bitmap and other image files, and text.
By Scott Allen, Ollie Cornes, Steve Danielson, Jay Glynn, Zach Greenvoss, Burton Harvey, Jerod Moemeka, Christian Nagel, Simon Robinson, Morgan Skinner, and Karli Watson

Thursday, March 10, 2005

C# Game/Graphics Engines

Just looking back at my old love of game development, I'm here to recommend some good game and graphic engines that's free and opensourced, which are all very good stuff. Naturally, that works with C#, but not confined to Managed DirectX. Did I mention they are also cross-platform?

Axiom3D - Game Engine that's based on OGRE, a C++ graphics engine. It uses Managed DirectX and Managed OpenGL.

Personally I'ved worked with Axiom3D before to create some demoscenes and mini-games. It's a wonderful piece of work. But the interface changed quite alot since the last time I played with it. It has a lot of new stuff, like new physics and UI engine.

RealmForge GDK - Game Development Kit that's also opensource.

I haven't used this before, but I heard from recommendations it's quite extensive and complete, eventhough it's just v0.6 and not a full v1.0 yet. If I'm not wrong, it includes a scripting engine too. Not too sure.

Purple# - Game Engine that's coded in C#. It's a shader driven 3d engine for .NET.

Neither have I used this before. I'm not too sure how good it is, but it's another engine coded for the .NET platform. Not much to comment on this, but I heard it's good.

That's that. As you can see, I don't have much experience with game development on the .NET framework, but I feel there is potential for it. It's definitely much faster than working in Java.

For more information, do check out this fantastic website.

I frequent there last time, until I realise game development just didn't make money here in Singapore. Anyway it's still my passion to create a wonderful game where people can enjoy.


Scholarships for University and more on CS 1.0

I think this might be my first non-technical post. I'm desperate to find scholarships or someone to sponsor me to go University, if I get into the University I want.

For those who already know, I've applied for University of Toronto and University of Waterloo, to the Computer Science program. Apparently, one of my family member is having an operation today, and that operation costs quite a far bit of money. Therefore, as you should already guess, my funds for university is much diminished.

I've looked at quite a few scholarships, and most of them require 3 A level distinctions, or S-Papers, which is quite apparent that I don't have those. I'm currently holding a Diploma in Computer Engineering from Ngee Ann Polytechnic, and it's only a B average (or so my counselor at the Canadian Education Centre says). Furthermore, for those who doesn't know, I'm very active in SgDotNet and currently am an MVP - Visual Developer C#.

So, now the big thing. Where do I find scholarships? I've checked up BrightSparks but like I said, most of them require quite exceptional results.

Oh well. Anyway, enough of lamenting. Here's something I'd like to share with you guys who's playing around with Community Server 1.0. The conversion tool from forums 2.0.1 to CS 1.0 is released by external sources. Here's the link.

There's a fix for the Anonymous users here.

Links for converting from nGallery to CS 1.0.

Community Server has also released their "documentation" which is a wiki. Check it out here.

Oh yes, did I mention SgDotNet is going to do migration? :) Yes that's right. That's why I posted all these links here. And you think it's for you. Haha! This blog is for me to remember things, not for you! Just joking. *wink*

Other cool stuff is this very cool Content Management System (CMS) that is actually quite good. It's XHTML and CSS compliant. It's called WordPress. And it's totally done in PHP. Very good stuff. I'm wondering if CS 1.0 and DNN 3.0 is XHTML and CSS compliant. Even if it's XHTML 1.0 Transitional, that's pretty good already, in my opinion. Check WordPress out. They have a demo site setup here.

Is that enough information? Or is it not enough?

Interesting news. It seems that MVPs are going on revolt because Microsoft is stopping development on VB6.

That's all folks for today.

Sunday, March 06, 2005

Emails ALL GONE!!!!

For those who have sent me emails since 05/03/2005 onwards, please re-send. My emails all went down the /dev/null.

Apparently the problem was this.

Fixed it. Now everything works. But I lost 2 days worth of emails. Sorry to everyone. Please resend emails to me. Thanks. That includes Jason, Ken, Kitkai, Howard.

Thanks alot for the inconvenience. I'll be sending you guys emails to request you guys to resend to me.

Saturday, March 05, 2005

More on Small Business Server 2003

Here are a few links that would help with deploying your SBS 2003 to your network.

Migrating from a Peer-to-Peer Network to a Windows Small Business Server 2003 Network

Getting Started Guide

Connecting Mobile and Remote Users

These are a few documents which helped me greatly in planning and deploying SBS 2003 into my current small network.

I'm still having that tingly sensation of how wonderful SBS is. Hehe!!!

Friday, March 04, 2005

Exchange Server 2003 and Small Business Server 2003

Let me first say, Exchange Server alone sucks. It's too damn difficult to configure, and requires alot of registry editing and doesn't have POP3 connector to download emails into exchange accounts.

I was trying to get Exchange Server 2003 working on my Windows 2003 Server for the past few days, and with some effort it worked. It takes almost 5 to 10 mins to shutdown the Exchange Server and reboot, and doesn't have anything to guide you through. You'll definitely have to be very good with your knowledge of Exchange Server 2003 to be able to set it up. Not for someone like me who knows nuts about infrastructure.

The purpose of setting up Exchange Server 2003 was to have a central repository of my emails, contacts, appointments all at my home server, and able to sync with my notebook, any web-enabled device, and at home. Right now I've problems trying to keep everything in sync manually, which reduces my productivity that requires me to go home to read my emails, and recopying mails from my notebook to my desktop.

Let me stress again, Exchange Server 2003 is NOT for dummies like me who wants to do advance stuff like that.

Let me stop lamenting on Exchange Server 2003. Then I decided, what the heck, why don't I just re-format and install Small Business Server 2003 instead. I must say, SBS 2003 is one of the easiest and the most effortless setting up ever. Although installation takes a few hours (I took almost 6 hours to install and configure everything), after all that long wait, everything appears as a wizard. They have wizards for almost everything. And a very intuitive System Manager, with everything I need to configure at my fingertips. They have this TO-DO thingy after installation that tells you what you need to configure, and they have wizards for everything.

And did I mention they have a wizard to set up your POP3 connector? It's so simple and effortless. They included a POP3 connector into the Exchange Server. You just have to key in your pop server, username and password, and where the mails will go into. And of course the frequency of checking your pop server.

Simply wonderful. I also love the Certificate Wizard where they help you to create a self-signed certificate for you. You're able to replace the name to your internet fqdn, instead of the intranet name which I seem to be creating ALWAYS. Like I said, I'm a infra dummy.

Furthermore, it takes only a 1-2 mins to reboot, much much faster than Exchange Server 2003 stand alone on Windows 2003.

Did I mention they have a wizard that helps you set up your AD and lan and everything else?

It's good stuff. I recommend it to everyone who's setting up a business, especially a SOHO, which is quite popular in Singapore.

Alrighty, enough praising. It rocks.

Monday, February 21, 2005

Boo - New .NET Language

Something I found yesterday. Quite an interesting language that's very dynamic. Here's the description of it.

Boo is a new object oriented statically typed programming language for the Common Language Infrastructure with a python inspired syntax and a special focus on language and compiler extensibility.

Do check it out.

CS-Script - The C# Script Engine

Something I came across that's quite interesting.

CS-Script. Looks good. Wonder if it can be done for websites, instead of using javascript? :)

Friday, February 18, 2005

Non-Rectangular Windows Forms Part 2

I figured nobody could answer my question. Therefore, I solved it myself.

Basically what I did was to use the form's Region property. This Region property selects the region in which it is to display.

Problem, how am I gonna find out the region of an irregular shape? Simple. Parse each pixel bit by bit to check for your transparency key. If it is not transparent, create a graphics path of 1 pixel to create your region. I got the idea from here.

The code is as follows.

public static Region ConvertFromTransparentBitmap(Bitmap imageRegion, Color transparentColor) {
// First we get the dimensions of our image
GraphicsUnit aPixel = GraphicsUnit.Pixel;
RectangleF imageBoundsF = imageRegion.GetBounds(ref aPixel);
int imageWidth = Convert.ToInt32(imageBoundsF.Width);
int imageHeight = Convert.ToInt32(imageBoundsF.Height);

// This will be the path for our Region
GraphicsPath regionPath = new GraphicsPath();

// We loop over every line in our image, and every pixel per line
for (int intY = 0; intY < imageHeight; intY++) {
for (int intX = 0; intX < imageWidth; intX++) {
if (imageRegion.GetPixel(intX, intY) != transparentColor) {
// We have to see this pixel!
regionPath.AddRectangle(new Rectangle(intX, intY, 1, 1));

Region formRegion = new Region(regionPath);
return formRegion;
} /* ConvertFromTransparentBitmap */

But that took 12 secs to load up. So I did it the opposite way, since I have more visible part than transparent. If the pixel matches your transparency key, create the graphics path then. And I did an exclude. Like this.

public static Region ConvertFromTransparentBitmap(Bitmap imageRegion, Color transparentColor) {
// First we get the dimensions of our image
GraphicsUnit aPixel = GraphicsUnit.Pixel;
RectangleF imageBoundsF = imageRegion.GetBounds(ref aPixel);
int imageWidth = Convert.ToInt32(imageBoundsF.Width);
int imageHeight = Convert.ToInt32(imageBoundsF.Height);

// Create an arraylist to store the rectangles
ArrayList rectArray = new ArrayList();

// This will be the path for our Region
GraphicsPath regionPath = new GraphicsPath();

// We loop over every line in our image, and every pixel per line
for (int intY = 0; intY < imageHeight; intY++) {
for (int intX = 0; intX < imageWidth; intX++) {
//Color c = imageRegion.GetPixel(intX, intY);
if (imageRegion.GetPixel(intX, intY) == transparentColor) {
// We have to see this pixel!
//regionPath.AddRectangle(new Rectangle(intX, intY, 1, 1));
// Add a rectangle to the array
rectArray.Add(new Rectangle(intX, intY, 1, 1));

Rectangle[] rectList = new Rectangle[rectArray.Count];

// Now we convert the ArrayList into an array of Rectangles
for(int i=0; i < rectArray.Count; i++) {
rectList = (Rectangle)rectArray;

Region formRegion = new Region(regionPath);

// we need to create a region which encompasses the entire form
Region fullRegion = new Region(new Rectangle(0, 0, imageRegion.Width, imageRegion.Height));

// we do a simple exclude those parts that intersect

return fullRegion;
} /* ConvertFromTransparentBitmap */

Basically this alternate way speed up the entire loading process down to 4 secs. Of course together with DoubleBuffering on, and using the 32bit-enabled transparency code up there, I was able to create one ultra fast and smooth irregular window, without any flicker to the controls within.

A faster way to speed up the loading process, which I haven't tried yet, is to create the array of points to the graphics path. Meaning you'll have to pre-generate the points first, put it in an array, and use it in a GraphicsPath object. This will speed everything up to the second, theoretically speaking.

This method is called inline masking. If those of you have done low-level graphics and trying to accelerate graphics and transparency, this is how the old school does it.

If anyone has any suggestions whereby how to make it work another way, please post here.

Non-Rectangular Windows Forms

Yo, now a problem from me. I tried to search for it, without any success.

I'm trying to create a non-rectangular windows form. Currently it's quite easy if the person uses 24bit and below resolution, you just assign your background image and set your transparencykey. But who uses 24bit and below nowadays? We all use 32bit.

That article above explains to you how to get it done. The modification I made was to make it happen in OnPaintBackground event instead of OnPaint event, because if it was OnPaint event, the controls will flicker and you can see what's behind the form.

So now, the problem is, it still flickers and is very slow. To solve this flickering, you must implement double buffering. But when I set the styles to do double buffering, the transparency of the background is ignored.

Question. How can I achieve double buffering which the background transparency still intact?

Here's the code for reference

protected override void OnPaintBackground(PaintEventArgs e)

// First we create a graphics object using the PiantEventArgs e that will use the
// form
Graphics grfx = e.Graphics;
// Make Antialiasing which avoid stepped look for circular path and curves you
// may use the SmoothingMode.AntiAlias
grfx.SmoothingMode = SmoothingMode.None;
grfx.DrawImage(this.background, this.frmRectangle);


Setting the styles I'm sure you guys should know. How to I apply transparency over here?

Thursday, February 17, 2005

Thoughts on Integrating DNN 3.0 + CS 1.0

I've been playing around with both applications, and been thinking about how to merge these 2 wonderful applications together.

There are a few ways of doing it.

1. Rewriting the Membership/Role/etc providers and having both applications use the same providers. Then merging of the memberships would be needed, into 1 table. But I'm pondering how can it be done.

2. Writing a DNN module that interfaces with CS 1.0, stripping CS apart into different modules, i.e. Forums module, Blog module, Gallery module and so on. But CS dependencies on HttpContext is alot.

3. Stripping DNN apart and make it part of CS 1.0. I think that's the intention of CS, since I saw an empty web dll, which means the intention of having a Community Server - Web.

4. Quick hack. Sync between the databases and cookies. Which is what most people are doing now.

Personally, I think point 3 would be wonderful to try it out. What do you guys think? Which way is better?

Wednesday, February 16, 2005

DotNetNuke 3.0 & CS 1.0

I just realised something interesting. Both applications are sharing the same MachineValidationKeys. That means that they are preparing to be able to merge and interop with each other.

This is good news.

Friday, January 28, 2005

Practical Session : Visual Source Safe on SCCBridge

Yesterday we had a practical session yesterday trying to set up SCCBridge to access VSS. It actually was quite simple to set up actually.

Just a short description of SCCBridge. SCCBridge is a bridge between your VSS and supposedly your lan/internet. It uses WSE 2.0 and SOAP to achieve this. It's split into 2 parts. The server and the client. The server is a webservice that interfaces with your VSS. It's simple to set up. Just edit the web.config and change your VSS directory settings, and expose it to your IIS and the outside world.

The client is basically an SCC that installs into your Visual Studio. You'll need to install WSE 2.0 first. The functionalities are all the same.

Anyway, the problem we faced was quite simple. We had to set up the VSS directory permissions. Added the Network Service account and give it read/write/modify access.

Another problem we faced was when trying to access through the internet, as an external connection. I can't seem to log in. It might be something wrong with my connection I guess. I'm behind a router.

Anyway, here are the threads that discusses this.

Practical: Visual Source Safe over Internet
Access VSS via the Internet

Thursday, January 27, 2005

OS Development Resources

Here are some resources that's quite interesting.

The Common Man's Guide to Operating System Design
Writing a Kernel in C

Resources on data sheets and hardware specifications
Cottontail OS Development Library
OS Resources

Look out for more OS stuff in the later posts.

Niels' Blog

Niels' Blog

A blog on the BeOS USB Stack that's being worked on by Niel. Something I'd like to keep track on and help out.

Wednesday, January 26, 2005

Xtreme Programming and Open Source Software Development

Interesting article on how Open Source development can work with Xtreme programming.

Xtreme Programming and Open Source Software Development

Read it. Enjoy it.

MIME Media Types

For those who have a hard time finding what the MIME type is from application/* or whatever, here's the list.

IANA MIME Media Types

Enjoy. :)

Sunday, January 23, 2005

Problems installing VSTS 2005 Dec. 2004 CTP

Some of you guys might be having trouble installing VSTS aka Visual Studio Team Suite (which is the new name for Visual Studio 2005) and come across this problem as described here.

Problems installing VSTS 2005 Dec. 2004 Refresh

Well, the problem I had was a conflict with the .NET Framework 2.0, with SQL Server 2005 Dec 2005 CTP being installed first. And what is the solution for this?

Uninstall your .NET Framework 2.0, install the VSTS (which now installs), then repair SQL Server 2005. This is how you get it working.

I do not know if you'll have any problems install SQL Server 2005 after installing VSTS 2005. :) Anyone tried and have problems?

Saturday, January 22, 2005

Interesting Jokes

I got them from a newsgroup. Hope you enjoy.

Friday, January 21, 2005

My very own OS

This is official. I'll be working on my very own OS. I'm drawing up the plans with my friend soon enough. Anyone can suggest what they want in their OS? :)

Thursday, January 20, 2005

More CSS Resources

This is such a boring day for me, so I went around surfing for things. Some things I actually want to learn more about is CSS and how can I code the new ASP.NET 2.0 together with CSS. It's supposedly said that ASP.NET 2.0 generates XHTML conformant code, and I've yet to really find any flaws with it yet. I haven't tried parsing an ASP.NET 2.0 page through the XHTML validator. I'll try that out one day.

Well, here are the interesting resources.

How to hide CSS from buggy browsers
W3 CSS tips & tricks
WordPress CSS Tips and Tricks
CSS Shorthands
Scrollable area using CSS
Sitepoint "CSS Resources, Tutorials, Tips and Tricks" thread
CSS Vault - The Web's CSS Site
Top Style Lite - Great CSS/XHTML Editor

Well, that will keep be busy for a few more hours I think. Yawnz. I'm so bored. *rub eyes*

UML Books

Here are some UML Books I think are useful that I should get around reading one of these days.

Writing Effective Use Cases
by Alistair Cockburn

Patterns for Effective Use Cases
by Paul Bramble, Alistair Cockburn, Andy Pols, Steve Adolph

Use Case Driven Object Modeling with UML : A Practical Approach (Addison Wesley Object Technology Series)
by Doug Rosenberg, Kendall Scott

UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition
by Martin Fowler

Yeap. Lots of books to read.

Successful Product/Solution Analysis

Stupid blogger destroyed my writing on it. And I'm too lazy to write again. So I'm just going to sum everything up.

Analysing how a successful product/solution become successful is basically what I've been thinking about the last few days.

To have a successful product/solution, you'll need to have a solid Vision for it. Vision to bring the product/solution far and wide. That means you'll have to promote, advertise, and get people to listen to you.

Next. You need to have Passion to drive the product/solution. With passion, you can bring the product to higher reaches. With Passion, you can imagine the possibilities out there.

Next. Cooperation VS Competition. For me, I'd rather choose Cooperation. Cooperation yields almost the same result as Competition. You further your product/solution to become better, you strive to be better than your competitor. But Cooperation really brings about a whole new meaning to everything. Let me explain. Cooperating will give your users/clients a better and smoother ride along your product/solution.

Next. Don't think of possibilities. Try out unknown possibilities and see how it can start something new. What I mean is, instead of pondering how we can work together, why don't you think, we CAN work together, let's discuss further how we can work together even more. During this discussion or whatever, you'll start seeing MORE possibilities coming out than you thinking of it by yourself without the other party.

Next. Possibilities are the Key to Innovation. Don't turn away any idea or possibility that might come into your mind. Keep it. Archive it. Store it for later use. Don't let your mind be restricted by what you can do. Possibilities are limitless, it is you who set the limit.

Next. And I think it's the most important point. User Experience. It's really how your user/client enjoy using your product/solution and how easy it is to use it. Don't restraint yourself to within the box. Think and innovate outside, and new possibilities on new ways you can create your user experience. I'm not talking about fanciful graphics and such. I'm talking about a totally new concept that's natural, easy to pick up, and it's just simply fun to do.

That's about all I want to say. Summed up from my previous attempt to post. I'm going to copy this post just in case. I hope someone reads this and actually finds this useful.

Disclaimer. These are my own thoughts. And some discussion points I might like to bring up. I might be wrong.

Product Analysis

What makes a good product or solution? It's not your idea, it's your vision for the product or solution. Here's what I've been thinking lately.

There are alot of very wonderful and fantastic products, solutions, applications out there that alot of people do not know of. Why is that so? Because they lack the vision to promote, advertise and gain the public's interest. Vision is very important and you have to get that straight down way before you get anything done. What do I want this product or solution to achieve? How am I going to achieve it? Not only that, which I'm going to go on to my next point here.

The next question you should ask yourself. Who and How can I cooperate with other people, companies, organisations, government? This will expand your horizons and discover new ways to improve your product/solution, and to find new ways to collaborate with your partners.

Yet another question you must ask yourself, do you have the drive to carry this out? You must foremost have the passion and the belief to carry all these out. You also need to have to come up with more plans, more ideas constantly to improve your product/solution. You will also need to think outside your box. For example, how would a totally unrelated subject/thing can help with my product/solution, or how can my product/solution help it/them/her/his?

It's quite vague right now as it's an idea that's been swarming around my head. Because what I realise with Asians is that they are quite closed-minded, living in the box, and very competitive.

Another point I want to bring up also. Cooperation VS Competition. I see more sense in finding ways to cooperate than to compete. With cooperation, you co-exist and work together, helping each other in some ways or another, to improve each other's solution/product. One must start the initiative to give first, and the other must also have the initiative to return in favour. In this aspect, each can grow in its own ways. Why compete, when you can cooperate to make something even better together? Or make the customer's lives better by having our products/solution work together?

I'd like to bring up is to try out new ideas. Always try it. Don't be afraid to carry it out. Don't keep thinking of how you're going to do it. You'll have to solve it some day. JUST DO IT (NIKE Trademark).

Lastly, it's to engage in new possibilities even when THERE AREN'T ANY POSSIBILITIES YET. It's always good to sit down and discuss informally, and somewhere somehow something might come up, and we go back to the Cooperation point. Cooperate.

What I can say now is.

Possibilities are Limitless, It is Only YOU Setting The Limit.
Possibilities are the key to Innovation.
Always concentrate on the Solution, and not think about the problem.

Cheers. I hope to read this blog one day and realise what I think now is true and can apply everywhere.

Wednesday, January 19, 2005

HTTP and it's Messages

I was just helping a friend at SgDotNet to answer a question, and I found a few sites that are interesting in respect to HTTP and it's Messages and Message Headers.

Here's the thread I replied.

Further resources can be found here.
HTTP Made Really Easy

It's something that explains how the HTTP protocol actually works in examples.

Here is a resource for the RFC.
RFC 2616
Hypertext Transfer Protocol -- HTTP/1.1

Which is rather technical.

Well, I hope it helps out.