Desarrollo Web

Restful Webservice con Netbeans

Primero debemos crear un proyecto web nuevo:
Screenshot from 2013-04-10 15:59:49

Luego se da Next y en la siguiente pantalla:

Screenshot from 2013-04-10 16:00:49

Luego creamos una clase donde agregaremos las anotaciones necesarias para obtener el restful webservice.

package rest;

import javax.ws.rs.Path;
import javax.ws.rs.Produces;

@Path("/rest")
@Produces({"application/json"})
public class RestService {

}

Netbeans mostrará un icono que nos para que nos ayude a definir cómo se implementará el restful webservice

Screenshot from 2013-04-10 16:10:03

Luego seleccionaremos :

Screenshot from 2013-04-10 16:12:15

Luego agregaremos un método para probar, solo mostraremos un mensaje:

package rest;

import java.util.List;
import java.util.ArrayList;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

@Path("/rest")
@Produces({"application/json"})
public class RestService {

    @GET
    @Path("/")
    public List getRespuesta(){
        List respuesta =  new ArrayList();
        respuesta.add("nombre");
        respuesta.add("apellido");
        return respuesta;
    }
}

Y luego lo probamos con el addon para Firefox Restclient:

Screenshot from 2013-04-10 16:23:26

Publicado por .
linux

Compilar VMWare tras actualizar Kernel en Linux

Hace poco realicé una actualización de rutina en mi Fedora, sin percatarme que dentro de las lista de actualizaciones se encontraba el kernel. Todo funcionó con normalidad, el único problema fue que no podía correr el VMWare.  Cada vez que quería ejecutarlo, me mostraba una ventana como la siguiente:

vmware kernel module updater

Lo primero que hay que hacer es instalar los nuevos headers:

sudo yum install linux-headers kernel-devel
sudo yum groupinstall "Development Tools" "Development Libraries"

Luego es necesario realizar el siguiente comando:

cp /usr/include/linux/version.h /lib/modules/kernel-version/build/include/linux/
Obviamente, debemos reemplazar «kernel-version» con la versión del kernel que tenemos, por ejemplo en mi pc yo tuve que hacer esto:

sudo  cp /usr/include/linux/version.h /lib/modules/3.8.3-103.fc17.x86_64/build/include/linux/

luego en su terminal, ejecuten:

vmware

A partir de eso aparecerá una ventana:

vmware kernel module updater dialog

Luego:

vmware kernel module updater

Lo esperado es que todos los módulos sean recompilados. En caso ocurra un error ( en mi caso fue porque yo tenia una versión del kernel 3.8.x ), deben aplicar un patch:

Pueden descargarlo de aquí:

Para aplicar este patch deben realizar los siguientes comandos:

cd /usr/lib/vmware/modules/source
tar -xf vmci.tar
cd vmci-only
patch -p1 < 'ruta/del/archivo/patch'
cd ..
tar -cf vmci.tar vmci-only/

Luego ejecutan otra vez el vmware para que se recompilen los módulos nuevamente.

Publicado por .
Desarrollo Web

Obtener extension de archivo usando PHP

Existen muchas manersa para obtener la extensión de un archivo PHP . He buscado mucho en internet, y existe una forma que se basa en el nombre del archivo.

Extensión en base al nombre del archivo

Una de las manera más comunes es buscando el último punto y tomar el resto como extensión.

Por ejemplo:

Miarchivo.23.12.2012.jpg

Si utizamos la función strrchr(), podriamos hacer algo como esto:


strrchr('Miarchivo.23.12.2012.jpg', '.');

lo que nos resultaria: «.jpg»

A primera vista, resolvimos el problema. Sin embargo, esto puede ser algo peligroso ya que es posible que tengamos que extraer el nombre un archivo que no tiene extensión. Por ejemplo:

strrchr('Miarchivo.23.12.2012', '.');

Nos resultaría: «.2012» que obviamente no tiene sentido.

Extensión en base al tipo de archivo

Para este caso podemos usar la extensión pathinfo()  (http://php.net/manual/es/function.pathinfo.php)

la cual podríamos usar de la siguiente manera:

$ext = pathinfo($filename, PATHINFO_EXTENSION);

Fuente: http://stackoverflow.com/questions/173868/how-to-extract-a-file-extension-in-php

Publicado por .
linux

Empaquetar archivos a partir de una fecha en Linux

Hace poco tenía que hacer una migración de un hosting a otro más grande, pero tuve la mala suerte de ver que en una carpeta donde se subían las imágenes de usuario, esta tenía como 2GB de información, de los cuales solo eran necesarios tener los archivos subidos a partir del mes anterior.

Por ello tuve que ingresar por consola y realizar este comando:

 find  -mtime -60 -type f|xargs tar cvf MIARCHIVO.tar

en donde el parámetro -mtime -60 indica el número de días hacía atrás desde el que se deberá tomar en cuenta para conformar la lista de archivos a comprimir.

Si desean, en vez de únicamente empaquetarlo, también pueden comprimirlo con zip:

 find . -type f -mtime -120 | zip -@ MIARCHIVO.zip

En caso necesiten comprimir una lista de archivos entre dos fechas, tendrían que agregar otro parámetro -mtime:

 find . -type f -mtime -10 -mtime +5 | zip -@ MIARCHIVO.zip

 


en donde el primer -mtime -10 significa que debe empezar a considerar los archivos que tiene como fecha de creación desde hace 10 días
y el segundo -mtime +5 indica que solo tomará en cuenta aquellos que hayan sido creado hasta hace cinco días.
entonces ambos juntos significan que se tome en consideracion solo aquellos creados entre hace 10 días hasta hace 5 días.

Publicado por .
Desarrollo Web, linux

Exportar archivos de repositorio GIT

A veces necesitamos compartir solo nuestro código por diversos motivos, ya sea para subirlos a producción o por cualquier otra razón.
En todo vaso, existe el comando git archive que nos facilitará esta tarea:

La sintaxis es así:

git archive nombre_del_branch | tar -x -C /ruta/completa/destino

Pero si quieren comprimirla, también se puede hacerlo directamente con esta sintaxis:

git archive master | bzip2 >source-tree.tar.bz2

o en formato zip:

git archive --format zip --output /ruta/completa/destino/nombrearchivo.zip nombre_del_branch
Publicado por .

Siguenos en Facebook