Agregar un editor WYSIWYG a un portlet

Interesante nota de Erik Andersson en el site de Liferay donde explica como agregar un editor WYSIWYG a un portlet propio, y como se puede personalizar cambiando las barras de herramientas existentes o creando las propias.

 

Publicado en desarrollo, Diseño, General | Etiquetado , , | Deja un comentario

Comprimir CSS y JavaScript

YUI Compressor es una herramienta que permite la reducción del tamaño de archivos Javascript y CSS permitiendo una optimización del tiempo de transferencia entre el servidor web y el browser.

Los archivos Javascript son comprimidos eliminando comentarios y espacios en blanco, como asi tambien ofuscando variables locales utilizando nombres cortos. Los archivos CSS son comprimidos haciendo uso de expresiones regulares basadas en CSS minifier.

Instalación de YUI Compressor

sudo aptitude install yui-compressor

Comprimir y Obfuscar Javascript

cat *.js > original.js
yui-compressor -type js -o compressed.js original.js

Comprimir CSS

cat *.css > original.css
yui-compressor -type css -o compressed.css original.css

Utilizar YUI Compress con ANT

<path id="yuicompressor.classpath">
   <fileset dir="${yuicompressor.dir}">
         <include name="**/yuicompressor-2.2.5.jar"/>
         <include name="**/YUIAnt.jar"/>
         <!– include name="**/rhino*.jar"/ –>
   </fileset>
</path> 
 
<target name="js.compress">
    <taskdef name="yuicompress" classname="com.yahoo.platform.yui.compressor.YUICompressTask">
       <classpath>
          <path refid="yuicompressor.classpath"/>
       </classpath>
    </taskdef>
 
    <yuicompress warn="false" munge="yes" preserveallsemicolons="true" outputfolder="${js-min.dir}" >
        <fileset dir="${js.dir}" >
            <include name="javascript/*.js" />
          </fileset>
      </yuicompress>
</target>

Utilizar YUI Compress con Maven

<project>
...
  <build>
    <plugins>
...
      <plugin>
        <groupId>net.alchim31.maven</groupId>
        <artifactId>yuicompressor-maven-plugin</artifactId>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>compress</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
            <failOnWarning>true</failOnWarning>
            <nosuffix>true</nosuffix>
             <force>true</force>
             <aggregations>
                 <aggregation>
                      <!-- Elimina los archivos declarado en agregations (default: false) -->
                      <removeIncluded>false</removeIncluded>
 
                      <!-- Inserta una linea despues de concatenar los archivos (default: false) -->
                      <insertNewLine>false</insertNewLine>
 
                      <!-- Es el archivo generado a partir de comprimir cada JS -->
                      <output>${project.basedir}/${webcontent.dir}/js/compressed.js</output>
 
                      <!-- Los archivos JS que deben comprimirse -->
                      <includes>                
                          <include>javascript/*.js</include>
                      </includes>
 
                      <!-- Los archivos JS que deben omitirse -->
                      <excludes>
	                 <exclude>...</exclude>
                      </excludes>
                 </aggregation>
             </aggregations>
          </configuration>
      </plugin>
...
    </plugins>
  </build>
...
</project>
Publicado en General | Etiquetado , , , , | Deja un comentario

Sentencia: try-with-resource (Java 7)

Los resources son objetos que deber ser cerrados despues que se terminaron de utilizar. Pomemos mencionar a InputStream o OutputStream como ejemplos de resources.

Para cerrar un InputStream debemos escribir el siguiente código:

InputStream in = null;
   try {
      in = new FileInputStream(new File("/tmp/prueba.txt"));
      ...
   } catch(Exception e) {
      ...
   } finally {
      if(in != null) {
         in.close();
   }
}

La sentencia try-with-resources nos permitira cerrar automaticamente los resources declarados.

try (InputStream in = new FileInputStream(new File("/tmp/prueba.txt"))) {
   byte[] buf = new byte[1024];
   in.read(buf);
   System.out.println(buf);
}

Solamente las clases que implementan la interface AutoCloseable pueden ser cerradas automaticamentes cuando se declaran en un try-with-resources.

Clases que implementan AutoCloseable

  • InputStream
  • OutputStream
  • Reader
  • Writer
  • Connection
  • Statement
  • ResultSet

Para más información:

http://download.java.net/jdk7/docs/technotes/guides/language/try-with-resources.html

Publicado en General | Deja un comentario

Firefox 4

Finalmente se ha liberado Firefox 4 trayendo un monton de novedades.

Para actualizar esta nueva versión en Ubuntu desde el repositorio PPA hay que ejecutar los siguientes 3 comandos:

sudo add-apt-repository ppa:mozillateam/firefox-stable
sudo apt-get update
sudo apt-get install firefox ubufox

Como se en en Ubuntu 10.10:

Publicado en General | Deja un comentario

Maven

A partir de la version 5.3 de Liferay, va a haber soporte oficial para maven.  En el este post Liferay Maven SDK publicado en el día de ayer en Liferay, se realiza una pequeña explicación de como se crea portlets como plugins con Maven.

También se esta trabajando para crear themes, hooks y layouts.

Para trabajar con Liferay 5.2 existe actualmente una implementación para crear portles en GitHub.

Publicado en desarrollo | Etiquetado , , | Deja un comentario

Liferay y Maven

En el último tiempo, Maven se me conviertio en una herramienta indispensable al momento de programar.  En el blog de Liferay salio un post que habla como generar un portlet con Maven, dicho pluggin no es oficial de Liferay, seguramente el fin de semana lo voy a probar y les cuento como funciona.

En este link se detallan las instrucciones para crear un portlet con Maven.

Publicado en desarrollo | Etiquetado , | Deja un comentario

La importancia de comentar código

En Humofriki podemos encontrar un comic muy interesante y divertido.  El comic habla de la importancia de comentar nuestro código.

Espero que les guste: link

Publicado en General | Deja un comentario

Webinar de Alfresco

El miercoles 2 de diciembre a las 12 pm (-5GMT) hay un webinar de Alfresco donde se discutira las caracteristicas de las distintas versiones de Alfresco; Enterprise 3.2, Community 3.2 y Traditional ECM.  Esto nos permitira tomar una mejor decisión para tomar una buena decisión para la necesidades de nuestros clientes.

Para registrarse al webinar: link

Publicado en desarrollo, General | Etiquetado , | Deja un comentario

PUNYPNG

PunyPNG es una aplicacion web que reduce el tamaño de una imagen, permitiendo una optimización de los tiempos de carga de un sitio web.

PunyPNG lo podemos encontrar en http://www.gracepointafterfive.com/punypng/

Soporta los formatos: PNG, JPEG y GIF

Publicado en Diseño | Etiquetado , , , | Deja un comentario

34 trucos para diseñadores y desarrolladores web

En xyberneticos me entero de una guia de 34 trucos para diseñadores y desarrolladores web; esta guia tiene muchos tips interesantes a tener en cuenta.

Este es el link.

Publicado en desarrollo, Diseño | Etiquetado , , , | Deja un comentario