Cómo solucionar un workspace de Eclipse corrupto

Al intentar abrir Eclipse (corriendo en Mac OS 10.8.2) llegaba hasta el punto en el cual cargaba el plugin de GWT y dejaba de cargar.

Aparentemente el problema era con los editors abiertos.

Lo que hice para solucionarlo fue:

1) Ir por consola hasta el directorio del workspace.

2) Mover el directorio .metadata/.plugins a .metadata/.plugins.failing

3) Arrancar Eclipse (genera un nuevo directorio .plugins)

4) Copiar el directorio org.eclipse.core.resources del backup al nuevo dir .plugins


cp -r .plugins.failing/org.eclipse.core.resources .plugins/org.eclipse.core.resources

5) Copiar los settings desde el backup

cp -r .plugins.failing/org.eclipse.core.runtime/.settings .plugins/org.eclipse.core.runtime/.settings

6) Arrancar Eclipse

7) Importar los proyectos (sin marcar el checkbox para copiar el proyecto al workspace porque ya se encuentran dentro de él).

8) Actualizar las dependencias de Maven.

GWT UIBinder + i18n

1) Hay que hacer es modificar el module.gwt.xml y agregar los locales que van a ser soportados en la aplicación


<!--Defines all possible locales we'll use-->
<extend-property name="locale" values="en,ru"/>   
<!--Defines default locale-->
<set-property-fallback name="locale" value="en"/>

2) Luego hay que poner las etiquetas dentro del archivo .ui.xml
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
             xmlns:g='urn:import:com.google.gwt.user.client.ui'

             ui:generateFormat="com.google.gwt.i18n.rebind.format.PropertiesFormat"
             ui:generateKeys="com.google.gwt.i18n.server.keygen.MD5KeyGenerator"
             ui:generateLocales="en,ru">
    <g:HTMLPanel>
        <ui:msg key="msg2" description="test description2">Test2!</ui:msg>
        <ui:msg key="msg1" description="test description">Test!</ui:msg>
        <ui:msg>Test3!</ui:msg>
    </g:HTMLPanel>
</ui:UiBinder>
3) Compilar el proyecto con el parámetro -extra /tmp/gwt. Esto lo que va a hacer es generar los archivos .properties. Genera uno por cada ui.xml por cada idioma.

4) Hay que copiar los archivos generados en la misma carpeta en la cual se encuentra la vista.

5) Renombrar el archivo y eliminar el nombre del paquete.

6) Realizar la traducción de los archivos.

7) Recompilar el proyecto.

8) Ahora se pueden probar los diferentes locales agregando ?locale=es (por ejemplo) en la url.

Cómo instalar versiones antiguas del iOS SDK

Cuando se instala una nueva versión de xcode se elimina la versión anterior y no se pueden utilizar los SDK anteriores.

Para instalar un SDK anterior primero hay que conseguirlo :) 

Yo necesitaba el 5.1 y lo tenía en mi Time Capsule. Pero sino, acá hay una página en la cual hay varios SDKs.

Y para "instalarlo" hay que copiarlo a una carpeta específica: /Applications/xcode/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

That's it ;)

Dónde están los archivos de configuración de Filezilla en Mac

Están en ~/.filezilla.





Para poder ver los archivos hay que mostrar los archivos ocultos en el Finder.

Y luego hay que copiar la carpeta /Users/[user]/.filezilla a la carpeta home del nuevo user.

Cómo deshabilitar el corrector autográfico en GMAIL (Firefox / Mac)

Esto no es un tema de Gmail. Es un tema de Firefox.

Para desahabilitarlo hay que ir a Firefox > Settings > Advanced y destildar la opción "Check my spelling as I type".

 

"Calle" la longitud debe ser igual o mayor que 1 caracteres.

En Magento hay un bug que molesta y es que cuando el usuario selecciona "Otro" en tipo vía sale este mensaje sin solución aparente:










GWT Hosted mode compilation no es compatible con Java 1.5

En un proyecto que estamos haciendo con GWT, en el cual tenemos que usar el Hosted Mode de GWT, pero sin Appengine estaba explotando la primera vez que se compilaba una jsp.

La solución la encontramos acá y básicamente hay que crear una clase que extienda de JDTCompiler y agregarla como argumento de la VM en la Run Configuration.

Entonces, primero hay que crear la siguiente clase:


public class JDTCompiler15 extends JDTCompilerAdapter {
       @Override
       public void setJavac(Javac attributes) {
               if (attributes.getTarget() == null) {
                       attributes.setTarget("1.5");
               }
               if (attributes.getSource() == null) {
                       attributes.setSource("1.5");
               }
               super.setJavac(attributes);
       }
}

Y luego hay que hacer click derecho sobre el proyecto > Run As > Run Configurations > seleccionar una de ellas y en VM arguments agregar lo siguiente:


-Dbuild.compiler="com.mypackage.JDTCompiler15"

PayPal gateway has rejected request. Callback URL is wrong type; you must use the HTTPS (#11813: Callback URL is wrong type).

Esto ocurre en Magento cuando se configura para utilizar el Express Checkout y no está configurado un certificado SSL en el servidor.

Paypal espera una URL de respuesta https://

Cómo eliminar órdenes en Magento

Hay una extensión de Magento que funciona muy bien y encima es gratuita :)

La extensión se llama Seamless Delete Order.

Cómo correr IE 7,8 o 9 en Snow Leopard o Lion

La manera más fácil de correr IE 7, 8 o 9 en Snow o Lion, es corriendo una Virtual Machine en VirtualBox.

Primero hay que descargar Virtual Box desde acá.

Y luego hay que descargar las imágenes de las VM que se quiera utilizar:

IE 7 sólamente

curl -s https://raw.github.com/xdissent/ievms/master/ievms.sh | IEVMS_VERSIONS="7" bash


IE 8 sólamente

curl -s https://raw.github.com/xdissent/ievms/master/ievms.sh | IEVMS_VERSIONS="8" bash


IE 9 sólamente
curl -s https://raw.github.com/xdissent/ievms/master/ievms.sh | IEVMS_VERSIONS="9" bash

IE 7, 8 y 9

curl -s https://raw.github.com/xdissent/ievms/master/ievms.sh | IEVMS_VERSIONS="9" bash

iOS URL decode | Objective C

Para realizar un URLDecode en iOS hay que realizar dos pasos:
  • Reemplazar los caracteres "+" por " "
  • Reemplazar los %
Se puede realizar de la siguiente manera.

 
 NSString *decoded = [[message stringByReplacingOccurrencesOfString:@"+" withString:@" "] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

cache_dir is not writable | Magento 1.6.2

Luego de subir mi instalación fresquita de Magento me encontré con este problema:

cache_dir is not writable

La solución fue darle permisos 777 a la carpeta /var


chmod -R 777 var/ 

Mage registry key "_resource_helper/core" already exists | Magento 1.6.2

Luego de desarrollar mi site de Magento en local y subirlo al servidor me encontré con el siguiente error:

Mage registry key "_resource_helper/core" already exists

El problema lo pude resolver con los siguientes pasos: 

Eliminando la cache y las sessiones :
 
rm -rf var/cache/* var/session/*

Y luego haciendo un fix de los permisos de los archivos:

 
    #for magento 1.5+
    find . -type f -exec chmod 644 {} \;
    find . -type d -exec chmod 755 {} \;
    chmod o+w var var/.htaccess app/etc
    chmod 550 mage
    chmod -R o+w media

Cómo obtener todos los posibles valores de los atributos de un producto configurable.

Para obtener todos los posibles valores de los atributos un producto configurable se puede utilizar el siguiente código:

 
// Collect options applicable to the configurable product
$productAttributeOptions = $product->getTypeInstance(true)->getConfigurableAttributesAsArray($product);
$attributeOptions = array();
foreach ($productAttributeOptions as $productAttribute) {
    foreach ($productAttribute['values'] as $attribute) {
        $attributeOptions[$productAttribute['label']][$attribute['value_index']] = $attribute['store_label'];
    }
}

Cómo ordenar los atributos de un producto configurable

Estoy haciendo un Magento para vender remeras.

Cada remera es un producto configurable que tiene dos atributos: Color y Talla.

Por defecto salía primero el Color y luego la Talla, y yo necesitaba mostrar primero el Color. Aparentemente Magento ordena los atributos por el ID de manera descendiente.

La solución que encontré es la lanzando esta query por phpMyAdmin

UPDATE catalog_product_super_attribute SET position = 1 WHERE attribute_id = ‘your_attribute_id’ 
Más info acá.

Cómo eliminar el sufijo .html de las páginas de productos y categorías en Magento

Hay que ir en el administrador a System > Config > Catalog y eliminar el sufijo ".html".

 

Luego hay que volver a reindexar. System > Index Management > Reindex all