viernes, 15 de febrero de 2013

Comprimir un documento de Microsoft Word con imágenes

¿Habéis tenido que enviar un documento de Word con imágenes demasiado pesado por correo electrónico? Hace poco un compañero (gracias Enrique) me comentó una opción muy interesante de Word: la posibilidad de comprimir imágenes.

En la mayor parte de los casos incluimos imágenes grandes en Word y luego modificamos el tamaño para reducirlo hasta el que deseamos. El problema es que la imagen sigue teniendo un tamaño más grande del necesario (y por tanto ocupa más).

El proceso de optimización o compresión de esas imágenes es muy sencillo, os mostramos un ejemplo en Word 2010. Seleccionamos cualquier imagen del documento y pulsamos el menú "Herramientas de Imagen" > "Formato" y seleccionamos "Comprimir imágenes"



Se abre un cuadro de opciones en las que podemos elegir entre comprimir ésta o todas las imágenes y la calidad de la compresión (en función de su destino: para imprimir, enviar por correo...). En nuestro caso elegimos usar la resolución del documento.



Y eso es todo, el documento ocupará sensiblemente menos.

jueves, 14 de febrero de 2013

Joomla: crear un campo personalizado en el registro de usuarios

¿Necesitáis crear un campo nuevo para vuestros usuarios? Vamos a explicar cómo añadir campos en el registro de usuarios de Joomla 2.5. Dividiremos el proceso en dos partes:

1) Agregar el campo en el registro

Modificaremos el archivo components/com_users/models/forms/registration.xml para añadir los campos que queramos. Si os fijáis en la estructura del resto de registros podemos utilizarlos como guía:

Como podéis ver en la imagen, hemos creado los campos encuadrados en rojo. El primero es un campo entero para modelar un checkbox y el segundo es un campo de texto con máximo 50 caracteres. El atributo name debe coincidir con el nombre del campo de la base de datos que lo alojará (y el tipo debe ser compatible).
 
Ahora vamos a hacer los cambios en la base de datos. Nosotros utilizamos PhpMyAdmin para acceder a la misma. Localizad la tabla prefijo_users (donde prefijo será aquel que hayáis elegido en vuestra instalación de Joomla). Al final de la tabla vamos a añadir dos campos:
 
 
Como véis hemos llamado a los campos con el mismo nombre que pusimos en el atributo name del xml y el tipo de dato es int(1) para el entero y varchar(50) para el campo de texto.
 
Si accedéis al formulario de registro de Joomla podéis ver los nuevos campos:
 
 
Como podéis ver ya tenemos los campos disponibles en el registro de usuarios. La gestión de estos campos ya podremos hacerla desde nuestros propios módulos o componentes.


Transponer tablas en Microsoft Excel

¿Necesitáis transponer una tabla en Excel (intercambiar filas por columnas)? En realidad se trata de un proceso más sencillo del que podáis imaginar en un principio. Es un proceso muy sencillo:

  1. Selecciona la tabla que quieres transponer y cópiala.
  2. Sobre una celda distinta haz clic con el botón derecho del ratón y selecciona la opción marcada en rojo en la imagen (en las opciones de pegado especial):

Puedes ver el resultado en la siguiente imagen:



Como ves es un proceso mucho más sencillo de lo que pueda parecer en un principio (y nos ahorrará mucho trabajo en tablas grandes).

lunes, 11 de febrero de 2013

Colores en el código de tu blog

Si publicas código de programación en tu blog seguramente habrás buscado la forma de formatearlo de modo que sea más legible (coloreándolo, poniendo números de líneas...). Hoy os presentamos una serie de CSS desarrollados por Alex Gorbachev para facilitarnos el trabajo.

Se basa en una serie de CSS personalizados para cada lenguaje de programación soportado. Existen CSS para una serie de lenguajes de programación más frecuentes (Java, Phyton, XML...).

Para ello tenemos que editar la plantilla de nuestro blog: seleccionamos el apartado "Plantilla" y pulsamos sobre "Editar HTML"


Se abre el código HTML de la plantilla e incluiremos el siguiente código antes de la etiqueta <head>:

<link href="http://alexgorbatchev.com/pub/sh/current/styles/shCore.css" rel="stylesheet" type="text/css"/>
<link href="http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css" rel="stylesheet" type="text/css"/>
<script src="http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js" type="text/javascript"/>
<script src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js" type="text/javascript"/>
<script src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js" type="text/javascript"/>
<script language="javascript">SyntaxHighlighter.config.bloggerMode = true;SyntaxHighlighter.all();</script>


Una vez modificada la plantilla pulsamos sobre "Guardar plantilla" y luego sobre "Cerrar". Para utilizar el código de color en una entrada de tu blog debes utilizar las etiquetas <pre class="brush:estilo"> y </pre> delimitando el código que quieras marcar ("estilo" corresponde a uno de los estilos importados en la cabecara, en nuestro caso java, xml, html, etc...). Debemos importar el css adecuado para el lenguaje de programación que queramos utilizar, pero no incluyamos indiscriminadamente todas las librerías: se cargarán en cada página de nuestro blog (se utilice o no). Podemos encontrar el listado de CSS y de estilos (brush) en el siguiente enlace:

http://alexgorbatchev.com/SyntaxHighlighter/manual/brushes/

Vamos a presentar un ejemplo con Java. Dentro de un artículo nos posicionamos en la edición "HTML" y escribimos:



El aspecto de ese código en la previsualización será el siguiente:

Probamos con Java:
int i=15;
System.out.println("Numero " + i);

Esperamos que os resulte útil.

domingo, 10 de febrero de 2013

Fichero log: redirigir la salida de Java a un fichero

Hoy vamos a incluir cómo hacer un método que redirija la salida de Java a archivo para hacer un archivo log. El proceso es tan sencillo como utilizar dos métodos de la clase System: setErr y setOut, pasando como parámetro un objeto de tipo PrintStream.

El método propuesto es el siguiente:

public static void standardIO2File(String fileName){

        if(fileName.equals("")){//Si viene vacío usamos este por defecto

            fileName="C:\\javalog.txt";

        }

        try {

            //Creamos un printstream sobre el archivo permitiendo añadir al

            //final para no sobreescribir.

            PrintStream ps = new PrintStream(new BufferedOutputStream(

                    new FileOutputStream(new File(fileName),true)),true);

            //Redirigimos entrada y salida estandar

            System.setOut(ps);

            System.setErr(ps);

        } catch (FileNotFoundException ex) {

            System.err.println("Se ha producido una excepción FileNotFoundException");

        }

    }

Como veis el método es muy sencillo: pasamos como parámetro un String con el nombre (y ruta) del fichero y creamos sobre él un PrintStream que pasaremos como argumento a los métodos setOut y setErr. Estos métodos redirigen al fichero la salida estándar y la de error. Podemos codificar el método con dos argumentos para redirigir la salida estándar a un fichero y la de error a otro, eso queda a gusto del consumidor.

JailBreak Untethered para iOS 6.0, 6.0.1, 6.0.2 y 6.1

Por fin ha llegado, se ha hecho esperar pero ya está listo el Jailbreak Untethered para iOS 6 en todos los dispositivos.

El equipo de evad3rs ha desarrollado una herramienta de Jailbreak sencilla e intuitiva que han llamado evasi0n.

Tenéis los enlaces disponibles en la página del grupo (http://evasi0n.com/):


La lista de dispositivos soportados es la siguiente:

  • iPhone 5
  • iPhone 4S
  • iPhone 4
  • iPhone 3GS
  • iPad 4
  • iPad 3
  • iPad 2
  • iPad mini
  • iPod touch 5
  • iPod touch 4
  • Apple TV 2 (except third-generation)

  • Recordad que es un proceso no autorizado por Apple, seréis los responsables de los problemas que puedan surgir en el dispositivo.

    Concept IdeaCentre de Conceptronic

    Recientemente he encontrado esta idea conceptual de Conceptronic, se me cae la baba sólo de imaginar posibilidades!


    Se trata de un tablet de 27 pulgadas que puede utilizarse como "mesa multimedia"

     
     
    ¿Qué os parece? Si queréis saber algo más podéis consultar la página de Conceptronic en el siguiente enlace:

    viernes, 8 de febrero de 2013

    Argumentos en línea de comandos con NetBeans

    Si programáis en Java es bastante probable que utilicéis un IDE integrado como Eclipse o NetBeans. Yo utilizo este último y hace poco tuve que trastear con él para encontrar algo trivial: cómo pasarle parámetros en línea de comandos a un proyecto.

    En realidad se trata de un proceso muy sencillo. En primer lugar creamos una clase sencillita de Java para ilustrar el ejemplo. Se trata de una clase que imprime el primer argumento recibido en línea de comando por pantalla:


    Si ejecutamos el proyecto nos aparecerá en blanco y el mensaje "Generación Correcta (...)". Si generamos el .jar podemos ejecutarlo desde la consola del sistema operativo y pasar argumentos con el comando "java -jar nombreArchivo.jar [argumentos]".

    Si queremos ejecutarlo desde NetBeans con argumentos sólo tenemos que abrir el menú contextual (botón derecho del ratón) sobre el proyecto > Establecer la Configuración > Personalizar:


    Se abre un diálogo modal con el campo "Argumentos", el cual podemos rellenar como si se tratara de la línea de comandos.



    Pulsamos aceptar y cuando ejecutamos el proyecto ya podemos ver la salida del mismo:


    Apple trabaja en pantallas que integran carga por energía solar

    Muchos medios de comunicación se han hecho eco de la noticia que publica Europa Press esta mañana: "Apple trabaja en pantallas que integran carga por energís solar".

    Al parecer Apple ha registrado en la oficina de patentes de EEUU unos paneles solares diseñados para iPhone, iPad e iPod que pueden ser incluidos directamente en la pantalla táctil del dispositivo.



    La patente data del 2008 lo que indica que la marca de la manzana lleva tiempo madurando la idea de integrar esta tecnología en sus dispositivos móviles. De ser cierto aumentaría de forma considerable la duración de la batería del dispositivo y la portabilidad del mismo (verdadero talón de aquiles de la mayoría de dispositivos móviles modernos), además de proveer de una energía mucho más limpia y sostenible al aparato.

    En cualquier caso la existencia de la patente no garantiza su incorporación a sus productos, aunque esperamos que sea factible!

    (Enlace a la patente)

    Recomendaciones de Alcasoft