Just want to get a name and make it resolve to something? Here's how.
First, download ensutils-testnet.js to your local machine, and import it into an Ethereum console on a node synced to ropsten or rinkeby:
loadScript('/path/to/ensutils-testnet.js');
Before registering, check that nobody owns the name you want to register:
new Date(testRegistrar.expiryTimes(web3.sha3('myname')).toNumber() * 1000)
If this line returns a date earlier than the current date, the name is available and you're good to go. You can register the domain for yourself by running:
testRegistrar.register(web3.sha3('myname'), eth.accounts[0], {from: eth.accounts[0]})
Next, tell the ENS registry to use the public resolver for your name:
ens.setResolver(namehash('myname.test'), publicResolver.address, {from: eth.accounts[0]});
Once that transaction is mined, tell the resolver to resolve that name to your account:
publicResolver.setAddr(namehash('myname.test'), eth.accounts[0], {from: eth.accounts[0]});
...or any other address:
publicResolver.setAddr(namehash('myname.test'), '0x1234...', {from: eth.accounts[0]});
If you want, create a subdomain and do the whole thing all over again:
ens.setSubnodeOwner(namehash('myname.test'), web3.sha3('foo'), eth.accounts[1], {from: eth.accounts[0]});
ens.setResolver(namehash('foo.myname.test'), publicResolver.address, {from: eth.accounts[1]});
...
Finally, you can resolve your newly created name:
getAddr('myname.test')
which is shorthand for:
resolverContract.at(ens.resolver(namehash('myname.test'))).addr(namehash('myname.test'))