HTML & CSS
I won't consider HTML5 a viable markup language until
- it is an official recommendation and
- it is supported natively by all major browsers (to me, that means at least 95 percent of the browser market)
My guess is that this will happen between 2015 and 2020.
HTML5 isn't a finished recommendation yet, which means it doesn't exist. You can't write anything that is HTML5. You can write something that adheres to the current draft, which may be invalid a couple of hours from now.
For a more pragmatic reply: you can use some of the new element types that may become part of HTML5 eventually and that are currently implemented in some fashion in certain browsers. As long as you don't rely on those features, since far from every browser implements them.
Normal progressive enhancement in other words. With the added risk that your code may be non-compliant and stop working tomorrow or next year.
Tommy: that was basically the idea - using some elements of HTML5 that wouldn't "break" when rendered in current browsers (e.g. <nav>).
I suppose it really depends upon whether you intend on publishing it in the public domain or not. But like was said it is in a constant state of flux and non-normative and only has "patchy support" for specific parts. So I think the consensus is; it's basically not really ready or practical to use.
If you are writing experimental pages to "test" the proposals to see if they are appropriate for the standard then that should be safe enough since the pages will obviously be intended to be reworked at intervals as the proposal changes based on how it does/doesn't work out.
For mainstream web pages you should be using HTML 4 which is the current standard and will be for many years to come (although the vast majority of web pages are still in the process of slowly upgrading from HTML 3.2 and there will probably still be many pages using HTML 3.2 in 20 years time).
HTML5 is safe to use provided that you don't use any HTML5-only elements