miércoles, 23 de enero de 2008

La digievolución del HTML: HTML5

Según veo en Barrapunto, la W3C ha sacado un borrador de lo que van a ser la especificaciones de la siguiente versión, y como paso de leerme todo el tocho que es pues lo que he leído un poco por encima es un documento con el borrador de las diferencias entre éste y el HTML 4, que es más cortito ;-) .

Un poco de historia

Cuando allá por principios de los años 1990 un científico del CERN (que no tengo ganas de buscar el nombre) ideó el Lenguaje de Marcas de HiperTexto su idea era muy simple: poder escribir un documento de texto dentro del cuál algunas partes pudieran ser pinchadas o seleccionadas para ver automáticamente otro texto y también la posibilidad de definir algunos formatos como: títulos, cursiva, negrita, tablas e imágenes, por ejemplo.

Bueno, una idea la mar de sencilla tiene sus complicaciones sobre todo cuando se definen formatos que tienen ambigüedades y no se definen comportamientos estándar ante esas situaciones. Estas cosas se fueron limando a base de cutre-parches con el paso del tiempo a pesar de los líos Mozilla por aquí, IE por el otro lado... ejem, cough, cough, llamémoslo Gecko y Trident. Se que existe Presto, KHTML y demás pero me referiré a solo a los dos grandes.

Además salieron algunos estándares anexos para mejorar el panorama: los estilos CSS (para definir la estética de los elementos), el XHTML (para dar una estructura solida de jerarquía y relación entre elementos mediante XML), el DOM (para estandarizar el manejo de elementos con el JavaScript) y demás. Haciendo que una de las ideas más sencillas del mundo se convierta en algo bastante más complejo.

Presentando el HTML 5

Bueno según leo el documento con las diferencias, tras una pequeña exposición como la que hecho yo, lo primero que avisa es de que se trata de un borrador y faltan por concretar algunas cosillas.

Posteriormente dice que aunque intenta ser compatible con la forma como manejan actualmente los elementos los navegadores (mejor dicho motores de renderizado), pues que deben implementar cosas antiguas aunque no estén soportadas por el nuevo estándar (ni que necesitaran permiso para hacerlo... ¬_¬U). Lo importante, según parece, es que se ha medio bajado los pantalones diciendo: "No decimos como el navegador debe interpretar el HTML, sino como ha de ser escrito", aunque por otra parte es la dura realidad y siempre lo ha sido así aunque no se reconociera; pero lo veo como buena forma de meter presión si el IE no es totalmente compatible por lo menos haz que el Frontpage (o como se llame ahora) lo sea XD (ojo que los productos Mozilla tampoco están libres de pecado...).

Tras esto, hay una pequeña novedad diciendo que las especificación no se considerará acabada hasta que haya dos implemenciones completas de dicha especificación, lo que quiere decir: que hasta que no haya dos motores distintos que la soporten totalmente no dan por definitivo el chiringuito. Cosa que cambia radicalmente puesto que antes se definía el estándar y luego que cada uno haga lo que pueda (y quiera) con él. Nunca entendí esa manía de hacer estándares sólo en papel...

De aquí pasamos a la sintaxis y definición del documento, la cuál puede ser mediante HTML normal (HTML 4 o XHTML) o mediante XML, y luego añade otras cosillas sobre la codificación de caracteres y que se requiere escribir <!DOCTYPE html> al principio del documento para diferenciarlo.

Cosas nuevas

HTML 5 añade nuevas cosillas, todas orientadas a las estructura jerárquica del documento y función del texto que rodea, algunos son:
  • section: Para indicar secciones (para usarse junto con los títulos h1-h6).
  • article: Para indicar artículos distintos dentro de la misma página.
  • header: Encabezado de la página.
  • footer: Pie de página.
  • dialog: Para marcar diálogos junto a dd y dt (Nunca entenderé porque usar las listas de definiciones para estos menesteres)
Hay otros cuantos y sobre todo en lo relacionado con los formularios.

Cosas que nos cambian

Han cambiado significado de algunas etiquetas que indicaban estilo, es decir negrita, itálica, etc. pasan a indicar qué es el texto que rodean, pero tampoco es que corroan mucho ya que definen su uso habitual...:
  • hr: Pasa de ser una simple linea horizontal a: "Un cambio temático en los párrafos" (¿dejará de ser una línea?).
  • b: En vez de indicar texto en negrita, para decir que el texto debe ser estéticamente distinto como palabras clave.
  • strong: Pasa de ser la alternativa larga de b para escribir en negrita para representar importancia en el texto.
  • i: Al igual que b en vez de decir que es texto en cursiva ahora tan solo indica que el texto debe ser estéticamente distinto porque se refiere a términos técnicos, palabras en otro idioma, etc.
Hay otros mas. Aquí la importancia radica en que se pasa de definir el formato del texto a definir la función que tiene ese texto.

¡Ohh! ¡Nooo! Nos quita esto

Por otra parte HTML 5 hace un purga... y vaya purga O_o . Quita un montón de elementos (y muchos muy usados y conocidos) por tres razones
  1. La sencilla razón que solo indican estilo y que eso lo debe manejar el CSS.
    • big: Letra grande.
    • center: Centrar.
    • font: Cambiar fuente (¡¡¡ALELUYA!!!).
    • strike: Tachado.
    • tt: Texto monoespaciado.
    • u: Subrayado.
  2. Siempre fueron un coñazo (esto lo digo yo, aunque las uso y sinceramente les puedo llegar a ver su utilidad si quieres hacer páginas dináminas a mano... tengo una lista de pelis tuti guay en HTML...). La escusa es la accesibilidad y usabilidad.
    • frame, frameset y noframes: Para hacer frames (por ejemplo cuando usas el traductor de Google con una página te crea un frame en la parte superior)
  3. Porque no son usadas, crean confusión o pueden ser hechas de otra forma
    • acronym: Crea confusión y hace lo mismo que abbr. Así que a usar esta última y arreglado.
    • applet: Debe usarse object.
    • isindex: Hay otras formas de acceder a los formularios.
    • dir: debe usarse ul.

Conclusión

Bueno además de los cambios en las etiquetas indicadas, hay bastantes más respecto a los atributos que pueden tener dichas etiquetas y paso de comentar que esto ya es muy largo.

En esta evolución se ve claramente que la intención es quitar todas marcas de formato del texto a cambio de que sólo sean para indicar la función de ese texto dentro del documento que de hacerlo bonito ya se encargará el CSS... Para poner un ejemplo, es como si en el Word os quitan los botones de subrayado, negrita, centrado, la caja-lista de fuentes y su tamaño, etc. y os dejan tan solo con una caja-lista de estilos de texto y punto, luego aparte defines el formato para cada estilo y ya está (Que por cierto Microsoft y OpenOffice.org ya bien podrían hacer esto... XD).

Ahora asaltan las dudas:
  • ¿Cuanto tardará IE en soportarlo de forma... aceptable? No son muchos cambios... pero, sinceramente, no pongo en duda que Mozilla u Opera ya llevan unos meses pensando (o incluso desarrollando) para ir adaptando lo necesario... ¿5- 10 años? Pero mucho a mi pesar la gente sigue usando IE6... (ahora que se tenía la excusa de: No se soportan versiones pirata XD)
  • Si todavía ni siquiera se intentan cumplir los estándares de HTML 4 (XHTML mejor ni hablar...) ¿Como mascamos el HTML 5?
  • ¿Hasta que punto se eliminan los estilos? ¿Una página sin CSS asociado debería mostrarse como texto llano sin más? Bueno, en verdad supongo que se mostrarán como ahora... pero en teoría si pongo que los títulos de primer nivel sean solamente rojos entonces no deberían tener un tamaño más grande de lo normal como tienen por defecto...
Bah, me he aburrido de dar la chapa... curiosa y paradójica entrada en la que se habla sobre cumplimiento de estándares cuando de entrada no los cumplo ni yo... XD XD

jueves, 17 de enero de 2008

Tenga Inciclopedia en su casa (y 6) ¡¡Por fin!!

Ya acabamos :') Ya esta todo, tan solo queda introducir lo que quieras en la wiki. Puedes crear artículos, enredar con ella, etc. como si estuvieras usando cualquier otra de internet, mejor aún eres burócrata puedes bloquearte a tí mismo o quitarte incluso los derechos (mejor no lo hagas....). Como supongo, si has leido el tutorial y seguido todos los pasos, lo que quieres es tener una copia de Inci, bien comienza por [[special:allpages]], abre los primeros artículos y pulsa en editar de cada uno y en tu wiki vas creando uno a uno y pegando el código fuente. Así hasta terminar con todos, luego sigue por los que están en otros espacios. Que no... que es broma XD.

Obteniendo la materia prima

Inciclopedia al igual todas las wikis de Wikia tienen una copia de seguridad hecha periódicamente que además está accesible al público general bajo licencia GNU FDL (un par de ellas bajo CC-by-nc-sa). Exactamente lo mismo que sucede con las Wikipedia. Por tanto, tan solo hay que bajarse de golpe esa copia de seguridad. Para bajartelas pulsa botón derecho Guardar destino como, Guardar enlace como o similar (o usa un gestor de descargas que vendrá muy bien...) Los enlaces de algunas de Wikia interesantes son, con tamaños a día 17 de enero de 2008: Para cualquier otra wiki de Wikia o si no funcionan los anteriores, hay un listado completo de todas las wikis. Con sus respectivos enlaces a las bases de datos y con su el tamaño real de la base de datos. Las Wikipedia funcionan de forma distinta, ya que tienen varias copias de seguridad y además las comprimen en .bz2 (un formato muy común bajo Linux, casi tan bueno como .7z) u otros formatos, estos prácticamente son reconocidos por cualquier descompresor moderno. Al estar comprimidas, por supuesto hay que descomprimirlas... aumentando su tamaño entre 20 y 100 veces (según pone en las páginas de descarga) así que ojo.... Al ser tan grandes en las de "Sólo últimas revisiones" enlazo además a las que no contienen las páginas de usuario ni las discusiones, las versiones completas son para mera curiosidad. Para un listado completito de todo: http://download.wikimedia.org/backup-index.html ¡OJO AL PARCHE! Ten en cuenta que si usas WIN9X o WINME tendrás problemas si el archivo es de más de 4GB, ya que no se pueden crear archivos de ese tamaño, también los de WINXP pueden tener ese problema si sus discos duros están usando FAT32. Si alguien conoce otras wikis interesantes usando Mediawiki, no Wikia ni Wikipedia que tengan sus datos a disposición del público que lo diga y me ponga un enlace a la base datos ;-)

Una cosilla que se había olvidado

Algunos programas PHP de mantenimiento de MediaWiki necesitan una configuración extra para funcionar, no recuerdo si es necesario para importar pero es tener mejor este detalle solucionado.
  1. Vete a X:\XAMPP\htdocs\mediawiki
  2. Renombra AdminSettings.sample a AdminSettings.php
  3. Abre este archivo con el Bloc de Notas y rellena las pocas líneas que hay:
Es decir modifica las líneas $wgDBadminuser y $wgDBadminpassword por:
$wgDBadminuser = 'mediawiki'; $wgDBadminpassword = 'mediawiki';
Donde ''mediawiki'' en la primera línea es el nombre de usuario de MySQL creado anteriormente y en la segunda su contraseña (en caso de que pusiste otros diferentes) y graba.

Importando

Una vez tienes el archivo .xml hay que importarlo, ¿que no es .xml? Guau que valiente... Te has bajado una Wikipedia. Bueno, pues descomprime el archivo. Te recomiendo que lo muevas a una carpeta no muy complicada, o al directorio base de una unidad (supondré que se llama archivo.xml y está en C:\) Para importar se puede usar Especial:Import en tu wiki... puesto que reconoce el formato pero no lo uses porque seguro que dará un error de tiempo excedido (a mi me lo da si intento importar más de 50 artículos...). Por tanto hay que hacerlo de otra forma (como siempre suponiendo que el MediaWiki está en X:\XAMPP\htdocs\mediawiki):
  1. Abre una consola Sí, de MSDOS/Símbolo del sistema y no me seas lloricas ¿después de todo te vas a echar atrás por una ventana con fondo negro?
  2. Escribe: X: Donde X la unidad de disco donde está el XAMPP
  3. Ahora cambiamos de directorio con: CD \XAMPP\htdocs\mediawiki\maintenance Escribiendo un poco del principio de la directorio y pulsando tabulador se suele autocompletar, solo en WinXP
  4. Ejecutamos el programa de PHP importDump.php con el php.exe que en la carpeta php del XAMPP de la siguiente forma: \XAMPP\php\php importDump.php C:\archivo.xml Por supuesto adaptando los directorios del XAMPP y donde se encuentre el archivo que te bajaste además de su nombre
  5. Espera tranquilo... por suerte cada unos cuantos segundos el programa te comenta la jugada.
  6. Cuando termine se te recomendará ejecutar rebuildrecentchanges.php así que ya que estamos escribe: \XAMPP\php\php rebuildrecentchanges.php Tardará otro ratito (creo) y...
  7. ¡TACHÁN! Disfruta de tu copia local de la wiki que hemos terminado.
Bueno pues ahora comentaré alguna que otra cosilla...

Miscelánea

Bueno, pues voy a comentar un poco lo de la actualización... si se usó el programa RapidSVN la actualización del MediaWiki y las extensiones que fueron instaladas con él, es tan sencilla como volver a abrir el SVN, picar en el marcador que quiera actualizar, dar en el + de al lado (por un bug del programa no me deja actualizar si no pulso ahí) y apretar CTRL + U o en el menú Modificar/Actualizar. Esperar un poco y ya está. Si te lo bajaste en un archivo para actualizarlo bastaría con bajarse la nueva versión y descomprimirla encima de la que ya tenía... o eso creo que debería bastar.... Algunas veces, las menos, tras actualizar puede que dé algún error para ello hay que ejecutar update.php de la carpeta maintenace de la misma forma que ejecutamos los otros .php
  1. Desde una consola, vete a la carpeta maintenance del MediaWiki X: CD \XAMPP\htdocs\mediawiki\maintenance
  2. Y ejecútalo con: \XAMPP\php\php update.php
La verdad He puesto el título de Miscelánea pero ahora no se me ocurren otros detalles que contar... solo me queda felicitarte si has conseguido que todo funcione como quieres y no has tenido ningún problema.
<- Anterior - ¡¡¡FIN!!!

miércoles, 16 de enero de 2008

Memez: Cosas que llevas en la maleta

Bueno en lo que preparo la última entrega de Tenga Inciclopedia en su casa, pues me han MVP14 enviado que haga una memez,... esto, un meme o memé o como cojones quieran llamarlo los elitistas. Por cierto, ¿como se hacen los enlaces de bactracking?.

Normalmente no soy partidario de estas cosas y lo veo como los correos electrónicos en cadena, de hecho es la misma mierda pero usando un blog en vez del correo electrónico, y en el correo mis contactos se lo piensan dos veces antes de darle a reenviar a todos sus contacto si me tienen incluido.

Recibir uno de vez en mucho tiempo tampoco está tan mal... que a mi correo le salen telarañas (y lo bien que está así, la verdad) y si por por lo menos se molestan en darlo formato y mandarlo como debe ser, encabezado coheente, limpito de direcciones que no me interesan, quitando la cantidad de publicidad del publicidad de tanto reenviar y es legible (quitando los ">" saltos de línea) pues no me quejo e incluso si tienen suerte lo abro y lo leo. Otro cantar aparte son los PowerPoint que nunca les abro, no tengo el MS Office pero no es porque no los pueda abrir

Pero cuando llega el tercer correo seguido de ese tipo: reenviado 5.000 veces a 14.000 usuarios distintos, 5 millones de direcciones en el encabezado, 3.000 anuncios al final indicando cuanta gente lo ha reenviado desde su origen pulsando un solo botón pues como consecuencia suele tener que es reenviado a su remitente, junto con el texto "DEJA DE ENVIARME PUTA MIERDA" repetido un montón de veces (1 o 2 Mb) y además con letra grande y si estaba de humor con colorines al más puro estilo Inciclopedia:Eternidad. Si persiste pues en vez de uno eran varios para llenarle la cuenta de correo (esto era divertido cuando hotmail solo tenía 20 megas, creo que era, pero ya no tiene mucho sentido). Y si es tozudo... pues para algo existen los filtros de spam.

Vayamos con la memez

Bueno, pues la memez esta vez consiste en decir que tres cosas siempre llevas en la maleta cuando vas de viaje y una que te gustaría llevar pero no llevas, también hay que explicar por qué. Así que comencemos:
  1. Ropa: Evidente, si llevas las maletas será para pasar unos días así que ropa para cambiarse.
  2. Bolsa de aseo: Por lo misma razón anterior... además si me debería afeitar cada 2-3 días...
  3. Un par de bolsas: Un poco grandes para poder meter la ropa sucia
Y la que me gustaría llevar pero no llevo:
  1. Dinero a montones hasta llenarla: ¿Cuantos euros entrarían en una maleta?
Nada espectacular ¿eh?... creo que soy práctico, no llevo revistas u otros materiales de entretenimiento porque en la maleta no pintan nada, prefiero llevar esas cosas en la mano (o en una mochila) para poder cogerlas y poder usarlas durante el viaje... XD XD XD Aunque ahora que por fin tengo tengo un móvil moderno (Sony Ericson W850i), él solito se basta y se sobra para cumplir esa función... XD XD XD

PD: Paso de enviar a la gente haga la memez esta, si tiene que morir un gato... que se joda y le eche las culpas a MVP que es el que me ha metido en el marrón. Me siento como Heracles/Hércules luchando contra la Hidra. XD XD XD

Actualización: Probando lo del trackback ese: http://fallenidol.wordpress.com/2008/01/15/los-memes-%c2%bfel-que-memeeeeees/

jueves, 10 de enero de 2008

Tenga Inciclopedia en su casa (V)

Bueno, bueno, bueno... después de un larga ausencia por las vacaciones de navidad, continuamos con la preparación del MediaWiki.

En este punto el MediaWiki ya tiene que estar funcionando y se podrá editar con el sin problemas, incluso también ya se puede importar la wiki quieras sin hacer nada más que bajarse la base de datos de la wiki en cuestión (o exportar las páginas mediante Special:Export) e importarla en tu wiki personal. Pero la mayoría de las wiki tienen extensiones y espacios que no bienen por defecto con el MediaWiki (por ejemplo, Incinoticias e Incicitas en Inciclopedia o Anexo en Wikipedia-es).

La falta de algunas extensiones, hace que algunas características especiales no funcionen, como pueden ser los listados dinámicos de páginas o el uso de funciones especiales como las ParseFunctions pero no debería afectar de forma drástica a la wiki; por otra parte el hecho de no crear los espacios añadidos tampoco es mucho problema, ya que en vez de crearse la distinción entre ese tipo de páginas simplemente las trata como página normales que comienzan por NombreEspacio:. El no tener los espacios también puede dar problemas en algunas extensiones que los usen como parámetros...

Así que básicamente si no quieres instalar las extensiones (que se puede hacer posteriormente sin ningún problema) o los espacios (que para hacerlos luego si que tienen un pequeño problema) puedes pasar a la siguiente entrada (cuando esté hecha XD).... Bueno, mejor no, primero configuremos algunas cosillas primero...

Pasos previos

Primero vamos a activar algunas cosillas que vienen desactivadas por defecto, para ello abre el archivo LocalSettings.php que tendrás en X:\XAMPP\htdocs\mediawiki y añade al final lo siguiente:
#--------- #Definimos el logo y el favicon para poder "subirlo" $wgLogo = "{$wgScriptPath}/images/Wiki.png"; $wgFavicon = "{$wgScriptPath}/images/favicon.ico"; #Activamos el AJAX (necesario para algunas extensiones) $wgUseAjax = true; #Activando subpáginasa los distintos espacios $wgNamespacesWithSubpages = array( -1 => 0, 0 => 1, 1 => 1, 2 => 1, 3 => 1, 4 => 1, 5 => 1, 6 => 1, 7 => 1, 8 => 1, 9 => 1, 10 => 1, 11 => 1); #Activamos que se pueda usar el JavaScript personalizado por el usuario $wgAllowUserJs = true; #Activamos que se pueda usar el CSS personalizado por el usuario $wgAllowUserCss = true; #Activamos la subida de archivos (y simplificamos su estructura) $wgEnableUploads = true; $wgStrictFileExtensions = false; $wgHashedUploadDirectory = false;
Los comentarios espero que sean autosuficientes, tal vez la más complicadas de entender sea $wgNamespacesWithSubpages. Ésta posibilita la creación de subpáginas (por ejemplo con el nombre Pagina/Subpágina/Subsubpágina) en todos los espacios menos en el -1 que es más especial. Los espacios tienen una numeración interna: (0 = Espacio principal, 1 = Discusión, 2 = Usuario, 3 = Usuario Discusión, etc)

Bien, hemos acabado con la configuración básica... así que podemos pasar a la instalación de extensiones, creación de espacio o simplemente importar los datos.

Creando los espacios adicionales

Si se tiene pensado crear espacios adicionales es mejor hacerlo antes de importar nada, ya que tiene un pequeño problema en caso de que se importe cuando hay páginas en la wiki. Dicho problema consiste en que si se va a crear el espacio "Incinoticias" pero ya existen páginas llamadas "Incinoticias:LoQueSea" cuando se cree el espacio nuevo esas páginas serán innaccesibles.

Para crear los espacios adicionales, se debe modificar el mismo archivo LocalSetting.php anterior.

Simplemente añade/modifica la variable $wgExtraNamespaces por la siguiente estructura:
$wgExtraNamespaces = array(
100 => "Espacio1",
101 => "Espacio1_Discusión",
102 => "Espacio2",
103 => "Espacio2_Discusión"
#etc.
);
A TODO espacio creado (numero par) también hay que crear su discusión (numero impar), aunque no tiene porque llamarse obligatoriamente "_Discusión" es recomendable para que siga la misma lína que los demás (si la wiki está en español, claro). Ademas estos espacios adicionales deben comenzar por un número superior a 100.

Extensiones

Instalación de extensiones se puede hacer en cualquier momento y no debería haber ningún problema para instalarlas incluso después de haber importado la wiki. La gran mayoría de las extensiones están listadas en MediaWiki.org navegando a partir de esta página. La instalación de las extensiones es algo complejo y manual ya que hay básicamente tres formas de conseguir los archivos dependiendo de la extensión:
  • Bajarse los archivos (por separado o en un zip/rar/7z). Puede ser en la propia página de MediaWiki.org u otra externa.
  • Usar el SVN (que tiene como ventaja la actualización)
  • Creando un archivo .php y copipegando directamente el código fuente que te listan en el archivo.
Aunque es recomendable seguir detalladamente las instrucciones de cada extensión y leer su ayuda, la idea básica para instalarlas es:
  1. Copiar el archivo .php de la extensión en la carpeta X:\WAMPP\htdocs\mediawiki\extensions (o en una subcarpeta si son varios archivos).
  2. Añadir al final del archivo LocalSetting.php:
require_once( "extensions/ruta_al_archivo.php" );
Y una vez hecho esto probar si funciona y no da errores...

Lo siento no ser más preciso, pero esto es un mundo a parte ya que cada extensión es hija de su padre y madre, y cada una puede tener algunos requerimientos especiales que estarán explicados en su página correspondiente (las hay incluso muy difíciles de hacerlas funcionar).

Por otra parte añadir que si quieres conocer que extensiones están instaladas en la wiki que quieres importar puedes verlo en la página Special:version, y que instales aquellas que tengan uso y utilidad.

De entrada independientemente de si son usadas en la wiki original o no, recomendaría añadir las siguiente extensiones, que casi actualmente son básicas para cualquier wiki:
  • CategoryTree: Permite expandir las subcategorías de las distintas categorías y otras cosas.
  • Cite: Para poder poner notas al pie. (bueno... ésta no es tan básica... XD)
  • DynamicPageList: Para hacer listados dinámicos de páginas.
  • ParseFunctions (en un futuro estará aquí): Extensión básica para hacer contenido dinámico basándose en funciones y demás (casi todas las plantillas hacen uso de esta extensión).
Mientras buscaba los enlaces a estas extensiones he visto una nueva llamada ExtensionManager que parece que es para hacer que la instalación de las extensiones sea cosa de coser y cantar, pero no la he probado...

Bueno pues con una vez hecho esto ya tenemos el MediaWiki completito, tan solo queda llenarlo de contenido, ya sea manualmente o a base de importaciones XD :P y en la siguiente entrada os pondré los enlaces de donde se pueden descargar la bases de datos de distintas wikis, o que se puede hacer en caso de éstas no estén disponibles.

Actualización: he probado ExtensionManager y la verdad... lo único que evita es la edición del LocalSettings.php ya que detecta las extensiones en el directorio extensions automáticamente... Es algo complicadilla de instalar ya que requiere instalar la extensión StubManager antes (ambas deben ser instaladas de forma normal) y una vez instaladas basta con bajar los archivos.

Actualización 2: Ahora también hay un nuevo sistema para bajarse las extensiones llamado PEAR (que parece ser un símil al SVN pero orientado al código PHP)
<- Anterior - Siguiente ->