Blog de David Rodriguez

Internet, tecnologia, programacion, SEO

saber numero de fichero abiertos por proceso en linux

octubre 28th, 2011 by David Rodriguez

Para saber el numero de ficheros y cuales son los ficheros que se abren cuando se realiza un proceso en linux, tenemos que poner lo siguiente:

> lsof -p numero_proceso

numero_proceso lo podemos sacar haciendo un top

Si a la llamada lsof no le pasamos parámetros, nos muestra todos los ficheros abiertos.

Category: Internet, servidores | 1 Comment »

Problemas entre JQuery y Prototype en Javascript

mayo 17th, 2011 by David Rodriguez

Muchas veces utilizamos varios APIs de Javascript, y estos entran en conflicto. En este caso, JQuery y Prototype no se llevan muy bien.

Para solucionar el problema, debemos introducir los codigos de jQuery que nos dan problemas bajo el siguiente codigo:

jQuery.noConflict();
(function($) {
  $(function() {
    // more code using $ as alias to jQuery
  });
})(jQuery);

De esta forma solucionamos el problema, siempre y cuando los conflictos no sean muchos ... poruqe si no, nos podemos volver locos.

Mas información sobre problemas en jQuery y Prototype.

Category: Internet, Programacion | No Comments »

Descomprimir tar.bz2 y descomprimir tar.gzip

abril 1st, 2011 by David Rodriguez

Como descomprimir archivos tar.bz2 y archivos tar.gzip en sistemas linux, y como nuestra memoria RAM del cerebro no es amplia .. y tenemos SAN Google, aqui os lo dejo para recordarlo rapidamente.

Descomprimir archivo .tar.bz2

> tar -xvjf archivo.tar.bz2

Descomprimir archivo tar.gzip

> tar -xzvf archivo.tar.gzip

Category: Internet, Programacion, servidores | No Comments »

Buscar una palabra dentro de un fichero en linux

diciembre 10th, 2010 by David Rodriguez

Para buscar una palabra dentro de un fichero, en una maquina linux, lo podemos hacer facilmente de la siguiente forma.

Nos posicionamos en el directorio a buscar.

> cd /directorio_a_buscar

y busco la palabra

find . -exec grep -l palabra_a_buscar {} \;

Nos podemos ahorrar mucho tiempo para encontrar intrusiones en algún fichero en linux.

Category: Internet, Programacion, Seguridad, servidores | No Comments »

Comprobar email correcto desde consola de linux

noviembre 25th, 2010 by David Rodriguez

Vamos a enviar un email, directamente desde una consola de linux.

Conectar por ssh al puerto 25:

> ssh www.activolution.com 25

“Saludar al servidor” jejeje

> HELO www.activolution.com

Indicar quien va a mandar el email

> MAIL FROM: <info@activolution.com>

Indicar a quien lo vas a mandar terminando con . <INTRO>.<INTRO>

> RCPT TO: <spam@topformacion.com>

Incluir el texto del mensaje

> DATA

Esto es el texto del mensaje de prueba

.

.

> QUIT

Category: Internet, Seguridad, servidores | 1 Comment »

ver los iconos de los PSDs en el explorador de windows

mayo 6th, 2010 by David Rodriguez

Muchas veces tenemos el problema de no poder ver que tiene un psd sin abrirlo … con la consiguiente perdida de tiempo en esperar a que carguen los ficheros psds que suelen ser bastante pesado.

iconos psd

De esta forma, podemos visualizar el psd sin necesidad de abrirlo en el explorador de windows, tal y como si fuera una imagen jpg o gif.

  1. Descargad este archivo
  2. Extrae los archivos.
  3. En esta ruta C:\Archivos de programa\Archivos comunes\Adobe\Shell(en caso de que no exista crearla) copia los archivos.
  4. Haz doble clic sobre los archivos de registros para ejecutarlos: psicon.dll.reg y aiicon.dll.reg

Con este simple hackeo del registro ya va a funcionar, el problema es que Illustrator borra la clave cada vez que se inicia el registro. Así que si eres usuario de Illustrator necesitas hacer una cosa más:

  1. Ve a Inicio > Ejecutar > regedit
  2. Localiza y haz clic con el menú derecho en:HKEY_CLASSES_ROOT\CLSID\{0C5B0CED-206B-4c39-B615-0EB23C824612}\InProcServer32
  3. Haz clic en permisos.
  4. Selecciona un usuario en el cuadro de diálogo y pulsa en Opciones Avanzadas.
  5. Haz clic en “Modificar” en el nuevo cuadro de diálogo.
  6. En “Eliminar” haz clic en la casilla de verificación de la columna “Denegar” ( véase en la imagen inferior).
  7. Aceptar.

Esta información la ha sacado nuestro Director de Arte de Activolution, Eduardo Maqueda,  del blog de Cristian Eslava

Category: Otros, Programacion | No Comments »

Encuestas online gratis con PHP

abril 30th, 2010 by David Rodriguez

Muchas veces necesitamos realizar algún tipo de encuesta en la web y no sabemos que programas gratuitos utilizar o cual es el mejor para estas cosas.

Se puede ir a una empresa de encuestas online, que tienen alguna versión gratuita, pero cuyo fin, siempre va a ser que pruebes el servicio y finalmente pagues por él. Podeis probar con e-encuesta.com y encuestafacil.com

Si lo que se desea es poner una pequeña encuesta en la web que una simple pregunta … lo mas sencillo es utilizar el script Simple PHP Poll.

Y si finalmente, lo que queremos es una herramienta completa de gestión de encuestas, con todas configuraciones posibles, idiomas, tipos de pregunta, estadisticas, etc, la mejor opción es Lime Survey, que es una herramienta gratis en PHP y MySql. Facilmente instalable y con un interface muy intuitivo y usable(no hace falta hacer ningún curso para utilizarlo)

No perdais tiempo buscando otras opciones, ya que esta, de momento, es la mejor.

Category: Internet, Programacion | No Comments »

Actualizacion modulo envio de correos en de PHPMimeMail a RMail

abril 8th, 2010 by David Rodriguez

Hemos venido utilizando desde hace muchos años el modulo PHPMimeMail para el envio de correos en PHP, es una clase que funciona muy bien y estaba muy implementado.

El problema es que se está quedando obsoleta. El mismo creador, ha creado RMail, otro modulo de envio que funciona para PHP5 y que hemos comprobado con nuestros desarrollos web, que mejora en un 70% los tiempos de envio.

El proceso de actualización es muy sencillo ya que los metodos utilizados en ambos módulos son similares.

Method Description
Constructor Doesn’t take any arguments. Not much to say I guess.
setCRLF(string $crlf) Sets the CRLF line ending type to use. You should not use this unless you’re sure you know what you’re doing, as the code will correctly (most of the time) determine which type to use by itself.
setSMTPParams(string $host,
int $port,
string $helo,
bool $auth,
string $user,
string $pass)
Set SMTP parameters when using SMTP to send the email. All optional, though not specifying any would be pointless… Pretty self explanatory really – hostname to connect to, port to connect to, text to send as part of the HELO command, whether to use SMTP authentication, and if so the username and password to use.
setSendmailPath(string $path) Sets the path to use when using sendmail method of sending the email. This should be the full path to the sendmail binary on your system, along with any command line parameters. Defaults to “/usr/lib/sendmail -ti”.
setTextEncoding(object $encoding) Sets the encoding to use (if any) on the plain text part of the email. The argument should be one of the encoding objects, ie Base64Encoding, QPrintEncoding, SevenBitEncoding or EightBitEncoding. Bit pants about the 7bit/8bit names, but identifiers in PHP can’t start with a number. Tits.
setHTMLEncoding(object $encoding) Sets the encoding to use (if any) on the HTML part of the email. The argument should be one of the encoding objects, ie Base64Encoding, QPrintEncoding, SevenBitEncoding or EightBitEncoding.
setTextCharset(string $charset) Sets the characterset to use on the plain text portion of the email. Defaults to “ISO-8859-1″.
setHTMLCharset(string $charset) Sets the characterset to use on the plain text portion of the email. Defaults to “ISO-8859-1″.
setHeadCharset(string $charset) Sets the characterset to use on the headers of the email. Defaults to “ISO-8859-1″.
setTextWrap(int $count) Set the point at which text is wrapped in the email. Defaults to 998, which is a limit imposed by the SMTP standard.
setHeader(string $name, string $value) Sets a header of the email. First argument if the name of the email, second is the value.
setSubject(string $subject) Sets the subject of the email.
setFrom(string $from) Sets the From: header of the email.
setPriority(mixed $priority) Sets the priority of the email. Defaults to “normal”. Argument can be either “high”, “normal” or “low”, or 1, 3 or 5 respectively.
setReturnPath(string $return_path) Sets the Return-Path: of the email. This is the address to which bounces will be sent if the email fails to be delivered.
setCc(string $cc) Sets the Cc: header of the email. The email will be delivered to these addresses as well as those specified in the send() method.
setBcc(string $bcc) Sets the Bcc: header of the email. The email will be delivered to these addresses as well as those specified in the send() method. However, the Bcc: header will be removed from email before it is sent, so those addresses in the To: and Cc: headers will not know it has also been sent to these addresses. Hence, “Blind” Carbon Copy.
setText(string $text) Sets the text part of the email.
setHTML(string $html[, string $images_dir]) Sets the HTML part of the email. The optional second argument specifies a directory where the code should look for images referenced by the HTML. If found, these images will automatically be embedded into the email.
addEmbeddedImage(object $embeddedImage) Adds an embeddded image to the email. The argument should be on of the fileEmbeddedImage or stringEmbeddedImage objects, depending on the source of the image.
addAttachment(object $attachment) Adds an attachment to the email. The argument should be one of the fileAttachment or stringAttachment objects, depending on the source of the attachment.
send(array $recipients[, string $type]) Sends the email. The first argument is an array of recipients to whom the email will be sent to. The second is how to send the email. This can be one of “mail”, “sendmail” or “smtp”, and defaults to “mail”.
getRFC822(array $recipients[, string $type]) This function first of all builds the email, and then returns it in text format. This is useful if you need to attach the email to another email. This could be done like so: $mail_2->addAttachment(new stringAttachment($mail_1->getRFC822(array(‘richard@example.com’)), ‘message/rfc822′)) The first argument is an array of recipients to place in the To: header, whilst the second, optional, $type argument should be the same as that you intend to use eventually for the send() method. This is to ensure the correct line endings are used.

Category: Internet, Programacion | No Comments »

redireccionar a un idioma segun el pais del usuario

abril 5th, 2010 by David Rodriguez

Para redireccionar a un usuario según sea su pais de procedencia (bueno .. ya sabemos que los servidores desde donde se conectan los usuarios no son 100% fiables .. pero es la unica forma que tenemos de saberlo), utilizamos el api de hostip.info y cargamos el xml que nos dan.

Para ello hemos definido la siguiente función:

function getPaisProcedencia(){
$salida = ”;

$IPADDRESS = $_SERVER["REMOTE_ADDR"];

$archivo_xml = “http://api.hostip.info/get_xml.php?ip=”.$IPADDRESS .”";
$procedencia_xml = get_url_contents ($archivo_xml);

if (empty($procedencia_xml)){
$salida = ”;
}else{
preg_match_all(“|<Hostip>(.*)</Hostip>|sU”, $procedencia_xml, $items);
$lista_nodos = array();
foreach ($items[1] as $key => $item)
{
//preg_match(“|<gml:name>(.*)</gml:name>|s”, $item, $mi_lugar);
//preg_match(“|<countryName>(.*)</countryName>|s”, $item, $mi_pais);
preg_match(“|<countryAbbrev>(.*)</countryAbbrev>|s”, $item, $mi_sigla);
$salida = $mi_sigla[1];
}
$procedencia_xml = “”;
}

return  $salida;
}

En esta función hemos utilizado la función get_url_contents descrita en un post anterior sobre optimizacion de file_get_contents en php.

Podemos sacar mucha información del xml de este API http://api.hostip.info/get_xml.php?ip=200.147.3.156

<HostipLookupResultSet version=”1.0.1″ xsi:noNamespaceSchemaLocation=”http://www.hostip.info/api/hostip-1.0.1.xsd”>
<gml:description>This is the Hostip Lookup Service</gml:description>
<gml:name>hostip</gml:name>

<gml:boundedBy>
<gml:Null>inapplicable</gml:Null>
</gml:boundedBy>

<gml:featureMember>

<Hostip>
<ip>200.147.3.156</ip>
<gml:name>(Unknown city)</gml:name>
<countryName>BRAZIL</countryName>
<countryAbbrev>BR</countryAbbrev>
<!– Co-ordinates are unavailable –>
</Hostip>
</gml:featureMember>
</HostipLookupResultSet>

El nodo sobre el que hemos realizado las comprobaciones es countryAbbrev aunque se podría utilizar countryName, aunque siempre vamos a usar menos recursos si comparamos abreviaturas que cadenas de nombres más largas.

Ojo, esta función no es recomendable utilizarla cada vez que tenemos una hit .. ya que ralentizaría nuestra maquina de manera injustificada. Asi que lo que recomiendo es utilizarla unicamente en la primera visita a nuestra web. Esto lo podemos controlar con sesiones, cookies, referer, etc … nosotros hemos utilizado el referer del usurio aunque otras opciones serían igualmente válidas.

Category: Internet, Programacion | 3 Comments »

optimizar tiempos de file-get-contents en php

abril 5th, 2010 by David Rodriguez

A veces tenemos que cargar xml o contenido externo a nuestra web.

En php, tenemos la función file-get-contents para leer un fichero y devolver un string. En ese caso, podemos tener diferencia de tiempos de carga entre ejecutar un xml en el navegador .. y cargar ese xml en un string.

Esto puede ser debido a las politicas de seguridad de los servidores donde cargamos la información.

Para reducir estos tiempos y que nuestra web no se ralentice, es mejor cambiar esa función por esta otra que nos definimos nosotros a través del método curl.

function get_url_contents($url){
$crl = curl_init();
$timeout = 25;
curl_setopt ($crl, CURLOPT_URL,$url);
curl_setopt ($crl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($crl, CURLOPT_CONNECTTIMEOUT, $timeout);
$ret = curl_exec($crl);
curl_close($crl);
return $ret;
}

Tenemos mejoras en tiempos de un 75% menores en la carga.

Category: Internet, Programacion | 1 Comment »