Bitcoin Forum
April 25, 2024, 04:15:31 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2]  All
  Print  
Author Topic: #bitcoin-otc ¿algún tutorial bueno en español?  (Read 10689 times)
majamalu
Legendary
*
Offline Offline

Activity: 1652
Merit: 1000



View Profile WWW
June 06, 2012, 02:25:55 AM
 #21

La traducción esta finalizada. Gracias a los que han ayudado con la tarea.

Muy buen trabajo, y muy necesario.

http://elbitcoin.org - Bitcoin en español
http://mercadobitcoin.com - MercadoBitcoin
1714061731
Hero Member
*
Offline Offline

Posts: 1714061731

View Profile Personal Message (Offline)

Ignore
1714061731
Reply with quote  #2

1714061731
Report to moderator
1714061731
Hero Member
*
Offline Offline

Posts: 1714061731

View Profile Personal Message (Offline)

Ignore
1714061731
Reply with quote  #2

1714061731
Report to moderator
1714061731
Hero Member
*
Offline Offline

Posts: 1714061731

View Profile Personal Message (Offline)

Ignore
1714061731
Reply with quote  #2

1714061731
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714061731
Hero Member
*
Offline Offline

Posts: 1714061731

View Profile Personal Message (Offline)

Ignore
1714061731
Reply with quote  #2

1714061731
Report to moderator
1714061731
Hero Member
*
Offline Offline

Posts: 1714061731

View Profile Personal Message (Offline)

Ignore
1714061731
Reply with quote  #2

1714061731
Report to moderator
paraipan
In memoriam
Legendary
*
Offline Offline

Activity: 924
Merit: 1004


Firstbits: 1pirata


View Profile WWW
July 06, 2012, 06:32:52 PM
 #22

Posteo aqui tambien el contenido...

https://es.bitcoin.it/wiki/Autenticacion_GPG

Code:
Puedes, y debes crear una identidad GPG-basado-en-clave con el bot IRC (gribble). Eso te concede una identidad comprobable y que se pueda exportar en la [http://bitcoin-otc.com/vieworderbook.php lista de ordenes] y el [http://www.bitcoin-otc.com/viewratings.php sistema de rating] del [http://bitcoin-otc.com/ mercado OTC].


=Guías de terceros=

La guía de esta pagina es la de referencia, pero algunas personas han hecho otras mas atractivas visualmente, con fotos y todo En el futuro, esperemos tener algunos vídeos también. Esta sección tiene una lista de las mencionadas guías.
* [http://dylblog.com/2011/06/05/how-to-join-in-with-bitcoin-otc-the-easy-way-osx/ Guía Mac OS X con fotos] por Drcross.
* [http://www.youtube.com/watch?v=hYJ-GdErX1c Vídeo-guía para Windows] Usando el [http://gpg4win.org/ gpg4win GUI] en lugar del cliente CLI, si prefieres evitar usar una consola. Hecho por lulzplzkthx y patrocinado por kgo.


=Prólogo IRC / GPG=

IRC es un protocolo para el chateo por internet en tiempo real. Lleva desde los 80 y todavía hoy es una elección de protocolo de chateo popular. #Bitcoin-OTC es un "canal" de IRC o "sala de chat". En IRC hay bots (robots), o programas automáticos que realizan funciones específicas. "Gribble" es un bot en #bitcoin-otc que controla el sistema de valoraciones/confianza y otras útiles funciones de Bitcoin relacionadas.

GPG es un programa de encriptado y desencriptado que provee privacidad y autentificación criptográfica para la comunicación de datos. En el caso de Bitcoin-OTC lo usamos para la autentificación en el canal a través de "gribble", nuestro robot de valoración/confianza.


=Creando una clave GPG=

Si no tienes GPG en tu ordenador, puedes descargar el código fuente o los binarios para muchos sistemas operativos [http://www.gnupg.org/download/ aqui]. (Para windows, yo recomiendo [ftp://ftp.gnupg.org/gcrypt/binary/gnupg-w32cli-1.4.11.exe la version de consola ] así podrás seguir con los titulares que existen a continuación.)

Si eres nuevo con GPG, necesitarás crear una clave y después subirla a un servidor de claves para poder identificarte con el bot. Primero genera una clave ejecutando en el terminal (o linea de comandos):
 gpg --gen-key
Recomiendo elegir la clave tipo "RSA and RSA" de 4096 bits. Es normalmente la primera opción de la lista. En versiones de gpg 1.4.9 y anteriores, la primera opción es "DSA and Elgamal" - así que elige esta si estás usando una versión más antigua.
También recomiendo no seleccionar una fecha de expiración. (Si seleccionas fecha de expiración, recuerda [http://www.g-loaded.eu/2010/11/01/change-expiration-date-gpg-key/ extenderla periódicamente].

Anota la id de la clave pública generada. Necesitarás la id de la clave pública para registrarte con el bot. Puedes obtenerla ejecutando el siguiente código en el terminal:
 gpg --list-keys --keyid-format long
Entre las líneas de salida encontrarás una como esta:
 pub   4096R/46ED38A2A668A578 2011-02-18
La id de la clave son los 16 dígitos que siguen a la barra

Ahora sube la clave pública a algunos servidores de claves:
 gpg --send-keys --keyserver pgp.mit.edu YOURKEYID
 gpg --send-keys --keyserver subset.pool.sks-keyservers.net YOURKEYID

Nota: cualquier servidor de claves servirá, pero estos son empleados por gribble para buscar claves, así que usándolos reducirás el tiempo empleado por gribble en encontrar tu clave.

subset.pool.sks-keyservers.net te devuelve automáticamente un servidor de claves adecuado. [http://sks-keyservers.net/overview-of-pools.php Sobre listados de keyservers]

Y eso es todo lo que necesitas!

Para una más detallada introducción a gpg, explora este [http://forum.codecall.net/linux-tutorials-guides-tips/17680-gpg-gnupg-encyrption-tutorial.html tutorial].


==Salvaguardando tu clave==

Tu clave GPG es tu identidad en el mundo on-line. Mantén a salvo tu clave privada de su destrucción o filtrado a terceras personas. Utiliza una contraseña segura en tu clave y haz una copia de seguridad off-line y/o en otro soporte. El archivo que contiene tus claves privadas es "secring.gpg", y el archivo que contiene tus claves públicas es "pubring.gpg". Consérvalos de forma similar a como conservas tu cartera bitcoin. E igual de importante - <em><font style="color:red;">no olvides tu contraseña</font></em>, pues perderás el acceso a tu clave [para siempre]. Puedes escribirla en un lugar seguro, como en una hoja dentro de tu caja fuerte, o en alguna unidad de almacenamiento encriptada.

=Autentificación vía encriptación GPG con el bot=

Si todavía no has registrado tu clave con el bot, sigue el procedimiento de registro a continuación. Para todo lo demás salta hasta la siguiente sección.


==Registro con GPG==

Para registrar la clave, créate una cuenta en el bot con el comando '''gpg eregister'''. El comando tiene los siguientes parámetros:

* nick: tu nombre de usuario en la base de datos GPG del bot. No tiene por qué ser la misma que tu nick en el IRC, ni tampoco tiene que tener relación con tu nombre en tu clave GPG. Por comodidad, mucha gente elige su nick de IRC aquí.
* keyid: la id de 16 dígitos de tu clave pública GPG (los últimos 16 dígitos de la huella dactilar-figerprint de tu clave).
* keyserver: opcional, especifica un servidor de claves de donde el bot puede obtener tu clave pública. Si no pones nada aquí el bot probará por defecto a obtenerla de subset.pool.sks-keyservers.net y pgp.mit.edu.


Por defecto, gpg --list-keys devuelve IDs de 8 dígitos. Puedes encontrar la id de 16 dígitos de tu clave gpg ejecutando:
 gpg --list-keys --keyid-format long
Deberías ver algo similar a
 pub   2048R/81898844A1BF37D6 2011-03-06
donde 81898844A1BF37D6 es la ID de la clave que el bot necesita.


Así que deberás ejecutar lo siguiente, en IRC, para registrarte con el bot:
 ;;gpg eregister BobJones 81898844A1BF37D6

Ahora completa tu registro [[#Contrase.C3.B1a_de_un_solo_uso_.28OTP.29|decriptando la contraseña de un solo uso]].

==Autentificación GPG==

Si ya te has registrado (ver la sección de arriba) no necesitas hacerlo otra vez. En lugar de eso símplemente usa el comando "gpg eauth" y aporta tu nombre de usuario registrado como único argumento. Por ejemplo:
 ;;gpg eauth BobJones

Ahora completa tu autentificación [[#Contrase.C3.B1a_de_un_solo_uso_.28OTP.29|decriptando la contraseña de un solo uso]].

==Contraseña de un solo uso (OTP)==

El bot responderá a tu solicitud de registro/autentificación dirigiéndote a una URL con un documento encriptado que contiene tu contraseña de un solo uso (OTP).
 <gribble> Request successful for user <tu nombre>. Get your encrypted OTP from http://bitcoin-otc.com/otps/665FC11DD53E9583  
Tu tarea ahora es desencriptar el mensaje. Visita el link, copia el mensaje encriptado (el contenido completo de la página -puedes usar los comandos "Control-A" para seleccionar todo, y después "Control-C", pera copiar), después ejecuta el comando "gpg --decrypt" (si, tendrás que presionar intro para ejecutar el comando, después de pegar el mensaje encriptado) y pegar el mensaje encriptado. Si gpg te solicita tu passphrasse, escríbela y presiona intro.

En este punto, si estás con Linux, presiona "Control-D" para terminar de introducir comandos. Con windows presiona "intro", "Control-Z", "Intro" para terminar con la introducción de comandos. GPG te devolverá la OTC desencriptada. Se parecerá a algo como esto:
 freenode:#bitcoin-otc:6132ffd1c3c4468e40303d844f3e30661bc34617054f7cc5e3fa03c8b41c376e
Ahora aporta al bot la OTC a través del comando '''gpg everify'''. Ejemplo:
 ;;gpg everify freenode:#bitcoin-otc:6132ffd1c3c4468e40303d844f3e30661bc34617054f7cc5e3fa03c8b41c376
una vez tu OTP es verificada permanecerás autentificado hasta que te vayas del IRC, o dejes el canal #bitcoin-otc, o si el robot se desconecta del IRC. Si quieres manualmente desautentificarte, usa el comando '''gpg unauth'''.

== Sesión de muestra==

La sesiones de muestra a continuación de van ayudar comprender de como funciona todo esto.

===Registro===
Esta sesión es para el registro de Alice.

<pre>
<alice> ;;gpg eregister alice 665FC11DD53E9583
<gribble> Request successful for user alice. Get your encrypted OTP from http://bitcoin-otc.com/otps/665FC11DD53E9583
</pre>
Ahora, Alice visita el enlace, copia el mensaje encriptado, luego ejecuta el comando "gpg --decrypt" en una consola (si, hay que presionar "Intro" para ejecutarlo, antes de pegar el texto anterior) y pega el mensaje encriptado. Después introduce su contraseña si es necesario.

Llegado a este punto, si Alice usa Linux, debería presionar Control-D para finalizar la introducción de datos. Si usa Windows, presiona "Intro", Control-Z, "Intro" para finalizar.  
Gpg estaría sacando la clave OTP (clave de un solo uso) desencriptada para que ella la pueda utilizar. Se parecería a esto:
 freenode:#bitcoin-otc:6132ffd1c3c4468e40303d844f3e30661bc34617054f7cc5e3fa03c8b41c376e

En un sistema que tenga wget (mac, linux), Alice podría ahorrarse molestias innecesarias solo por ejecutar el siguiente comando para extraer de forma automática el enlace y pasarlo al programa gpg:
 wget -O - http://bitcoin-otc.com/otps/665FC11DD53E9583 | gpg --decrypt

Ahora Alice utiliza su OTP para finalizar la verificación:
<pre>
<alice> ;;gpg everify freenode:#bitcoin-otc:6132ffd1c3c4468e40303d844f3e30661bc34617054f7cc5e3fa03c8b41c376e
<gribble> Registration successful. You are now authenticated for user 'alice' with key 665FC11DD53E9583
</pre>

===Autentificación===

Si Alice ya esta registrada, y esta volviendo a conectarse de nuevo, puede empezar mandando el siguente comando al bot de OTC:
 ;;gpg eauth alice
Y a continuación siguiendo los mismos pasos que los de la sección de arriba.

=="Scripts" de ayuda==

Haciendo un "script" (pequeño programa automatizado) es mas facil ya que tu enlace OTP no cambia nunca - parecido a este "bitcoin-otc.com/otps/EL-ID-DE-TU-CLAVE".


===Consola===

====Linux====

Si tienes xclip, solo ejecuta lo que viene a continuación:
 wget -q -O - http://bitcoin-otc.com/otps/YOURKEYID | gpg -q --output - --decrypt | xclip -i
Introduce tu contraseña si es necesario, y la clave OTP estará en tu porta-papeles, lista para pegar.

Si no tienes, ejecuta lo siguiente:
 wget -q -O - http://bitcoin-otc.com/otps/YOURKEYID | gpg -q --output - --decrypt
a continuación copia la clave OTP del terminal.

====Mac====

Ejecuta lo siguiente:
 curl http://bitcoin-otc.com/otps/YOURKEYID | gpg -d | pbcopy
Introduce tu contraseña si es necesario, y la clave OTP estará en tu porta-papeles, lista para pegar.

====Powershell de Windows====

* Si usas Windows XP, baja e instala el [http://www.microsoft.com/downloads/es-es/details.aspx?FamilyID=30125a46-b97c-4704-aa10-605e809d5933 Paquete de instalación localizado para Windows PowerShell]
* Tambien bajate [http://huddledmasses.org/wget-2-for-powershell/ wget para powershell]
* Permite a la consola ejecutar scripts ([http://technet.microsoft.com/en-us/library/ee176949.aspx como])
* Ejecuta lo siguiente o guárdalo en un archivo .bat y ejecútalo:
 <pre>powershell .\wget.ps1 "http://bitcoin-otc.com/otps/YOURKEYID" -Passthru | gpg -q --output - --decrypt | clip</pre>
Introduce tu contraseña si es necesario, y la clave OTP estará en tu porta-papeles, lista para pegar.

====Lotes Windows (Batch)====

* Instala [http://gnuwin32.sourceforge.net/packages/wget.htm El binario GNU Wget]
* Ejecuta lo siguiente o guárdalo en un archivo .bat y ejecútalo:
<pre>wget -q -O - http://bitcoin-otc.com/otps/YOURKEYID | gpg -q --output - --decrypt</pre>
A continuación copia la OTP del terminal.

(podría necesitarse que especifique la vía de acceso entera para wget y los binario gpg, si no están en tus rutas por defecto del sistema.)

===Plugins clientes IRC===

* [https://github.com/conceited/linkinus2-bitcoin-otc-gpg-auth-plugin Plugin para el cliente IRC linkinus2]. (Nota: actualmente tiene problemas cuando tu clave gpg esta protegida por contraseña)
* [https://github.com/nanotube/supybot-bitcoin-marketmonitor/tree/master/GPG/helperscripts El plugin de cliente Colloquy] (bitcoin-otc-gpg-eauth-colloquy.applescript) (Nota: actualmente tiene problemas cuando tu clave gpg esta protegida por contraseña)
* [https://github.com/nanotube/supybot-bitcoin-marketmonitor/tree/master/GPG/helperscripts Plugin del cliente Xchat]
* [https://github.com/nanotube/supybot-bitcoin-marketmonitor/tree/master/GPG/helperscripts Plugin del cliente MIRC]
<br />
<br />

(Seguimos trabajando para traducir la pagina wiki original http://es.wikipedia.org/wiki/Autenticacion_GPG, si te animas tu tambien puedes [{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAME}}|action=edit}} ayudar con la tarea].)


https://es.bitcoin.it/wiki/Autenticacion_con_direcciones_bitcoin

Code:
Puedes crear una cuenta e identificarte en el [http://bitcoin-otc.com/ mercado OTC] solo empleando el cliente [http://bitcoin.org/ bitcoin] estandard que todos conocemos. Brevemente, lo único que tienes que hacer es firmar una contraseña de un solo uso con una dirección bitcoin que tu elijas, y despues enviar el mensaje firmado al bot (gribble) para su comprobación. La siguiente guía contiene todos los pasos con mas detalle.
<br />

=El bot IRC=

El bot IRC del canal #bitcoin-otc se llama gribble. Para enviarle comandos al bot en el mismo canal pon el prefijo ";;" a cada uno. Por ej., para preguntar por el precio del bitcoin puedes enviar el comando en el canal asi
 ;;ticker

También puedes hablar con el bot en privado para evitar sobrecargar el canal, tambien es el metodo recomendado para autentificarse o registrarse. Para empezar una sesión privada con el bot teclea en tu cliente IRC
 /query gribble

Cuando estas en privado no es necesario que pongas el prefijo anterior, ";;".
<br />

=Configuración inicial=

El primer paso es bajarse e instalar el cliente bitcoin. Puedes hacer esto en http://bitcoin.org. Probablemente la mayoria de vosotros ya tenéis el cliente funcionando en vuestros ordenadores.

Una vez hecho esto es recomendable crear una dirección bitcoin nueva que utilizareis para la autenticación en el mercado OTC. En la pestaña "Recibe monedas", pincha en "Nueva dirección" para crearla, después pon en la etiqueta algo que te ayudara reconocerla fácilmente (por ej., "mercado otc").

Llegado a este punto, si todavía no tienes varias copias de seguridad seguras y dispersadas, en varios puntos de la ciudad, de tu cartera deberías hacerlas.
<br />

=Registro=

Para registrarte, elige un apodo (mejor utilizar el mismo que para chatear en IRC, pero no es obligatorio), y despues envia el siguiente comando al bot gribble:
 btcregister tu-apodo 1tudirecciónbitcoin

Ahora continua a la seccion [[#Desafío-y-respuesta|Desafío-y-respuesta]].
<br />

=Autenticación=

Una vez registrado (mira la sección de arriba), para autentificarse en el futuro usa el comando 'btcauth' como el ejemplo:
 btcauth tu-apodo

Ahora continua a la seccion [[#Desafío-y-respuesta|Desafío-y-respuesta]].
<br />

=Desafío-y-respuesta=

El bot responderá al registro y autenticación con una frase de un solo uso, que tendrás que firmar con tu dirección bitcoin, y se parecerá algo a esto:
 freenode:#bitcoin-otc:2b5195d2442c3fc302a0b2f3c7b856cd04ecc0835d0e306827b94e9c

En la pestaña 'Recibe monedas' del cliente bitcoin, selecciona la dirección con la que vas a firmar y pincha "Firmar mensaje"  ("Sign message" a la fecha de hoy, esta sin traducir). Copia y pega la frase única que te ha proporcionado el bot gribble anteriormente, pincha "Sign message", copia el mensaje firmado pinchando "Copiar al portapapeles" y después envíalo al bot con el comando "btcverify" como en el ejemplo:
 btcverify linea-de-texto-aleatoria-que-en-realidad-es-la-firma-de-tu-mensaje=

Si todo va bien, tendrías que recibir un mensaje de confirmación y ya estarías listo para usar el mercado!
<br />

=Sesion de muestra=
<br />

==Registro==

<pre>
<nanotube> btcregister nanotube 1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
<gribble> Request successful for user nanotube, hostmask nanotube!~nanotube@unaffiliated/nanotube. Your challenge string is:
          freenode:#bitcoin-otc:40fb92dc28721a074e36377cb3a5b689ce025231b946c1ca77fdfd03
<nanotube> btcverify HNFBzYSycKq55rUVXor1Wfs1GCuO94I4aWJKwvgVsqawK4wOfJ+Bs2Zvm57cYf2drKUhq9ati5QsJ1J5idfIOBE=
<gribble> Registration successful. You are now authenticated for user 'nanotube' with address 1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
</pre>
<br />

==Autenticación==

<pre>
<nanotube> btcauth nanotube
<gribble> Request successful for user nanotube, hostmask nanotube!~nanotube@unaffiliated/nanotube. Your challenge string is:
          freenode:#bitcoin-otc:40fb92dc28721a074e36377cb3a5b689ce025231b946c1ca77fdfd03
<nanotube> btcverify HNFBzYSycKq55rUVXor1Wfs1GCuO94I4aWJKwvgVsqawK4wOfJ+Bs2Zvm57cYf2drKUhq9ati5QsJ1J5idfIOBE=
<gribble> You are now authenticated for user 'nanotube' with address 1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
</pre>
<br />

=Comprobando el estado=

Para comprobar si tu u otra persona están autenticados, puedes utilizar el comando "ident" con el apodo IRC del usuario. Puedes omitir el apodo si vas a comprobar tu proprio estado. Por ej.:
 <nanotube> ident
 <multimeter> You are identified as user nanotube, with GPG key id E7F938BEC95594B2, key fingerprint D8B11AAC59A873B0F38D475CE7F938BEC95594B2, and bitcoin address 1J4yzUXMuhuF28M3VYpqtmride5tj5smbi

Es recomendable que solo intercambies bitcoins con personas autenticadas ("identified").
<br />

=Cambiar la dirección=

Para cambiar tu dirección registrada, utiliza el comando "changeaddress" con la nueva dirección que vas a utilizar. Tendrás que estar autenticado en tu cuenta para poder hacer uso de este comando. El bot te proporcionara una frase de un solo uso que tendrás que firmar con tu nueva dirección y responder usando el comando "btcverify", de la misma manera que una autenticación normal.

BTCitcoin: An Idea Worth Saving - Q&A with bitcoins on rugatu.com - Check my rep
JPMI
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
October 30, 2012, 04:20:38 PM
 #23

Estimados amigos de "Bitcoin Forum":

Perdon por adelantado, mis sinceras disculpas, ya que no se absolutamente nada de programacion.

He descargado el programa gnupg-w32cli-1.4.11 intento introducir estos datos en la consola:

"gpg --gen-key"

PREGUNTA: ¿Desde que sitio, carpeta, .exe o lo que sea, he de hacer click para que entre en funcionamiento
                 y pueda empezar a generar mi clave?

RUEGO: no se nada de nada de programacion, ruego que me deis la respuesta de la manera mas
sencilla posible, como si ademas yo fuera retrasado mental.

Muchas gracias, y una vez mas perdon por adelantado, disculpas y mi clara intencion de no molestar,
pero creo que faltan estos datos en el "tutorial" ...

VEscudero
Donator
Sr. Member
*
Offline Offline

Activity: 335
Merit: 250


Bitcoin, Ripple & Blockchain pioneer


View Profile WWW
October 30, 2012, 11:08:43 PM
 #24

Estimados amigos de "Bitcoin Forum":

Perdon por adelantado, mis sinceras disculpas, ya que no se absolutamente nada de programacion.

He descargado el programa gnupg-w32cli-1.4.11 intento introducir estos datos en la consola:

"gpg --gen-key"

PREGUNTA: ¿Desde que sitio, carpeta, .exe o lo que sea, he de hacer click para que entre en funcionamiento
                 y pueda empezar a generar mi clave?

RUEGO: no se nada de nada de programacion, ruego que me deis la respuesta de la manera mas
sencilla posible, como si ademas yo fuera retrasado mental.

Muchas gracias, y una vez mas perdon por adelantado, disculpas y mi clara intencion de no molestar,
pero creo que faltan estos datos en el "tutorial" ...



Hola Juan Pedro, cuando instalaste el gnupg me imagino que te preguntaría la ruta donde dejarlo.
La verdad es que hace ya tiempo que no uso windows y no recuerdo muy bien donde lo dejaba, aunque creo que por defecto lo instala en "c:\Archivos de Programa\GNU\Gnupg\gnupg.exe".

El problema es que para poder manejar el programa debes utilizar la consola de comandos y eso quizá te resulte un tanto complicado sobre todo al principio. Es por ello que te recomiendo que te instales algún programa gráfico que te facilite el manejo.

Uno de los más sencillos de utilizar es el gpg4win: http://www.gpg4win.org.
Espero que te sea de utilidad.

https://www.vescudero.net   ★ VEscudero's Blog about cybersecurity, blockchain, bitcoin and open source ★
Pages: « 1 [2]  All
  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!