lunes, 21 de noviembre de 2011

Website Builder en el cpanel, una herramienta más importante de lo que parece

Valencia, 21/11/2011 Gatsu

Llevo un mes más relajado que de normal, para empezar porque ya no me levanto todos los días a las 7 de la mañana, esta vez a las 8 y por culpa de unas obras que aun les queda un año de duración, mi cabeza empieza a plantear tapiar la ventana.

En fin, en un hosting gratuito que tengo (Webhost) tiene un cpanel muy interesante para no pagar nada, y una de sus herramientas interesantes es el Website Builder (ahora hay uno nuevo, pero no se si es por mi internet que me ha ido mal o que, pero no ha llegado a cargar en condiciones). Básicamente puedes crear páginas web de forma sencilla y eficiente, evidentemente está muy limitado frente a otros CMS como Wordpress o Joomla, pero si el fin es crear una web sencilla, puede ser muy eficiente, además no utiliza base de datos, lo cual tiene la ventaja de que todos los archivos generados existen, pero el inconveniente de que sobrecarga el hosting (aunque mientras que no se utilice para visualizar videos pesados todo irá bien).

Si disponeis de un hosting con esta herramienta os incito a que lo probeis y comenteis vuestra experiencia.

miércoles, 26 de octubre de 2011

Convertir jar a exe con jstart32

Valencia, 26/10/2011

Este es un post rápido ya que el conocimiento adquirido ha sido rápido. Hace unos minutos en mi trabajo (sí, aún trabajo) un compañero necesitaba convertir un archivo jar en un exe. Dadas ciertas limitaciones de su pc, y que otro programa no reconocia el Jsmooth, hemos acabado recurriendo al truco más viejo que hay, buscar en Google "convertir jar en exe gratis" y en la primera página hemos encontrado la respuesta: jstart32.

Este programa es muy sencillo de utilizar, aunque como toda aplicación java, necesitaremos el JRE, y por si acaso la JVM. Podemos descargarnos jstart32 desde SourceForge a través de este enlace. Su uso es el siguiente:
  • Modificamos el texto que hay en el apartado Java Command por "java -jar NombreDeTuAplicacion.jar".
  • Modificamos el icono a menos que queramos el del propio jstart32.
  • Dejamos en el mismo directorio los 2 ejecutables que te descargas de jstart32 y el archivo jar que quieres convertir a exe.

He de decir que este programa es del 2003, y aun así aplicaciones con java 1.6 ha funcionado perfectamente.

viernes, 14 de octubre de 2011

Wannataxi, un servicio para solicitar un taxi desde tu móvil

Valencia, 14/10/2011 Gatsu

Cada día me convierto un poco más en un tio adicto a las noticias relacionadas con mi móvil, Android, y diversas frikadas desde Appy Geek. Pues bien, una noticia me ha llamado la atención, y es sobre el aplicación wannataxi, que hace poco empezó a extenderse por España (por ahora Madrid, Barcelona, Valencia y alguna capital más tiene taxis utilizado dicho programa).


Básicamente se trata de una aplicación para android (que requiere conexión a internet, por supuesto) con la que puedes pedir un taxi desde estas 3 opciones:
  • Enviar coordenadas GPS de tu ubicación (tu móvil android debe tener GPS).
  • Enviar la dirección como si fuese un sms.
  • Enviar la dirección desde un listado de direcciones favoritas.
Según he leido, tu solicitas un taxi, y cuando hay uno cerca y va hacia ti, en Google Maps te aparece el taxi moviéndose en tiempo real hacia tu ubicación, además de darte datos como el número de taxi o el taxista que te recogerá.

Lógicamente te tienes que registrar en el servicio de wannataxi desde su página web, o bien desde la aplicación descargada.
Francamente me parece muy útil, ya que nunca se sabe cuando puedes necesitar un taxi, y si te puedes instalar la aplicación, es porque tu móvil tiene internet y GPS seguro, así que no da dificultades.

Ah, se me olvidaba, también está la aplicación de wannataxi para los taxistas, con lo que nuestros amigos taxistas no tendrán complicaciones para ganar algo más de dinero.

lunes, 26 de septiembre de 2011

Backup de mysql con php

Valencia, 26/09/2011 Gatsu

Hay algunos hostings que generan backups de ficheros y bases de datos de forma automática, otros no, como es mi caso, y aunque no me he puesto a buscar como hacer un backup de los archivos de mi hosting (no creo que sea complicado) si que he encontrado la manera de hacer copias de seguridad de mi base de datos mysql con un script de php. Este script lo he copiado de "foros del web" en donde explica bastante bien como generar el backup, y además descargarlo a tu escritorio o donde quieras, incluso puedes comprimirlo a bzip2 o gzip.

Este post no tendría ninguna utilidad si se quedase en ello, y yo he modificado el script (a parte de por un error que me daba) para que me haga la copia de seguridad dentro del hosting. ¿Para qué? Porque utilizar un cron job que, por ejemplo, se ejecute una vez cada semana y te guarde el archivo sql en una carpeta protegida del hosting lo veo una buena idea (de carpetas protegidas estoy mirándolo, he visto cosas por ahí pero aún no me he puesto con ello).

A partir del código de "foros del web" comentar la parte de "Envío" y sustituirla por:

$abrirArchivo = fopen("backupDB/$nombre", "w");
fwrite($abrirArchivo, $dump);
fclose($abrirArchivo);
Recomiendo añadir a la variable nombre la fecha y hora del servidor para que no machaque el mismo archivo una y otra vez:
$nombre = date("d-m-Y")."-".date("h:m:s A")."-dump.sql"; 
Y por último, sustituir los comentarios en "#" por "--" y los EOT por comillas dobles, así me he generado una copia de seguridad y la he restaurado en la base de datos, con resultados favorables.

ACTUALIZACIÓN:

Comprobado, proteger una carpeta con contraseña y hacer que algún fragmento de código quiera recurrir a dicha carpeta, no podrá.

martes, 30 de agosto de 2011

Llamar a una función PHP desde Jquery

Valencia, 30/08/2011 Gatsu

Buenas noches lectores nocturnos en cuyos pueblos no hay fiesta estos días (en el mio se acaban en las próximas horas). Pese a que soy un poco negado en el mundo de javascript y su framework Jquery, la evolución de las tecnologías me hace ver que tengo que esforzarme en entenderlo si quiero seguir aprendiendo cosas. Esta noche os voy a explicar como me las he apañado para llamar a funciones php desde jquery y tratar con los datos devueltos.
Antes que nada, no es técnicamente llamar a una función y punto, en realidad llamo a un archivo .php y desde ello ya me encargo. Comienzo pues:

Lo primero de todo, cargamos Jquery en la página con:
< script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript" >< / script >
Después ya mejor copiamos este fragmento de código y si no lo entendeis no pasa nada (yo a duras penas lo entiendo), simplemente os lo creéis:

function llamadaAjax(){
    $.ajax({
        type: "POST",
        url: "class/usuarioAjax.php",
        data: {tarea: 'comprobarUsuario', nomUsuario : $('#txtRegistroNombreUsuario').val()},
        success: function( respuesta ){
            if (respuesta == 'Usuario ya existe')
                alert("Usuario existe");
            else
                alert("Usuario no existe");
     }});
}

<input type="submit" value="Comprobar usuario" onclick="javascript:llamadaAjax()" />

Cuando en Jquery hablamos de "$.ajax" ya nos ahorramos todo el lio de javascript de llamar a los objetos ajax en función del explorador y otras cosas, luego especificamos si el tipo es POST (las variables no se ven en la barra de direcciones) o GET (se ven), aunque como en este caso es una llamada asíncrona, a la barra del navegador no le repercute, pero yo soy más de usar POST a menos que me interese posicionar. El campo url simplemente es para indicar donde está el archivo php a ejecutar, y data es para pasarle las variables que recibirá ese archivo por POST o GET. Si la ejecución fue bien se lanzará el success, sino tendriamos que añadir el apartado "error" o bien arreglarlo hasta que se lance el success. Una vez lanzado el success, ya tenemos en el parámetro de su función el valor devuelto de la llamada al archivo. Obviamente la parte código no acaba aquí, falta el archivo .php:
< ? php
include 'usuario.php';
$usuario = new usuario();
switch($_POST["tarea"]){
case 'comprobarUsuario':
echo $usuario -> comprobarUsuarioExistente ($_POST["nomUsuario"]);
break;
case 'crearUsuario':
echo $usuario -> crearUsuario($_POST["nomUsuario"], $_POST["correo"], $_POST["password"]);
break;
}
? >
Os explico, como estoy haciéndome en una web todos los métodos en clases, no quería que por el ajax mezclase cosas, así que me he creado este archivo intermedio que se dedica a llamar ya a la clase que toca. Fijaros en que utilizo la variable "tarea" que envío desde el código jquery para diferenciar que fragmento de código debe ejecutarse, y la última línea que se leerá antes de volver contiene un "echo", el valor de dicho echo es lo que recuperas en jquery y va como parámetro a success.

Espero que a más de uno le solvente esas dudas místicas de como llamar a funciones de servidor mientras está ejecutándose el código en cliente, si tenéis alguna duda comentad

lunes, 18 de julio de 2011

Font-face: carga tu propia fuente tipográfica con CSS

Valencia, 18/07/2011 Gatsu

En el larguísimo camino que me he embarcado junto con otras personas hacia la creación de una web, nos hemos topado con un caso peculiar, para ser más originales, queríamos usar una tipografía de fuente distinta, por supuesto gratuita, pero claro, si no la tiene una persona instalada en su pc, de poco sirve, y mencionar que los usuarios se la descargasen era una idea loca, así que indagando encontré que con CSS3 ya se puede cargar un archivo de fuente tipográfica que esté alojado en el servidor. Para hacer esto utilizaremos el método de CSS @font-face.

El código es el siguiente:

@font-face {
 font-family: miFuente; /* requerido */
 src: source;                        /* requerido */
 font-weight: weight;                /* opcional */
 font-style: style;                /* opcional */
}

En font-family ponemos el nombre que le vamos a dar a la fuente, en src la ruta donde se encuentra el archivo ttf, eot... y los atributos font-weight y font-style son opcionales y son para si queremos negrita, cursiva, etc...
Luego simplemente en donde queramos poner el estilo de letra la fuente personalizada ponemos la propiedad "font-family: miFuente" y listo.

Si solo fuese eso sería demasiado fácil, imagino que a estas alturas ya sabréis que hay distintos navegadores, lo que implica que la compatibilidad con archivos de tipografía de fuente no es la misma en todos, por ejemplo Internet Explorer solo acepta la extensión .eot, mientras que Firefox, Chrome, Opera... menos Iphone, todos soportan .ttf, así que no es buena idea hacer una web en donde según el explorador se vea de una manera u otra porque no cargue, con lo que yo recomiendo hacerlo para IE y para el resto de navegadores. Para facilitar las cosas, primero os pongo esta imagen de que navegadores soportan que archivos


Lo más fácil es que os encontréis fuentes en .ttf, en ese caso utilizad esta web para convertirla a .eot (yo personalmente lo he probado y funciona): kirsle.net

Ahora solo queda la parte del código:

@font-face
{
 font-family: 'miFuenteIE';
 src: url('fuenteIE.eot');
}

@font-face
{
 font-family: 'miFuente';
 src: url('fuente.ttf');
}

body, a
{
 font-family:miFuente, miFuenteIE;
}

Con este código os cubrís las espaldas ante imprevistos por navegadores. Como veis creo 2 "@font-face", no pasa nada, funciona bien, de hecho ví por ahí que en un font-face podías poner varios src, yo no he querido complicarme la vida y lo he dejado más amigable ante el entendimiento propio por si en 2 meses tengo que editar código y me encuentro con éste

martes, 12 de julio de 2011

Aprendiendo a utilizar Cron Job

En un proyecto que tengo con unos colegas de la uni, me he visto ante una duda a la cual mis conocimientos de programador no hayaban respuesta, ¿cómo hacer para que a las 12 de la noche se actualice un campo de la base de datos?. Buscando por internet leo "Cron Job", así que indago sobre ello y milagrosamente descubro que es lo que necesito (bueno, y más).

Cron Job es un servicio de los servidores en Linux (para Windows está el "Programador de Tareas") que ejecuta en un momento, o varios, determinado por el usuario un script en PHP (es decir un archivo .php). Viene muy bien cuando tienes que ejecutar alguna modificación diaria de la base de datos, como actualizar o borrar registros, aunque se le podría dar mas usos (los que php permita).


El pantallazo corresponde al panel del Cron Job que tengo en mi servidor de pruebas, puede que a vosotros os salga algo distinto, pero la lógica es la misma, tienes que colocar la ruta donde se encuentra el archivo .php, y luego ya puedes configurar cuando quieres que se ejecute, si diariamente, semanalmente, cada hora o cuando sea, por ejemplo yo he programado un Cron Job con la misma configuración que sale en la imagen, eso significa que se ejecutará todos los días de todas las semanas de todos los meses a las 00:00, es decir, a media noche.

El servicio de Cron Job es esto, a partir de ahí está el script que cada uno le meta, yo esta noche comprobaré si mi script funciona.