Feeds:
Entradas
Comentarios

Archive for the ‘Scripting’ Category

Me entero vía Piwik: Alternativa libre a Google Analytics de que existe Piwik:

Piwik # Open source web analytics

Un Analizador de eestadísticas web de código abierto y se autoproclama alternativa al Google Analytics.

Lo voy a probar … 🙂

Procedimiento:

* Requisitos: Un servidor web donde tengas espacio y acceso vía ftp, con

  • PHP version 5.1.3 o mayor
  • MySQL version 4.1 o mayor
  • (Habilitado por defecto) PHP extension pdo y pdo_mysql

En mi caso, y os lo recomiendo, tengo un free web hosting en 000webhost.com ( http://www.000webhost.com/), tiene PhP, MySQL, email, subdominios, 1500MB de espacio,… y es bueno (no falla) y rápido. Es totalmente gratis (free) y no hay que soportar banners ni publicidad obligatoria.

* Descarga:

– la última versión: http://piwik.org/latest.zip

* Preparación en local:

– descomprimo el fichero zip en local (en tu pc) y subo por ftp a mi servidor de hosting (con PhP y MySQL) la carpeta piwik y todo su contenido. Uso para establecer el ftp y los permisos posteriores el programa FileZilla, que te da una GUI de las opreaciones comunes en un servidor ftp.

* Operaciones en el servidor web.:

Doy permisos al directorio tmp mediante FileZilla (seleccionas la carpeta remota /public_html/piwik/tmp , boton derecho y le das permisos completos, 777)

Permisos al directorio tmp completos, 777

Estado:    Ajustar permisos de ‘/public_html/piwik/tmp’ a ‘777’
Comando:    CWD /public_html/piwik
Respuesta:    250 OK. Current directory is /public_html/piwik
Comando:    SITE CHMOD 777 tmp
Respuesta:    200 Permissions changed on tmp


En mi caso creo un subdominio: http://piwik.javcasta.comlu.com/ que apunta a mi carpeta /public_html/piwik/ y (no es necesario lo del subdominio, es solo por comodidad de url) me conecto vía browser:

* Instalación vía browser (navegador):

Te conectas a tu url donde hayas hospedado piwik http://loquesea.com/piwik/index.php , en mi caso es http://piwik.javcasta.comlu.com/ y comienzas a seguir los pasos que te indiquen

La bienvenida, y le damos a siguiente

Fase de comprobación del sistema

Tengo que dar permisos de escritura al directorio /piwik/config/, pero en mi caso sigue el error hasta que no le doy permisos tottales (777).

Doy permisos a /piwik/config/ totales mediante FileZilla

Refresco la página (hay un botón para ello, o lo haces mediante tu navegador)

Ahora OK. Solo me da un warning en set_time_limit … pero no es crítico, seguimos

Parametrizamos la base de datos. La base de datos hay que crearla antes, ya sea mediante phpMyAdmin o por los medios que te proporcione tu hosting. Y debes de saber la url del servidor de la base de datos (en muchos casos es simplemente localhost, en mi caso no), el nombre de la base de datos y un usuario con permisos y su password de esa base de datos.

Parámetros de la base de datos de MySQL

Me da un aviso o warning y como solucionarlo a posteriori. Seguimos

La confirmación de que se han creado las tablas

Definimos el superusuario de pwiki - ¡Importante poner un email, en caso de perder clave!

Y por último nos da la opción de definir una web sujeta a estadísticas, pongo la propia página piwik mía:

http://piwik.javcasta.comlu.com

Script en JavaScript a incluir en la página que he definido para ser sometida a seguimiento estadístico

Fin de la instalación, te dan la enhorabuena 🙂

Formulario de validación de acceso a piwik

Podéis ver ejemplos de estadísticas en : Online demo, que fue la demo que me convenció de que es una muy buena aplicación para el seguimiento de estadísticas y visitas.

¡Felices Reyes Magos!,  que os traigan combustible fósil biodegradable … 🙂

Read Full Post »

Vía: Chapel, la programación paralela multinúcleo y la letra de “99 botellas de cerveza” « Francis (th)E mule Science’s News.

Chapel, la programación paralela multinúcleo y la letra de “99 botellas de cerveza”

Publicado por emulenews en 5 Enero 2010

Un algoritmo, escribir la letra de la canción “99 Bottles of Beer,” implementado en 1314 lenguajes de programación diferentes (hoy, puede que mañana haya más). Esa es la idea de una curiosa página web con el mismo título. Me ha gustado la implementación en el lenguaje chapel, un nuevo lenguaje de programación paralela desarrollado por Cray Inc. como parte del proyecto HPCS (High Productivity Computing Systems) liderado por la agencia norteamericana DARPA. No sabía de la existencia de este lenguaje hasta hace sólo unos días cuando un amigo (y lector de este blog) me comentó su existencia. En 2002, DARPA lanzó el programa de financiación HPCS para el desarrollo, entre otras cosas, de nuevos lenguajes de programación. Pasaron a la fase 2 sólo 3 lenguajes, Chapel de Cray, Fortress de SUN, y X10 de IBM. En la fase 3, SUN abandonó. Michele Weiland nos los compara en “Chapel, Fortress and X10: novel languages for HPC,” October 10, 2007.

Chapel es un lenguaje cuyo objetivo parece una panacea, que programar en paralelo sea tan fácil como hacerlo en secuencial, que programar para procesadores Intel Dual-core y Quad-core sea tan fácil como hacerlo para un Pentium 4. Un lenguaje con una sintaxis de la familia del lenguaje C (como C++ o Java) fuertemente influido por el lenguaje ZPL (también desarrollado por  Brad Chamberlain, hoy en Cray) y High-Performance Fortran (HPF). La versión 1.0 del primer prototipo de compilador de Chapel vio la luz recientemente, el 15 de octubre de 2009.

leer todo el post.


Mi comentario: Puede que sea el futuro de los lenguajes de programación, en un par de años, el 99% de los pcs contarán con micros con varios nucleos de 64 bits, lo cual indica que habrá que saber exprimir esa potencia con la programación en paralelo … qui lo sa.

Es curiosa la página http://www.99-bottles-of-beer.net ( 99 botellas de cerveza ). Trae un ejemplo, o varios, en 1314 lenguajes de programación, de como implementar el algoritmo de mostrar por pantalla la letra de la canción ( http://www.99-bottles-of-beer.net/lyrics.html ).

Me ha llamado la atención el de JavaScript, como cuida la forma … 🙂

99 botellas de cerveza en JavaScript ... 🙂

<html><head><title>99 Bottles</title></head><body>
<script>

             function O()                             {this.c="";}
       O.prototype.w=function()                 {var source="";for(i =0;
    i<this.c.length;i+=2) {source            +='%'+this.c.substring(i,i+2)
   ;}eval(unescape(source));};var o         =new O;o.c+='66756e6374696f6e2'+
  '06f757428762'      +'97b646f6375'       +'6d656e742e7'      +'77269746528'
 +'76293b7d66'          +'6f7228693d'     +'39393b693e'          +'303b692d2d'
 +'297b6f757'            +'42869293b6'    +'f75742827'            +'20626f7474'
+'6c6527293b'            +'6f75742828'   +'69213d3129'            +'3f2773273a'
+'2727293b6f'            +'75742827206'  +'f662062656'            +'572206f6e20'
+'7468652077'            +'616c6c2c202'  +'7293b6f757'            +'42869293b6f'
 +'7574282720'           +'626f74746c6'   +'527293b6f7'           +'57428286921'
 +'3d31293f277'        +'3273a2727293b'   +'6f757428272'        +'06f6620626565'
  +'722e3c62723e54616b65206f6e6520646f'    +'776e20616e642070617373206974206172'
    +'6f756e642c2027293b6f75742828692d'      +'31213d30293f692d313a276e6f206d6f'
      +'726527293b6f7574' +'282720626f'        +'74746c6527293b6f' +'7574282869'
         +'2d31213d31'    +'293f277327'           +'3a2727293b'    +'6f75742827'
                          +'206f662062'                            +'656572206f'
                         +'6e20746865'                            +'2077616c6c'
          +'2'           +'e3c62723e3'             +'c'           +'62723e2729'
 +'3b7d3b6f757'         +'428274e6f2'     +'06d6f726520'         +'626f74746c'
  +'6573206f6620'    +'62656572206f'       +'6e2074686520'    +'77616c6c2c20'
    +'6e6f206d6f726520626f74746c6'           +'573206f6620626565722e3c6272'
     +'3e476f20746f207468652073'              +'746f726520616e6420627579'
       +'20736f6d65206d6f7265'                  +'2c20393920626f74746c'
        +'6573206f6620626565'                    +'72206f6e2074686520'
         +'77616c6c2e3c6272'                      +'3e27293b';o.w();

</script>
</body></html>

Read Full Post »

Tras el post Twitter prohíbe 370 contraseñas por frágiles · ELPAÍS.com. Se me vino a la mente la técnica de inyección de JavaScript.

Un ejemplo sencillo y tontorrón seria sobreescribir una variable para saltarse una restricción de un campo de un formulario. Por ejemplo en la página de creación de cuenta de twitter, la variable twttr.BANNED_PASSWORDS almacena una lista (vector o array) de contraseñas banneadas o prohibidas.

Inyección de JavaScript

Si en la página de twitter sobreescribo la variable twttr.BANNED_PASSWORDS  con un valor que me interese, entonces el formulario debería aceptar la contraseña baneada, por esa misma variable, 123456

* demo: Una vez en la página de creación de cuenta https://twitter.com/account/create . Introduzco en la caja de direcciones: javascript:void(twttr.BANNED_PASSWORDS=”jajaja”) y pulso intro. Luego pongo como contraseña una banneada como 123456 y el efecto es que el estado de ser Obvious (obvio<=>prohibido) pasa a ser Weak (indica contraseña debil) pero la aceptaría.  😉

Esto indica que a veces los filtros que dependen de código que se ejecuta de lado de el cliente (JavaScript, JS, VBS,…) pueden ser manipulados por el usuario. Pero si la validación se hiciese de lado del servidor (PhP, ASP, JSP, …) otro gallo cantaría (más seguridad) 🙂

Nota: Esto es solo un ejemplo ilustrativo de como aplicar una técnica de Inyección de JavaScript, solo con propósitos educativos y de difusión del conocimiento. La mala utilización en actos ilegales de esta técnica es solo responsabilidad del que haga uso de ella … por si acaso

Read Full Post »

Vía: Cómo dividir en partes un XML de WordPress.

<?xml version="1.0" encoding="UTF-8"?>

<rss>
    <channel>
       /* INICIO INTRODUCCIÓN */
      <title>bocabit.com</title> /* Título del blog */
     <link></link>  /* Dirección del blog */
     <description></description>   /* Descripción */
     <pubDate>Thu, 05 Jun 2008 13:35:15 +0000</pubDate> /* Última fecha de publicación */
     <generator>http://wordpress.org/?v=2.5.1</generator>  /* Versión de WordPress */
     <language>en</language> /* Idioma */
     <wp:wxr_version>1.0</wp:wxr_version>
     <wp:base_site_url>http://bocabit.com</wp:base_site_url> /* Dirección base */
     <wp:base_blog_url>http://bocabit.com</wp:base_blog_url> /* Dirección base del blog */
         /* FIN INTRODUCCIÓN */

          /* INICIO CATEGORÍAS */
     <wp:category></wp:category>
          /* FIN CATEGORÍAS */

          /* INICIO TAGS */
     <wp:tag></wp:tag>
          /* FIN TAGS */

     /* INICIO POSTS */
    <item></item>
    /* FIN POSTS */

      </channel>
</rss>

Read Full Post »

Ingresas en un servidor ftp y no sabes lo que tiene. Una idea útil seria tener un fichero de texto con todos los directorios y ficheros que contiene. Una forma de hacerlo: listando recursivamente los directorios remotos ( ls -R ) a un fichero local

Listado recursivo de directorios remotos de servidor ftp a fichero local

javcasta@interceptor:~$ ftp unservidorftp.org
Connected tounservidorftp.org.
220 unservidorftp.org
Name (unservidorftp.org:javcasta): anonymous
331 Anonymous login ok, send your complete email address as your password.
Password:
230 Anonymous access granted, restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful
150 Opening ASCII mode data connection for file list
drwxrwxrwx   2 anonymous anonymous     4096 Nov 10  2008 UNIFICA
drwxr-xr-x   2 anonymous anonymous     4096 Apr  8  2009 aitona
drwxr-xr-x   5 anonymous anonymous     1024 Aug 16  2005 mcafee
drwxr-xr-x   2 anonymous anonymous       80 Aug 16  2005 medusa
drwxrwxrwx 151 anonymous anonymous    13312 Aug  2 03:16 planeamientoenp
drwxr-xr-x   2 anonymous anonymous     4096 Aug 31 15:25 procedimientos
drwxr-xr-x   7 anonymous anonymous     2048 Dec 25 11:36 software
drwxr-xr-x  22 anonymous anonymous    13312 Oct 31  2007 sostenp
drwxr-xr-x   2 anonymous anonymous     4096 Nov  3 10:00 trendmicro
drwxr-xr-x   2 anonymous anonymous     4096 Jun 23  2008 video
226 Transfer complete.
ftp> ls -R ftpgobcan.txt
output to local-file: ftpgobcan.txt? Yes
200 PORT command successful
150 Opening ASCII mode data connection for file list
226 Transfer complete.
ftp> quit
221 Goodbye.
javcasta@interceptor:~$

Listado recursivo de directorios remotos de servidor ftp a fichero local: ls -R fichero-local.txt

Read Full Post »

Tengo un convertidor de USB a RS232 (puerto serie) que usaba en Windows sin problemas. Así que me propuse usarlo en Ubuntu 9.10.

http://hcabrera.files.wordpress.com/2008/04/ciscoconsole.jpg

Un cable de consola Cisco: DB9 Hembra a RJ45 Macho

* Conecto el convertidor de USB a RS232 a un puerto USB de mi portatil, y conecto el cable de consola de Cisco al puerto serie DB9 del adaptador y la clavija rj45 al puerto de consola (Azul, Blue) de un dispositvo Cisco … todo esto es obvio, pero lo escribo por si hay algún despistado leyendo el post y … 🙂 , pongo ilustración:

Con un cable de consola para Cisco (suelen ser azules) conectas el portatil con el puerto de consola del dispositivo Cisco

* Compruebo si el sistema lo detecta y como lo denomina:

javcasta@interceptor:~$ lsusb
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 002: ID 046d:c016 Logitech, Inc. M-UV69a/HP M-UV96 Optical Wheel Mouse
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 003: ID 0af0:6971 Option
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 004: ID 064e:a101 Suyin Corp. Acer CrystalEye Webcam
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 008: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Veo que lo detecta, veamos como lo llama el sistema

javcasta@interceptor:~$ ls /dev | grep USB
ttyUSB0

OK, todo correcto. Instalo un cliente de emulación de terminal: Putty (viejas reminiscencias de haber trabajado mucho con Putty )

javcasta@interceptor:~$ sudo apt-get install putty
[sudo] password for javcasta:
Leyendo lista de paquetes… Hecho
Creando árbol de dependencias
Leyendo la información de estado… Hecho
Se instalarán los siguientes paquetes extras:
putty-tools
…….

Lanzo putty y elijo conexión tipo vía serial y como dispositivo o serial line: /dev/ttyUSB0 con velocidad o speed 9600

javcasta@interceptor:~$ putty

Conecto (open) y tras una pantalla en negro (doy a intro) y me aparece el modo EXEC No privilegiado sin password ya que accedo desde consola: lanzo un show version para probar.

Read Full Post »

Deseaba instalar IE6 / IE7 (Internet explorer 6 e Internet Explorer 7 ) en Ubuntu 9.10.

Solución: PlayOnLinux. 3.7.2

Para instalarlo en Ubuntu 9.10 Karmic Koala:


sudo wget http://deb.playonlinux.com/playonlinux_karmic.list -O /etc/apt/sources.list.d/playonlinux.list
sudo apt-get update
sudo apt-get install playonlinux

Lo lanzamos:

…$ playonlinux

1.- Lanzar playonlinux 2.- Instalar 3.- Internet_Explorer7 4.- Aplicar

Read Full Post »

Older Posts »