Como saber la ubicación del script que envía spam

Hace poco me di con la sorpresa que las IPs de nuestro servidor están en las listas negras, es decir que envían SPAM, tuve que recurrir a varios métodos para averiguar donde esta, pero al final solo era un comando.

Los pasos son:

Entrar al SSH con tu usuario y contraseña

Ejecutar el siguiente comando:

grep cwd /var/log/exim_mainlog | grep -v /var/spool | awk -F»cwd=» ‘{print $2}’ | awk ‘{print $1}’ | sort | uniq -c | sort -n

El resultado será una lista de los sitios que mas producen correos, información muy útil para tomar una decisión.

Referencia:

http://www.inmotionhosting.com/support/email/exim/find-spam-script-location-with-exim

Mapas interactivos para la Web utilizando Inkspace, SVG y el plugin JVectorMap

Me encontré con la necesidad de mostrar mapas interactivos en un sitio web, pero que funcione en los navegadores de internet más usados (Firefox, Chrome, InternetExplorer), así que descarte por adelantado a Adobe Flash.

Investigando en la red encontré 2 plugins basados en JQuery, el primero JQVMap es el más sencillo de usar, pero una de las principales desventajas que encontré es que no me funciona en InternetExplorer, el segundo plugin por el que me decidí por usar es el JVectorMap, es un poco difícil de utilizar y tiene más opciones, pero la ventaja es que funciona en los navegadores más usados y recientemente salió la versión 1.2.2.

JVectorMap es un plugin para construir mapas interactivos, en su sitio web oficial se puede descargar la última versión y algunos mapas del Mundo, pero tienen que tener en cuenta que su documentación no está actualizada.

DEMO

DOWNLOAD

Pasos:

Dibujar mapa en Inkscape

  • Primero he dibujado un mapa en Inkscape en este caso un mapa de mi País Perú.jvm01
  • Ahora editamos las regiones en Inkscape para tener un mejor resultado etiquetamos las regiones de los mapas, para ello seleccionamos la región haciendo click derecho sobre una región y escogemos la opción “Propiedades del Objeto”:jvm02
    En este caso seleccionamos la región de Puno, y le pusimos un ID y un nombre para esta Región, esto es con el fin de que en nuestro resultado HTML se muestre esta etiqueta.
  • Ahora guardamos el mapa en un archivo por defecto que es (SVG de Inkscape).
  • Este archivo podemos abrirlo en el bloc de notasjvm03

 

SGVTO (Convertidor de SGV a formato .js de JVectorMap)

  • Seleccionamos todo el contenido del bloc de notas, lo copiamos y pegamos en el campo de texto del formulario que se encuentra en dirección:
    http://svgto.jvectormap.com/jvm04
  • Presionando el botón “Convert to map” podemos editar el nombre del mapa, los ids y los names de cada región; en este caso renombramos el nombre del mapa con “peru”.jvm05
  • Finalmente generamos el mapa para JVectorMap presionando el botón “Save”.jvm06Este resultado lo seleccionamos y copiamos en un archivo que podemos llamarlo “jvectormap.peru.js”.

 

JQuery y JQVectorMap

Entramos a la página oficial de JQuery para descargar su última versión en este caso JQuery 1.10.2 y la última versión de JVectorMap en este caso JVectorMap 1.2.2, este último tiene 2 archivos (.js y el .css).

Funcionamiento

  • Ahora en nuestra carpeta debemos tener los siguientes archivos:jvm07
  • Creamos un archivo peru.html que será donde se mostrara el mapa interactivo, Copiamos en el contenido del archivo:

HEAD

jquery-1.10.2.min.js
jquery-jvectormap-1.2.2.min.js
jvectormap.peru.js

BODY

< div id="world-map" style="width: 290px; height: 400px;">

JS

$(function() { $('#world-map').vectorMap({ map: 'peru' }) });
  • Teniendo como resultado jvm08
  • Mejorando nuestro mapa.
$('#world-map').vectorMap({
	map: 'peru',
	backgroundColor: '#b3d1ff',
	series: {
		regions: [{
				values: {"c0": "1", "c1": "2"},
				scale: ['#d9d4ca', '#b3d1ff'],
				normalizeFunction: 'polynomial'

			}]

	},
	regionStyle: {
		initial: {
			fill: "#f4f3f0",
			stroke: "#666666",
			"stroke-width": 1,
			"stroke-opacity": 1

		},
		hover: {
			fill: "#faa432",
			"fill-opacity": "1"

		}

	}
})
  • Resultado finaljvm09

Conclusión

En este tutorial se intentado enseñar como mostrar un mapa interactivo, espero haya aprendido y puedan aplicarlo a su trabajo. Pueden revisar su documentación de JVectorMap y agregarle más detalles como colores, bordes, opacidad, markers, eventos, etc.

Insync el disco duro virtual que usa Google Docs

Hace poco empecé a utilizar DropBox, y realmente es bastante útil, me permite tener mis archivos a disposición en diferentes dispositivos.

Con la salida de Insync, podemos tener casi las mismas posibilidades de sincronización que DropBox, pero tiene algunas desventajas y ventajas con respecto a su competidor DropBox.

Desventajas con respecto a DropBox.

  • Dropbox nos permite elegir las carpeta que queremos que se sincronicen con los dispositivos, Insync no.
  • Dropbox nos da 5GB de espacio gratuitamente, Insync la capacidad de Google Docs por cuenta gratuita que es 1GB.

Ventajas con respecto a DropBox

  • El costo para ampliar los GB de espacio para DropBox, va en proporción de 99 dolares al año por 50GB y con Google Docs por el mismo precio obtendremos 200GB.
  • Si utilizamos Google Docs, ya podemos tener la posibilidad de también tenerlo en nuestros ordenadores.

Lo bueno es que está disponible en el AppStore y Android Market.

Enlace: Insync

Tu bolso mágico para tus archivos – DROPBOX

En estos tiempos donde casi todos los dispositivos están conectados a internet, ya es extraño el uso de dispositivos de almacenamiento como los USBs, mas aun con correos como GMAIL que nos dan 7GB de espacio, que no solo sirven para almacenar correos también podemos almacenar nuestros archivos adjuntos en mensajes de correo.

Pero GMAIL no está orientado para almacenar archivos, por eso es difícil ubicar tus archivos dentro de mensajes de correos, como toda necesidad, existen soluciones como DROPBOX y Amazon Drive.

Gracias a la recomendación de un amigo @jronal, y después de probar la herramienta, puedo recomendar DROPBOX, para tener tus archivos sincronizados en todos tus dispositivos.

Actualmente tengo Mi PC de trabajo, mi Laptop de la casa, y mi iPad todos sincronizados con DROPBOX, así cualquier archivo que almacene en esta carpeta (Bolso mágico) se sincronizará en todos los dispositivos, de acuerdo a la configuración que le des a la herramienta.

DROPBOX te crea una carpeta en cada uno de tus dispositivos que instales la herramienta, esta carpeta estará sincronizada con todas las carpetas que configures con tu cuenta de DROPBOX.

DROPBOX te da un espacio de 2GB de forma gratuita.

Aquí un video que muestra el funcionamiento de esta herramienta.

Web: DropBox

Red Social desarrollada por egresados de ingeniería sistemas de la UNA-Puno – UIVIX

Que es uivix?

Tomada desde la misma web:

Es una plataforma de interacción social que te permite crear un miniblog para compartir lo que está pasando en el mundo o enterarse de ellas de forma organizada por categorías y a través de un buscador saber en tiempo real lo que la gente opina.

Me enteré gracias al evento de Wayra en la cual UIVIX ha sido clasificada en la primera etapa quedando entre los 30 finalistas, pero que lastimosamente no pudo clasificar en la siguiente última etapa.

Lo que más me sorprende sobre UIVIX es que el proyecto está siendo desarrollado por compañeros egresados de la carrera profesional de ingeniería de Sistemas de la UNA-Puno, y claro esto tiene consecuencias favorables como: hacer notar el nivel en conocimientos en tecnología de nuestra Universidad, a nivel nacional e internacional.

Después de tener una pequeña experiencia con el sitio, puedo definir que el sitio es una red social parecida al Twitter y Facebook, y esto no es novedad ya que estas redes sociales están marcando el camino en redes sociales, pero UIVIX tiene como característica principal la publicación de micropost referidos a un enlace y organizándolo por categorías, de esta manera cumplir con la deficiencia de las principales redes sociales mencionadas anteriormente, al no tener un orden en sus contenidos.

Aquí un video que lo explica de forma interactiva:

Web: UIVIX

Distribuir aplicaciones web con AppServer y Chrome

En los siguientes pasos explicare como lograr distribuir aplicaciones web en el escritorio de Windows, utilizando herramientas como AppServ que nos instalará el servidor web, el lenguaje PHP y la base de datos de manera muy facil, ademas utilizaremos el navegador web Chrome para interactua con la interfaz de la aplicación web.

PASOS:

Instalar Chrome

Chrome es un navegador liviano, y fácil de usar, y la razón que escogimos para crear aplicaciones es por su opción (Herramientas > Crear Acceso directo a aplicaciones), que abre el sitio sin la barra de direcciones y las pestañas, dejando una ventana limpia para nuestra aplicación.

Además podemos utilizar su visor de PDFs por defecto, que hará más fácil para visualizar e imprimir reportes sin la necesidad de Adobe Acrobat.

Para hacer portable el instalador, es decir que no requiera necesariamente de internet, puede descargarse chrome standalone, que es un instalador de chrome offline.

Instalar AppServer

Appserv es una aplicación que instala un conjunto de aplicaciones como el Servidor Web, PHP y el servidor de base de datos MySQL.

Link de AppServer

Codigo de aplicación web

Código de cabecera de la aplicación web.

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="content-language" content="es"/>
<link rel="shortcut icon" href="favicon.ico" />
<link rel="icon" href="icon32x32.png" sizes="32x32">
<link rel="icon" href="icon48x48.png" sizes="48x48">
<link rel="icon" href="icon64x64.png" sizes="64x64">
<link rel="icon" href="icon128x128.png" sizes="128x128">
<title>Aplicacion Web</title>
....
...
.

Como pueden ver en la cabecera se en la etiqueta <link> se definen las resoluciones de los iconos que se usaran al crear su acceso directo.

El resto de código puede ser cualquier aplicación Web que utilice una base de datos.

Distribuir la aplicación Web

Para poder distribuir tu aplicación web, es necesario crear un listado de programas requeridos que también tienes que distribuir como son:

  • Chrome Standalone
  • AppServ
  • La carpeta AppServ donde está tu aplicación web. (Puede desinstalar el appserver para que limpie toda la carpeta y solo quede la base de datos y el código fuente).

Para proteger el código de tu aplicación puede utilizar ofuscadores de código fuente, actualmente estoy trabajando en eso, o también utilizar el ZEND, que no logro entender, como integrarlo.

Utilizar dispositivos en Red con PHP y Apache en Windows

Son muchas las aplicaciones que se pueden desarrollar con las tecnologías (Apache, PHP y MySQL) y una aplicación web que funcione en escritorio no estará completa si no se comunica con los dispositivos o recursos y que además estos recursos estén compartidos en red.

Actualmente estoy desarrollando un sistema de puntos de venta para tiendas, y me encontré con la necesidad de utilizar dispositivos en red como impresoras y cajas registradoras, etc.

A continuación doy una breve explicación de cómo lograr que funciones PHP se comuniquen con dispositivos como impresoras en red, todo esto probado bajo el sistema operativo Windows.

Los dispositivos en red no están permitidos para el servicio de apache por ejecutarse como usuario SYSTEM.

Para habilitar el uso de dispositivos en red tenemos que ejecutar el servicio de apache como un usuario, este usuario tiene que tener permisos para acceder a red puede ser el usuario administrador que viene por defecto.

Para lograr que apache se ejecute con otro usuario tenemos que modificar algunas propiedades en el servicio de apache, listamos los “Servicios de Windows”,  y ubicamos el servicio de Apache.

Ejecutamos los siguientes pasos para lograr ejecutar Apache como otro usuario.

  1. Click derecho sobre el servicio de “Apache”.
  2. Seleccionar la opción “Propiedades”.
  3. Click en la pestaña “Iniciar Sesión”.
  4. Seleccionar la opción “Esta cuenta”.
  5. Presionar el botón “Examinar”,
  6. Buscar y comprobar el usuario.
  7. Completar el password del usuario.
  8. Reiniciar el servicio (Click derecho sobre el servicio y escoger la opción “Reiniciar”).

Al ver nuevamente el listado de tareas se nota que el servidor Apache está siendo ejecutado por el usuario asignado.

El siguiente código es un ejemplo de impresión utilizando una impresora compartida en red.

$printer = "\\\\192.168.1.37\\GenericT");
if($ph = printer_open($printer))
{
   printer_set_option($ph, PRINTER_MODE, "RAW");
   printer_write($ph,"HOLA MUNDO");
   printer_close($ph);
}
else "ERROR";

 

 

Saludos.

Microsoft es acusada por Google de copiar los resultados de búsqueda

Esta no es una noticia clásica donde una grande empresa acusa convenientemente a los usuarios de copiar ilegalmente sus productos (e mi opinión dándole mas popularidad al producto), es una noticia donde esta misma empresa «Microsoft->Bing» es acusada por otra empresa «Google» de copiar los resultados de sus motores de búsqueda y pasando por alto el ingenio, creatividad y trabajo de esta ultima.

Google realizó una serie de experimentos para confirmar sus sospechas, el experimento en resumen trata de crear términos nuevos que son ordenados manualmente donde en ningún otro motor de búsqueda pueda comportarse de la misma manera, y el siguiente paso era probar con Internet Explorer y/o Bing Toolbar, etc. después de 2 semanas los resultados ya aparecían en el buscador de Bing.

Los de microsoft saben como defenderse, y explican que tienen algoritmos que son capaces de captar las señales de cambios en la información en la web.

Estas noticias son malas para el poco crecimiento que tiene Bing, y lo hace ver como una empresa que solo le importa crecer a toda costa pero sin esforzarse y sin conocer el negocio.

Mas información en:
Google acusa a Bing de copiar los resultados de búsquedas de sus motores
Google acusa a Bing de copiar algunos resultados de búsquedas

SingleFile: Guarda una página web y sus elementos en un solo archivo

Cuando necesitamos guardar el contenido de una página web, los navegadores tienen la opción de guardar pero en archivos separados, generando un gran número de archivos con imágenes, scripts, estilos, etc. Recientemente en el navegador Chrome existe un plugin llamado SingleFile que permite guardarlo en un solo archivo de página web.

El archivo generado por SingleFile puede ser abierto en otros navegadores, pero el plugin por el momento esta disponible para el navegador Chrome.

El siguiente video muestra como se usa el plugin SingleFile