Bitcoin Forum
December 12, 2024, 12:34:45 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 »
  Print  
Author Topic: [ANNOUNCE] New alternate cryptocurrency - Geist Geld  (Read 74208 times)
smoothie
Legendary
*
Offline Offline

Activity: 2492
Merit: 1491


LEALANA Bitcoin Grim Reaper


View Profile
September 09, 2011, 03:12:59 PM
 #61

Code:
        // Update nTime
        if ((pindexPrev->nHeight+2) % 16 == 0)
            pblock->nTime = max(pindexPrev->GetMedianTimePast()+1, GetAdjustedTime() + 1800);
        else if ((pindexPrev->nHeight+1) % 16 == 0)
            pblock->nTime = pindexPrev->GetMedianTimePast()+1;
        else
            pblock->nTime = max(pindexPrev->GetMedianTimePast()+1, GetAdjustedTime());
*walks away whistling*

LOL did you drop your 50GH on this?

███████████████████████████████████████

            ,╓p@@███████@╗╖,           
        ,p████████████████████N,       
      d█████████████████████████b     
    d██████████████████████████████æ   
  ,████²█████████████████████████████, 
 ,█████  ╙████████████████████╨  █████y
 ██████    `████████████████`    ██████
║██████       Ñ███████████`      ███████
███████         ╩██████Ñ         ███████
███████    ▐▄     ²██╩     a▌    ███████
╢██████    ▐▓█▄          ▄█▓▌    ███████
 ██████    ▐▓▓▓▓▌,     ▄█▓▓▓▌    ██████─
           ▐▓▓▓▓▓▓█,,▄▓▓▓▓▓▓▌          
           ▐▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▌          
    ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓─  
     ²▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓╩    
        ▀▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▀       
           ²▀▀▓▓▓▓▓▓▓▓▓▓▓▓▀▀`          
                   ²²²                 
███████████████████████████████████████

. ★☆ WWW.LEALANA.COM        My PGP fingerprint is A764D833.                  History of Monero development Visualization ★☆ .
LEALANA BITCOIN GRIM REAPER SILVER COINS.
 
server
Legendary
*
Offline Offline

Activity: 892
Merit: 1002


1 BTC =1 BTC


View Profile
September 09, 2011, 03:13:15 PM
 #62

Code:
        // Update nTime
        if ((pindexPrev->nHeight+2) % 16 == 0)
            pblock->nTime = max(pindexPrev->GetMedianTimePast()+1, GetAdjustedTime() + 1800);
        else if ((pindexPrev->nHeight+1) % 16 == 0)
            pblock->nTime = pindexPrev->GetMedianTimePast()+1;
        else
            pblock->nTime = max(pindexPrev->GetMedianTimePast()+1, GetAdjustedTime());
*walks away whistling*

You again... Angry

ArtForz
Sr. Member
****
Offline Offline

Activity: 406
Merit: 257


View Profile
September 09, 2011, 03:14:02 PM
 #63

3Gh, and I'm not orphaning other miners blocks on purpose.

bitcoin: 1Fb77Xq5ePFER8GtKRn2KDbDTVpJKfKmpz
i0coin: jNdvyvd6v6gV3kVJLD7HsB5ZwHyHwAkfdw
CosicMiner
Full Member
***
Offline Offline

Activity: 135
Merit: 100



View Profile
September 09, 2011, 03:14:54 PM
 #64

Code:
        // Update nTime
        if ((pindexPrev->nHeight+2) % 16 == 0)
            pblock->nTime = max(pindexPrev->GetMedianTimePast()+1, GetAdjustedTime() + 1800);
        else if ((pindexPrev->nHeight+1) % 16 == 0)
            pblock->nTime = pindexPrev->GetMedianTimePast()+1;
        else
            pblock->nTime = max(pindexPrev->GetMedianTimePast()+1, GetAdjustedTime());
*walks away whistling*

What does this mean?
smoothie
Legendary
*
Offline Offline

Activity: 2492
Merit: 1491


LEALANA Bitcoin Grim Reaper


View Profile
September 09, 2011, 03:15:09 PM
 #65

3Gh, and I'm not orphaning other miners blocks on purpose.

Did you alter the code or something?

███████████████████████████████████████

            ,╓p@@███████@╗╖,           
        ,p████████████████████N,       
      d█████████████████████████b     
    d██████████████████████████████æ   
  ,████²█████████████████████████████, 
 ,█████  ╙████████████████████╨  █████y
 ██████    `████████████████`    ██████
║██████       Ñ███████████`      ███████
███████         ╩██████Ñ         ███████
███████    ▐▄     ²██╩     a▌    ███████
╢██████    ▐▓█▄          ▄█▓▌    ███████
 ██████    ▐▓▓▓▓▌,     ▄█▓▓▓▌    ██████─
           ▐▓▓▓▓▓▓█,,▄▓▓▓▓▓▓▌          
           ▐▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▌          
    ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓─  
     ²▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓╩    
        ▀▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▀       
           ²▀▀▓▓▓▓▓▓▓▓▓▓▓▓▀▀`          
                   ²²²                 
███████████████████████████████████████

. ★☆ WWW.LEALANA.COM        My PGP fingerprint is A764D833.                  History of Monero development Visualization ★☆ .
LEALANA BITCOIN GRIM REAPER SILVER COINS.
 
ArtForz
Sr. Member
****
Offline Offline

Activity: 406
Merit: 257


View Profile
September 09, 2011, 03:16:11 PM
 #66

Yes, my miners are producing blocks with "creatively adjusted" timestamps.
Using the rules I posted.

bitcoin: 1Fb77Xq5ePFER8GtKRn2KDbDTVpJKfKmpz
i0coin: jNdvyvd6v6gV3kVJLD7HsB5ZwHyHwAkfdw
Lolcust (OP)
Member
**
Offline Offline

Activity: 112
Merit: 11

Hillariously voracious


View Profile
September 09, 2011, 03:17:35 PM
 #67

Um...  I'll see what I can do....

Geist Geld, the experimental cryptocurrency, is ready for yet another SolidCoin collapse Wink

Feed the Lolcust!
NMC: N6YQFkH9Gn9CTm4mpGwuLB5zLzqWTWFw67
BTC: 15F8xbgRBA1XZ4hmtdFDUasroa2A5rYg8M
GEG: gK5Lx6ypWgr69Gw9yGzE6dsA7kcuCRZRK
ArtForz
Sr. Member
****
Offline Offline

Activity: 406
Merit: 257


View Profile
September 09, 2011, 03:19:00 PM
 #68

Yes, it's supposed to.
But by adjusting the timstamp of the first and last block in each diff period you can make it retarget /4 *every single time* Wink

bitcoin: 1Fb77Xq5ePFER8GtKRn2KDbDTVpJKfKmpz
i0coin: jNdvyvd6v6gV3kVJLD7HsB5ZwHyHwAkfdw
smoothie
Legendary
*
Offline Offline

Activity: 2492
Merit: 1491


LEALANA Bitcoin Grim Reaper


View Profile
September 09, 2011, 03:21:22 PM
 #69

Yes, it's supposed to.
But by adjusting the timstamp of the first and last block in each diff period you can make it retarget /4 *every single time* Wink
Cheesy lol

███████████████████████████████████████

            ,╓p@@███████@╗╖,           
        ,p████████████████████N,       
      d█████████████████████████b     
    d██████████████████████████████æ   
  ,████²█████████████████████████████, 
 ,█████  ╙████████████████████╨  █████y
 ██████    `████████████████`    ██████
║██████       Ñ███████████`      ███████
███████         ╩██████Ñ         ███████
███████    ▐▄     ²██╩     a▌    ███████
╢██████    ▐▓█▄          ▄█▓▌    ███████
 ██████    ▐▓▓▓▓▌,     ▄█▓▓▓▌    ██████─
           ▐▓▓▓▓▓▓█,,▄▓▓▓▓▓▓▌          
           ▐▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▌          
    ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓─  
     ²▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓╩    
        ▀▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▀       
           ²▀▀▓▓▓▓▓▓▓▓▓▓▓▓▀▀`          
                   ²²²                 
███████████████████████████████████████

. ★☆ WWW.LEALANA.COM        My PGP fingerprint is A764D833.                  History of Monero development Visualization ★☆ .
LEALANA BITCOIN GRIM REAPER SILVER COINS.
 
CosicMiner
Full Member
***
Offline Offline

Activity: 135
Merit: 100



View Profile
September 09, 2011, 03:30:15 PM
 #70

ddoscoin
smoothie
Legendary
*
Offline Offline

Activity: 2492
Merit: 1491


LEALANA Bitcoin Grim Reaper


View Profile
September 09, 2011, 03:30:39 PM
 #71

ddoscoin

+1 haha

███████████████████████████████████████

            ,╓p@@███████@╗╖,           
        ,p████████████████████N,       
      d█████████████████████████b     
    d██████████████████████████████æ   
  ,████²█████████████████████████████, 
 ,█████  ╙████████████████████╨  █████y
 ██████    `████████████████`    ██████
║██████       Ñ███████████`      ███████
███████         ╩██████Ñ         ███████
███████    ▐▄     ²██╩     a▌    ███████
╢██████    ▐▓█▄          ▄█▓▌    ███████
 ██████    ▐▓▓▓▓▌,     ▄█▓▓▓▌    ██████─
           ▐▓▓▓▓▓▓█,,▄▓▓▓▓▓▓▌          
           ▐▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▌          
    ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓─  
     ²▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓╩    
        ▀▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▀       
           ²▀▀▓▓▓▓▓▓▓▓▓▓▓▓▀▀`          
                   ²²²                 
███████████████████████████████████████

. ★☆ WWW.LEALANA.COM        My PGP fingerprint is A764D833.                  History of Monero development Visualization ★☆ .
LEALANA BITCOIN GRIM REAPER SILVER COINS.
 
ArtForz
Sr. Member
****
Offline Offline

Activity: 406
Merit: 257


View Profile
September 09, 2011, 03:37:00 PM
 #72

Wow, I stop it for a bit and diff shoots back up to > 120 like instantly...

bitcoin: 1Fb77Xq5ePFER8GtKRn2KDbDTVpJKfKmpz
i0coin: jNdvyvd6v6gV3kVJLD7HsB5ZwHyHwAkfdw
smoothie
Legendary
*
Offline Offline

Activity: 2492
Merit: 1491


LEALANA Bitcoin Grim Reaper


View Profile
September 09, 2011, 03:49:23 PM
 #73

Wow, I stop it for a bit and diff shoots back up to > 120 like instantly...

Probably the stupidest diff alg ever. The longer you don't generate a block the harder it gets?lol

EDIT: No offense to the OP.

███████████████████████████████████████

            ,╓p@@███████@╗╖,           
        ,p████████████████████N,       
      d█████████████████████████b     
    d██████████████████████████████æ   
  ,████²█████████████████████████████, 
 ,█████  ╙████████████████████╨  █████y
 ██████    `████████████████`    ██████
║██████       Ñ███████████`      ███████
███████         ╩██████Ñ         ███████
███████    ▐▄     ²██╩     a▌    ███████
╢██████    ▐▓█▄          ▄█▓▌    ███████
 ██████    ▐▓▓▓▓▌,     ▄█▓▓▓▌    ██████─
           ▐▓▓▓▓▓▓█,,▄▓▓▓▓▓▓▌          
           ▐▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▌          
    ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓─  
     ²▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓╩    
        ▀▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▀       
           ²▀▀▓▓▓▓▓▓▓▓▓▓▓▓▀▀`          
                   ²²²                 
███████████████████████████████████████

. ★☆ WWW.LEALANA.COM        My PGP fingerprint is A764D833.                  History of Monero development Visualization ★☆ .
LEALANA BITCOIN GRIM REAPER SILVER COINS.
 
Lolcust (OP)
Member
**
Offline Offline

Activity: 112
Merit: 11

Hillariously voracious


View Profile
September 09, 2011, 03:49:46 PM
 #74

Yes, it's supposed to.
But by adjusting the timstamp of the first and last block in each diff period you can make it retarget /4 *every single time* Wink

Ah, now I understand, thank you.

Verily illustrative and creative, as usual.

ArtForz, first and foremost, I would like to officially invite you to offer your guidance and advice - I am merely a curious n00b, sacarlson is pretty busy, and this experiment could use input from someone like you (other input than cleverly crafted blocks, that is Smiley )

Now, as for this particular case, would you kindly answer the following questions:

1) Does this method affect only forks with time-based diff ?

2) Could you please suggest any fixes other than abandoning time-based diff retarget?

3) Would abandoning time-based retarget "fix" it ?

Wow, I stop it for a bit and diff shoots back up to > 120 like instantly...

Probably the stupidest diff alg ever. The longer you don't generate a block the harder it gets?lol

EDIT: No offense to the OP.

Actually, the opposite should be true, LOL Smiley


Geist Geld, the experimental cryptocurrency, is ready for yet another SolidCoin collapse Wink

Feed the Lolcust!
NMC: N6YQFkH9Gn9CTm4mpGwuLB5zLzqWTWFw67
BTC: 15F8xbgRBA1XZ4hmtdFDUasroa2A5rYg8M
GEG: gK5Lx6ypWgr69Gw9yGzE6dsA7kcuCRZRK
smoothie
Legendary
*
Offline Offline

Activity: 2492
Merit: 1491


LEALANA Bitcoin Grim Reaper


View Profile
September 09, 2011, 03:50:30 PM
 #75

Yes, it's supposed to.
But by adjusting the timstamp of the first and last block in each diff period you can make it retarget /4 *every single time* Wink

Ah, now I understand, thank you.

Verily illustrative and creative, as usual.

ArtForz, first and foremost, I would like to officially invite you to offer your guidance and advice - I am merely a curious n00b, sacarlson is pretty busy, and this experiment could use input from someone like you (other input than cleverly crafted blocks, that is Smiley )

Now, as for this particular case, would you kindly answer the following questions:

1) Does this method affect only forks with time-based diff ?

2) Could you please suggest any fixes other than abandoning time-based diff retarget?

3) Would abandoning time-based retarget "fix" it ?

+1000 Good attitude!

███████████████████████████████████████

            ,╓p@@███████@╗╖,           
        ,p████████████████████N,       
      d█████████████████████████b     
    d██████████████████████████████æ   
  ,████²█████████████████████████████, 
 ,█████  ╙████████████████████╨  █████y
 ██████    `████████████████`    ██████
║██████       Ñ███████████`      ███████
███████         ╩██████Ñ         ███████
███████    ▐▄     ²██╩     a▌    ███████
╢██████    ▐▓█▄          ▄█▓▌    ███████
 ██████    ▐▓▓▓▓▌,     ▄█▓▓▓▌    ██████─
           ▐▓▓▓▓▓▓█,,▄▓▓▓▓▓▓▌          
           ▐▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▌          
    ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓─  
     ²▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓╩    
        ▀▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▀       
           ²▀▀▓▓▓▓▓▓▓▓▓▓▓▓▀▀`          
                   ²²²                 
███████████████████████████████████████

. ★☆ WWW.LEALANA.COM        My PGP fingerprint is A764D833.                  History of Monero development Visualization ★☆ .
LEALANA BITCOIN GRIM REAPER SILVER COINS.
 
smoothie
Legendary
*
Offline Offline

Activity: 2492
Merit: 1491


LEALANA Bitcoin Grim Reaper


View Profile
September 09, 2011, 03:52:56 PM
 #76

Yes, it's supposed to.
But by adjusting the timstamp of the first and last block in each diff period you can make it retarget /4 *every single time* Wink

Ah, now I understand, thank you.

Verily illustrative and creative, as usual.

ArtForz, first and foremost, I would like to officially invite you to offer your guidance and advice - I am merely a curious n00b, sacarlson is pretty busy, and this experiment could use input from someone like you (other input than cleverly crafted blocks, that is Smiley )

Now, as for this particular case, would you kindly answer the following questions:

1) Does this method affect only forks with time-based diff ?

2) Could you please suggest any fixes other than abandoning time-based diff retarget?

3) Would abandoning time-based retarget "fix" it ?

Wow, I stop it for a bit and diff shoots back up to > 120 like instantly...

Probably the stupidest diff alg ever. The longer you don't generate a block the harder it gets?lol

EDIT: No offense to the OP.

Actually, the opposite should be true, LOL Smiley



LOL sure seems that way though. I commend you on your good attitude despite the oversight and artforz exploiting it.

Good learning experience I'd say for all.

███████████████████████████████████████

            ,╓p@@███████@╗╖,           
        ,p████████████████████N,       
      d█████████████████████████b     
    d██████████████████████████████æ   
  ,████²█████████████████████████████, 
 ,█████  ╙████████████████████╨  █████y
 ██████    `████████████████`    ██████
║██████       Ñ███████████`      ███████
███████         ╩██████Ñ         ███████
███████    ▐▄     ²██╩     a▌    ███████
╢██████    ▐▓█▄          ▄█▓▌    ███████
 ██████    ▐▓▓▓▓▌,     ▄█▓▓▓▌    ██████─
           ▐▓▓▓▓▓▓█,,▄▓▓▓▓▓▓▌          
           ▐▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▌          
    ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓─  
     ²▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓╩    
        ▀▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▀       
           ²▀▀▓▓▓▓▓▓▓▓▓▓▓▓▀▀`          
                   ²²²                 
███████████████████████████████████████

. ★☆ WWW.LEALANA.COM        My PGP fingerprint is A764D833.                  History of Monero development Visualization ★☆ .
LEALANA BITCOIN GRIM REAPER SILVER COINS.
 
Lolcust (OP)
Member
**
Offline Offline

Activity: 112
Merit: 11

Hillariously voracious


View Profile
September 09, 2011, 04:02:15 PM
 #77

Well, I am currently discussing best way to go about it with sacarlson, and hope ArtForz will suggest something as well.

Geist Geld, the experimental cryptocurrency, is ready for yet another SolidCoin collapse Wink

Feed the Lolcust!
NMC: N6YQFkH9Gn9CTm4mpGwuLB5zLzqWTWFw67
BTC: 15F8xbgRBA1XZ4hmtdFDUasroa2A5rYg8M
GEG: gK5Lx6ypWgr69Gw9yGzE6dsA7kcuCRZRK
ArtForz
Sr. Member
****
Offline Offline

Activity: 406
Merit: 257


View Profile
September 09, 2011, 04:04:20 PM
 #78

should be possible to make bitcoins algo work for such short intervals.
Main thing, don't accept blocks that far into the future, current clients are accepting blocks up to 2h in the future. *bad* idea if your retarget interval is 4 minutes.

bitcoin: 1Fb77Xq5ePFER8GtKRn2KDbDTVpJKfKmpz
i0coin: jNdvyvd6v6gV3kVJLD7HsB5ZwHyHwAkfdw
Lolcust (OP)
Member
**
Offline Offline

Activity: 112
Merit: 11

Hillariously voracious


View Profile
September 09, 2011, 04:11:01 PM
 #79

should be possible to make bitcoins algo work for such short intervals.
Main thing, don't accept blocks that far into the future, current clients are accepting blocks up to 2h in the future. *bad* idea if your retarget interval is 4 minutes.

Indeed. Thanks for input.

P.S.:
Sweet mighty Cthulhu, I need to get a   programmer to look after GeistGeld...

Any takers ? Pretty please Smiley

Geist Geld, the experimental cryptocurrency, is ready for yet another SolidCoin collapse Wink

Feed the Lolcust!
NMC: N6YQFkH9Gn9CTm4mpGwuLB5zLzqWTWFw67
BTC: 15F8xbgRBA1XZ4hmtdFDUasroa2A5rYg8M
GEG: gK5Lx6ypWgr69Gw9yGzE6dsA7kcuCRZRK
JohnDoe
Sr. Member
****
Offline Offline

Activity: 392
Merit: 251



View Profile
September 09, 2011, 04:17:00 PM
 #80

Could you explain to us non-programmers what this is supposed to be doing?

Code:
int64 nSubsidy = (GetArgIntxx(50,"-Subsidy") * COIN);
    nSubsidy = nSubsidy + (GetArgIntxx(0,"-Subsidy_small"));
    if (mapArgs.count("-custom_inflation"))
    {
        printf("custom_inflation is set \n");
        if (nHeight > GetArgIntxx(INT_MAX,"-inflation_triger"))
        {
            printf("nHeight > inflation_triger detected \n");
            nSubsidy = GetArgIntxx(0,"-post_Subsidy") * COIN;
            nSubsidy = nSubsidy + (GetArgIntxx(0,"-post_Subsidy_small"));
            if (nHeight > GetArgIntxx(INT_MAX,"-inflation_trigerB"))
            {
                printf("nHeight > inflation_trigerB detected \n");
                nSubsidy = GetArgIntxx(0,"-post_SubsidyB") * COIN;
                nSubsidy = nSubsidy + (GetArgIntxx(0,"-post_SubsidyB_small"));
                if (nHeight > GetArgIntxx(INT_MAX,"-inflation_trigerC"))
                {
                    nSubsidy = (GetArgIntxx(0,"-post_SubsidyC") * COIN) + GetArgIntxx(0,"-post_SubsidyC_small");
                }
            }
        }
        printf("nSubsidy after custom = %lu \n",nSubsidy);
    }
Pages: « 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!