22/10/14

Establecer el idioma en el Apache Tomcat (cambiar el locale)

Si por algún motivo necesitas cambiar el idioma del Tomcat, es tan sencillo como editar el catalina.bat, o catalina.sh si estamos en linux. Y buscar la siguiente línea:

set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%
A esa línea se le añade:
-Duser.language=es -Duser.region=ES
Es decir la línea quedaría tal que así:
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER% -Duser.language=es -Duser.region=ES

Importante: es posible que la variable JAVA_OPTS se inicialice en varios puntos, por lo que se le deberían de añadir los párametros de cambio de idioma a todas.

Fuente: http://www.ladyj.eu/index.php/jboss-2/133-set-tomcat-default-locale

22/7/14

Error de Java al Arrancar el LibreOffice

Puede ocurrir que al arrancar el LibreOffice nos produzca el siguiente error:
krator@laptop:~/Documents$ libreoffice --writer myFile.odt [Java framework] Error in function createSettingsDocument (elements.cxx).javaldx failed! Warning: failed to read path from javaldxterminate called after throwing an instance of 'com::sun::star::uno::RuntimeException'

Es sencillo de corregir. Esto es producido por el propietario de los script de lanzamiento del LibreOffice. Este script se encuentra  en el directorio “.config” (es un directorio oculto en el home de cada usuario) y dentro de este hay otro que es “libreoffice” y ahí están los scripts. Como vemos el usuario, ni el grupo, propietario no es el mismo que los demás:



Ejecutando el siguiente comando corregimos ese error:
sudo chown -vR ubuntu:ubuntu ~/.config/libreoffice

16/7/14

Cambiar el estilo y css del OpenERP 7

Para cambiar el aspecto del login seguimos los siguientes pasos:
http://www.vionblog.com/modify-openerp-7-web-client-style/
Y para cambiar el aspecto interno instalamos el módulo web_color_theme (bajadlo desde aquí http://zbeanztech.com/blog/openerp_7_web_color_theme), un ejemplo de uso en este video:


Eso es una manera de editarlo, pero la aconsejable es no tocar el código fuente, instalaremos el módulo template, que lo podemos descargar de aquí:
http://www.martinienolinga.com/plugin-des-templates-sous-openerp/
Ahora sólo falta configurar el OpenERP para que tome los cambios de estilo de este módulo. Para ello nos vamos al fichero openerp/tools/config.py y en la línea
openerp.conf.server_wide_modules = ['web','web_kanban']
Añadiremos el de template, tal que así:
 openerp.conf.server_wide_modules = ['web','web_kanban', 'template']
Reiniciamos el OpenERP y ya tomará los cambios.

Fuentes:.
http://www.vionblog.com/modify-openerp-7-web-client-style/ (cambios de estilo de la web)
http://zbeanztech.com/blog/openerp_7_web_color_theme (vídeo)
http://zbeanztech.com/blog/openerp_7_web_color_theme (módulo web_color_theme)
http://www.martinienolinga.com/plugin-des-templates-sous-openerp/ (gestor de plantillas)

21/11/13

5005 Error desconocido al optimizar numero de bytes

Pues resulta que al compilar el fichero me sale el error 5005 Error desconocido al optimizar numero de bytes. Tras mucho buscar encontré este post. Enlace

Os resumo aquí traducido los pasos a seguir:
  1. . Control / “Eliminar archivos ASO” - Esto la mayoría de las veces soluciona el problema
  2. “Incremetar java VM heap memory size” - Esta es la solución definitiva
Para realizar el segundo paso hemos de crear una nueva variable de sistema llamada JAVA_TOOL_OPTIONS con el valor -Xmx512m.

PAra que el sistema tome esos cambios sería necesario reiniciar pero sino queremos y estamos en Windows 7 no iremos a la ruta

C:\Users\(usuario)\AppData\Local\Adobe\Flash CS5\es_ES\Configuration\ActionScript 3.0 

Y alli encontraremos el fichero jvm.ini, editamos y donde pone (al menos en mi caso) -Xmx128m ponemos -Xmx512m. Cerramos Flash, sino lo habíamos hecho aún, y lo volvemos a abrir.

5/12/12

Mejorar el tiempo de respuesta de MySQL


Muchas veces, a pesar de que el sistema operativo se encuentre con una carga de trabajo normal, MySQL puede mostrarse algo lento.
Hay muchas formas para mejorar el tiempo de respuesta del servidor MySQL, aquí nos enfocaremos en dos formas:
  • Deshabilitar la resolución de nombre
  • Modificar el tamaño de la cache
La primera opción es deshabilitar la resolución de nombres, de esta forma el servidor no pierde tiempo intentando convertir nombres de dominio a IP. El único inconveniente será que deberás usar solamente direcciones IP para definir los permisos.
Además, por una cuestión de seguridad no se recomienda usar nunca nombres de dominio o hostnames en la autenticación de MySQL.
Para deshabilitar la resolución de nombres de dominio debes correr el daemon de mysql (mysqld) con el argumento –skip-name-resolve, o bien, en el archivo de configuración /etc/my.cnf agregar la entrada skip-name-resolve.
[mysqld]…..……skip-name-resolve
Observa los resultados del siguiente sencillo benchmark:
  • Con resolución de nombres, el servidor se tarda entre dos y tres segundos en responder:
date; mysql -u root -h 192.168.1.4 ;
dateFri Jul 21 23:56:58 CEST 2006ERROR 1130 (00000):
Host ’192.168.1.3′ is not allowed to connect to this MySQL server
Fri Jul 21 23:57:00 CEST 2006
  • Sin resolución de nombres, el servidor responde instantáneamente:
date; mysql -u root -h 192.168.1.4 ;
dateFri Jul 21 23:56:37 CEST 2006ERROR 1130 (00000):
Host ’192.168.1.3′ is not allowed to connect to this MySQL server
Fri Jul 21 23:56:37 CEST 2006
La segunda recomendación es activar la cache de consultas (query chache). La cache de consultas guarda el texto de un SELECT junto al resultado que fue enviado al cliente. Si después se recibe una consulta idéntica el servidor recupera los datos de la cache en vez de ejecutar la consulta nuevamente.
Para chequear la query chache ejecuta:
mysql> SHOW STATUS LIKE ‘Qcache%’;
Para ver el estado de la misma:
mysql> SHOW VARIABLES LIKE ‘%query_cache%’;
Para cambiar el tamaño de la misma:
mysql> SET GLOBAL query_cache_size = 52428800;
Para mantener la configuración de la misma, hay que modificar el archivo /etc/my.cnf:
[mysqld]query_cache_size = 52428800query_cache_type = 1

4/9/12

Como crear un aviso 404 personalizado

Copio y pego de foros del web: http://www.forosdelweb.com/f119/tutorial-como-crear-aviso-404-personalizado-1011369/

Saludos amigos, nuevamente por acá. Como algunos de ustedes saben hay muchas formas de poder crear una página de error 404 personalizable. Desde extensiones, hasta el uso y modificación del archivo error.php que se encuentra en el directorio:

->templates/system/

Esta vez les mostraré una opción muy cómoda que parezca al visitante que no ha salido ni un instante de tu sitio web. Empecemos:

24/8/12

Acceder a un módulo desde cualquier parte

Para acceder a un módulo desde cualquiera parte
utilizaremos las siguientes funciones:

JModel::addIncludePath(ruta, prefijo); 
JModel::getInstance(nombre_modelo, prefijo );

Un ejemplo completo:
jimport('joomla.application.component.model');
JModel::addIncludePath(JPATH_SITE . DS . 'components' . DS . 'com_dtdisplay' . DS . 'models', 'DtdisplayModel' );
$model = JModel::getInstance( 'Group', 'DtdisplayModel' );

Sobre la variable $model podremos utilizar todos los métodos de dicho modelo. Así:

$model->funcion();

6/7/12

Crear un USB launcher desde símbolo de sistema

RECOMIENDO LEER TODO EL POST PRIMERO, ANTES DE REALIZAR ESTE METODO. 

Primero, antes que nada, dos puntos importantes a saber antes de empezar: 

I.- Es necesario una memoria usb que no tengan ningún archivo importante, ya que se formateará y no quedara rastro de nada. No se preocupen, si queda espacio en su USB, no se preocupen, pueden usarla aun como tal si quieren seguir teniendo su Windows instalable desde USB, mientras no borren ningún archivo copiado en la usb por este procedimiento. 

II.- El tamaño de la usb requerido varía dependiendo del Windows a instalar. Un Windows XP SP3 original sin modificar, cabe perfectamente en una usb de 1 giga, mientras que Vista/7 necesitan mínimo una de 4 gigas. 

III.- Para que el booteo por USB sea posible, asegúrate que la placa acepta ese tipo de inicio. Por lo general, las placas recientes no tienen ningún inconveniente en hacerlo. 

IV.- Puedes instalar con este método Windows XP/Vista/7, PERO solo puedes preparar la USB desde Windows Vista/7. 

teniendo en cuenta estos 4 puntos, comencemos con el tutorial. 

4/8/11

Añadir ordenación de columnas en una tabla en Joomla! 1.6

Intentando añadir la ordenación por columnas en mi componente he encontrado esto http://docs.joomla.org/Adding_sortable_columns_to_a_table_in_a_component pero está programador para Joomla! 1.5.

Al final he conseguido que funcione perfectamente realizando los siguientes cambios.

21/7/11

TLFTextField no aplica formato

Yo utilizo este código:
//recogemos el formato actual
//objEscritura es un TLFTextField del escenario
objEscritura.selectable = true;
var tFormato:TextFormat = objEscritura.getTextFormat();
objEscritura.selectable = false;

var texto:String = "";

objEscritura.text = "Hola Mundo!";
objEscritura.text = texto;

//Ya que el formato no toma estas variables bien
tFormato.leading = 0;
tFormato.blockIndent = 0;
tFormato.letterSpacing = 0;
tFormato.bold = true;
tFormato.italic = true;
objEscritura.setTextFormat(tFormato, 0, 2);
El código es correcto. ¿Entonces qué ocurre? Pues ocurre que si en la propiedad de TLFTextField Suavizado no esté puesto a "Utilizar las fuentes del dispositivo" no aplica el formato.

20/7/11

TLFTextField getTextFormat Error 1009

Cuando hacemos lo siguiente puede que no arroje el siguiente error:
var tFormato:TextFormat = objEscritura.getTextFormat();
Lanza el siguiente Error 1009:
TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.
at fl.text::TLFTextField/getTextFormat()
 at bugs_fla::MainTimeline/frame1()
El problema parece ser la propiedad selectable. No tendremos el error si antes de hacer el get desactivamos y después volvemos a activar .
   
format.selectable = true; // enable
var format2:TextFormat = field.getTextFormat();
format.selectable = false; // disable

Fuente:
http://www.plasmik.com/blog/tlftextfield-bugs-hacks/

15/7/11

Sombras

Veo una sombra, me sigue, me copia. Sufre, disfruta, llora, ríe lo mismo que yo; sin embargo me siento solo, me sigue pero no me acompaña.......
Me giro para mirarla, me sonstiene la mirada. Sonríe porque yo también lo hago

11/7/11

Como añadir CSS/Javascript a tu extensión de Joomla 1.6

Lo primero necesitamos el objeto JDocument:
$document = JFactory::getDocument();
Para añadir CSS:
$document->addStyleSheet('url/to/my/stylesheet.css');
Para Javascript:
$document->addScript('url/to/my/script.js');
Bien, también es posible que necesitemos añadir fragmentos de CSSo JS.

Fragmento CSS:
$css_code = "
    #myDiv {
      padding: 5px;
      margin:10px;
      border:1px solid #dedede;
    }

    div.someClass {
      background:#000000;
      color:#ffffff;
      height:100px;
    }
  ";


$document->addStyleDeclaration($css_code);

Ahora fragmento de Javascript:
$js_code = "
    window.addEvent('domready', function() {
      $('myDiv').addClass('someClass');
    });
  ";

  $document->addScriptDeclaration($js_code);
Fuente -> http://www.howtojoomla.net/how-tos/development/how-to-add-cssjavascript-to-your-joomla-extension

5/7/11

MovieClip con un UIScrollBar

Como todos sabemos y los que han llegado aquí lo saben. Los scrollbar están pensados para los campos textos.

Pues con el siguiente código lo podemos hacer con un MovieClip:

4/7/11

Doble Clic en AS3

Esto es una paranoia. Para un evento normal bastaría con poner:
myButton.addEventListener (MouseEvent.DOUBLE_CLICK, myHandler);

Esto no funciona ni de coña, el fragmento siguiente se solucionará el problema:
myButton.mouseChildren = false;
myButton.doubleClickEnabled = true;
myButton.addEventListener (MouseEvent.DOUBLE_CLICK, myHandler);

He de decir que la primera línea no es necesaria si se trabaja con un clip que no tiene hijos.

Fuente: http://www.charglerode.com/blog/?p=54

29/6/11

Pasar argumentos extra a los "addListener" de AS3

Sí!!!! es posible.
La forma de hacerlo es tan sencilla que asusta. Con usar esta clase lo tienes todo hecho:
 // (c) 2007 Ian Thomas
// Freely usable in whatever way you like, as long as it's attributed.
package net.wildwinter
{
   public class Callback
   {
         // Create a wrapper for a callback function.
         // Tacks the additional args on to any args normally passed
         // to the callback.
         public static function create(handler:Function,...args):Function
         {
               return function(...innerArgs):void
               {
                     handler.apply(this,innerArgs.concat(args));
               }
         }
   }
}

Un ejemplo de uso y de dónde lo saqué en la siguiente dirección: http://www.yporqueno.es/blog/pasar-parametros-al-addeventlistener-en-as3

Detección de mútilples teclas en AS3 y Flash

 Buscando la detección múltiple de teclas para AS3 encontré este tutorial en "kirupa.com" que me salvó la vida, ya que tiene contiene la clase que necesitaba, una larga y detallada explicación de su uso, y lo más importante, el fuente del ejemplo que nos enseña.

 Sin más os dejo el enlace: http://www.kirupa.com/developer/actionscript/multiple_key_detection.htm

30/5/11

Debugear Javascript sin los molestos alert

Es fácil, sólo has de utilizar el complemento de firefox Firebug y escribir con Javascript en su consola.
Lee esto que lo deja todo como el agua...
http://ubuntulife.wordpress.com/2008/10/16/escribir-trazas-javascript-en-la-consola-de-firebug/

Firefox se cuelga al ejecutar Javascript llamado desde flash

Al ejecutar una llamada javascript con ExternalInterface desde flash, como todo sabemos en la versión de Actionscript 3, se me colgaba.

Al cabo de un rato he encontrado esto he visto que era por el plugin-container.exe

http://web1.taringa.net/posts/info/10764402/Firefox-4-se-cuelga---plugin-container.html

Pd. se me colgaba al ejecutar un alert de testigo, al final he tenido que recurrir a escribir en la consola de debug que tiene el Firebug. Veáse esto