20/8/12

gvSIG en OSX Lion






Bueno, este es un inciso que tengo que hacer porque he tenido que trastear con gvSIG, por si alguien no lo conoce, porgrama libre para Sistemas de Información Geográfica. Muy util para diversas tareas.

Al grano que la ultima versión para Mac OSX tiene dificultades para correr con OSX 10.7 (Lion) y superiores. La solución es bien sencilla a la par que complicada de encontrar y es la siguiente (2 métodos):

Método1:
Abrir el terminal y ejecutar:
.//Applications/gvSIG-1.11.0-RC1.app/Contents/MacOS/JavaApplicationStub

Método 2:

  1. Ir a Aplicaciones,
  2. Selecionar gvSig-1.11.0.RC1.
  3. Boton derecho y "Mostrar contenido del paquete".
  4. Ir a Contents/MacOS
  5. Doble click en JavaApplicationStub
Y listo, esto responde a la pregunta ¿Como ejecutar gvSIG en Mac OSX Lion?

11/8/12

Preparando las nuevas certificaciones Microsoft (III): Programming in HTML5 with JavaScript and CSS3






Bien empezaremos por decir que esta es una certificación triple ya que, además de contar como crédito para la certificación "MCSD: Windows Metro style Apps using HTML5" tambien cuenta como crédito para la certificación "MCSD: Web Applications" y es, en si mismo una certificación, "Programming in HTML5 with JavaScript and CSS3 Specialist". Así que interesa sacarlo por partida triple.

Empezaremos con el temario (traducido) tal y como viene en la web de microsoft, luego pasaremos a detallar cada área temática. Debo advertir (como advierte microsoft) que los porcentajes son el peso relativo dentro del examen, cuanto más peso, más preguntas es probable que caigan, no obstante las preguntas tienen un grado de dificultad que también cuenta en la valoración, así podemos tener 15 preguntas de un área con dificultad baja que sumen, por ejemplo, 150 puntos y podemos tener 4 preguntas con dificultad alta de otro área que sumen lo mismo.

Además, cada área temática incluye las competencias que se muestran, pero no se limitan a ellas, es decir, puede, perfectamente, caer una pregunta que se englobe dentro de un área temática pero que no se muestre en el temario.

El examen consta de cuatro áreas temáticas:
Implementar y manipular las estructuras de documentos y objetos (24%)
Implementar el flujo del programa (25%)

Acceder y Asegurar datos (26%)
Uso de CSS3 en Aplicaciones (25%)

Implementar y manipular las estructuras de Documentos y Objetos
Este área temática incluye las siguientes subáreas:
  •     Crear la estructura del documento.
    • Estructurar la interfaz de usuario mediante el uso de marcado semántico, incluyendo motores de búsqueda y lectores de pantalla (etiquetas Section, Article, Nav, Header, Footer y Aside).
    •  Crear un contenedor de diseño en HTML
  •     Escribir código que interactúe con los controles de la interfaz de usuario.
    • Añadir y modificar los elementos HTML mediante programación.
    • Implementar controles multimedia.
    • Implementar HTML5 Canvas y gráficos SVG.
  •     Aplicar un estilo a elementos HTML mediante programación.
    • Cambiar la ubicación de un elemento.
    • Aplicar una transformación.
    • Mostrar y ocultar elementos.
  •     Implementar el API HTML5.
    • Implementar las APIs de almacenamiento, AppCache, y Geolocalización.
  •     Establecer el alcance de los objetos y variables.
    • Definir la duración de las variables.
    • Mantener los objetos fuera del espacio de nombres global.
    • Uso de "this" para hacer referencia a un objeto que ha disparado un evento.
    • Variables de ámbito local y global
  •     Crear e implementar los objetos y métodos.   
    • Implementación de objetos nativos.
    • Crear objetos personalizados y propiedades personalizadas para los objetos nativos con prototipos y funciones.
    • Heredar de un objeto.
    • Implementar los métodos nativos y crear métodos personalizados.
Implementar el flujo del programa
Este área temática incluye las siguientes subáreas:
  •     Implementar el flujo del programa.
    • Recorrer elementos de colecciones y arrays.
    • Gestionar las decisiones del programa mediante el uso de sentencias switch, if / then, y los operadores.
    • Evaluar expresiones
  •     Lanzar y controlar un evento.
    • Controlar los eventos comunes expuestos por DOM (onBlur OnFocus, OnClick).
    • Declarar y manejar eventos traspasados.
    • Controlar un evento mediante el uso de una función anónima
  •     Implementar el manejo de excepciones.
    • Establecer y responder a los códigos de error.
    • Lanzar una excepción.
    • Petición de cheques nulos.
    • Implementar bloques try-catch-finally
  •     Implementar una devolución de llamada.
    • Recibir mensajes de la API  HTML5 WebSocket.
    • Usar jQuery para hacer una llamada AJAX.
    • Cablear un evento.
    • Implementar una devolución de llamada(callback) mediante el uso de funciones anónimas.
    • Manejar el puntero "this".
  •     Crear un proceso de trabajo web.     
    • Iniciar y detener un trabajador web.
    • Pasar datos a un trabajador Web.
    • Configurar los tiempos de espera y los intervalos en el trabajador web.
    • Registrar un detector de eventos para el trabajador de la Web.
    • Limitaciones de un trabajador Web 
 
Acceder y Asegurar datos 
Este área temática incluye las siguientes subáreas:
  •     Validar la entrada del usuario mediante el uso de elementos de HTML5.
    • Elegir los controles apropiados basados ​​en las necesidades.
    • Aplicar los tipos de entrada HTML (por ejemplo,,,) y los atributos de contenido (por ejemplo, requerido) para recolectar información del usuario.
  •     Validar la entrada del usuario mediante el uso de JavaScript.
    • Evaluación de una expresión regular para validar el formato de entrada.
    • Validar que se introduce el tipo de tipo de datos correcto mediante el uso de las funciones integradas.
    • Evitar la inyección de código 
  •     Consumir los datos.
    • Consumo de datos JSON y XML.
    • Recuperar datos mediante el uso de servicios web.
    • Cargar datos u obtener datos de otras fuentes mediante el uso de XMLHttpRequest.
  •     Serializar, deserializar y transmitir datos. 
    • Datos binarios.
    • Datos de texto (JSON, XML).
    • Implementación del método serializar de JQuery.
    • Form.Submit.
    • Parsear Datos.
    • Enviar datos mediante el uso de XMLHttpRequest.
    • Filtrar los datos mediante el uso de codificación URI / form.
Uso de CSS3 en Aplicaciones 
Este área temática incluye las siguientes subáreas:
  •     Estilo de propiedades de texto HTML.
    • Aplicar estilos a la apariencia del texto (color, negrita, cursiva).
    • Aplicar estilos a la fuente del texto (WOOF y @ font-face, size, understudy fonts).
    • Aplicar estilos a la alineación del texto, el espaciado, y la sangría.
    • Aplicar estilos a los guiones de texto.
    • Aplicar estilos de sombra de texto arrojada.
  •     Un cuadro de propiedades de estilo HTML.
    • Aplicar estilos para modificar los atributos de apariencia (tamaño, bordes y esquinas, redondeo de fronteras, contorno, relleno, márgenes).
    • Aplicar estilos para alterar los efectos gráficos (transparencia, opacidad, imagen de fondo, gradientes, sombras, de recorte).
    • Aplicar estilos para establecer y cambiar la posición de un elemento (estática, relativa, absoluta fija,)
  •     Crear un diseño flexible de contenido.
    • Implementar un diseño con un modelo de caja flexible.
    • Implementar un diseño con varias columnas.
    • Implementar un diseño usando posición flotante y exclusiones.
    • Implementar un diseño mediante la alineación de la red.
    • Implementar un diseño con las regiones, agrupando y anidando.
  •     Crear una interfaz de usuario animada y adaptable.
    • Animar objetos mediante la aplicación de las transiciones CSS.
    • Aplicar transformaciones 3-D y 2-D.
    • Ajustar la interfaz de usuario basada en las consultas multimedia (adaptaciond para dispositivos de los formatos de salida, exposiciones y representaciones).
    • Ocultar o deshabilitar los controles
  •     Buscar los elementos mediante el uso de selectores CSS y jQuery.
    • Elegor el selector correcto para hacer referencia a un elemento.
    • Definir los elementos, el estilo y selectores de atributos.
    • Encontrar elementos mediante el uso de los pseudo-elementos y pseudo-clases (por ejemplo, :before, :first-line, :first-letter, :target, :lang, :checked, :first-child)
  •     Estructura de un archivo CSS mediante el uso de selectores CSS.      
    • Referenciar los elementos correctamente.
    • Implementar la herencia.
    • Anular la herencia mediante el uso de !important.
    • Estilo de un elemento basado en los pseudo-elementos y pseudo-clases (por ejemplo, :before, :first-line, :first-letter, :target, :lang, :checked, :first-child).
 Recomiendo como material de preparación los siguientes libros:
HTML5 for Web Designers y CSS3 for Web Designers de A BOOK APART que, si sabeis y habeis trabajado algo con HTML4 y CSS van de sobra para este examen y jQuery in Action para la parte de Javascript de Manning.

Esperando que os sea de ayuda. Mañana veremos el 70-481 de desarrollo esencial de aplicaciones para Windows 8 (Metro Style) en HTML, CSS  y Javascript.

Lanzado LibreOffice 3.6.0



Se acaba de lanzar LibreOffice 3.6.0 para Windows, Mac y Linux, noticia lo suficientemente importante como para aparecer en el blog. Entre sus novedades más importantes, 10 nuevas plantillas para impress, nuevo filtro de importación para Corel Draw, exportación a PDF con marca de agua y contador de palabras en la barra de estado de Writer. Esta disponible tambien en español.

Si trabajais con bases de datos Access no os recomiendo la actualización porque esta versión tiene roto el enlace ADO.NET forzandonos a establecer manualmente la conexión a traves de fuentes ODBC. Los desarrolladores prometen corregirlo para la versión 3.6.1.

Podeis descargarla aqui.

9/8/12

Preparando las nuevas certificaciones Microsoft (II): Programming C#



Bien empezaremos por decir que esta es una certificación doble ya que, además de contar como crédito para la certificación "MCSD: Metro Style Apps with C#" es, en si mismo una certificación, "Programming in C# Specialist". Así que interesa sacarlo por partida doble.

Empezaremos con el temario (traducido) tal y como viene en la web de microsoft, luego pasaremos a detallar cada área temática. Debo advertir (como advierte microsoft) que los porcentajes son el peso relativo dentro del examen, cuanto más peso, más preguntas es probable que caigan, no obstante las preguntas tienen un grado de dificultad que también cuenta en la valoración, así podemos tener 15 preguntas de un área con dificultad baja que sumen, por ejemplo, 150 puntos y podemos tener 4 preguntas con dificultad alta de otro área que sumen lo mismo.

Además, cada área temática incluye las competencias que se muestran, pero no se limitan a ellas, es decir, puede, perfectamente, caer una pregunta que se englobe dentro de un área temática pero que no se muestre en el temario.

El examen consta de cuatro áreas temáticas:

Gestionar el flujo del programa (25%)
Crear y Usar tipos (24%)
Depurar Aplicaciones e Implementar Seguridad (25%)
Implementar Acceso a Datos (26%)


Gestionar el flujo del programa

Este área temática incluye las siguientes subáreas:

  • Implementar el multithreading y procesamiento asincrónico.
    • Uso de la biblioteca de Tareas en Paralelo (ParallelFor, Plinq, Tasks).
    • Crear tareas de continuación.
    • Generar hilos mediante el uso de ThreadPool.
    • Desbloquear la interfaz de usuario.
    • Usar las palabras clave async  y await.
    • Gestionar los datos mediante el uso de las colecciones concurrentes
  • Gestión de múltiples hilos.
    • Sincronizar recursos.
    • Implementar bloqueo.
    • Cancelar una tarea de larga duración.
    • Implementar métodos thread-safe para controlar las condiciones de carrera.
  • Implementar el flujo del programa.
    • Recorrer los elementos de colecciones y matrices.
    • Programar decisiones mediante el uso de sentencias switch, if/then, y otros operadores.
    • Evaluar expresiones
  • Crear e implementar los eventos y las respuestas.
    • Crear controladores de eventos.
    • Suscribirse y darse de baja de los eventos.
    • Uso de los tipos integrados de delegados para crear eventos.
    • Crear delegados.
    • Expresiones lambda.
    • Métodos anónimos
  • Implementar el manejo de excepciones.
    • Manejar los tipos de excepciones (excepciones de SQL, las excepciones de la red de comunicación, las excepciones, las excepciones de la red de tiempo de espera).
    • Tipos capturados (try-catch) vs excepciones de base.
    • Poner en práctica try-catch-finally.
    • Excepciones.
    • Determinar cuando usar rethrow vs throw.
    • Crear excepciones personalizadas

Crear y usar tipos
Este área temática incluye las siguientes subáreas:
  • Crear tipos.
    • Crear los tipos de valor (estructuras, enum).
    • Tipos de referencia.
    • Tipos genéricos.
    • Constructores.
    • Variables estáticas.
    • Métodos.
    • Clases
    • Métodos de extensión.
    • Parámetros opcionales y nombrados.
    • Propiedades indexadas.
    • Sobrecargar y anular métodos.

  • Consumir tipos.
    • Encapsular o desencapsular para conversión entre tipos de valores.
    • Fundir tipos (casting).
    • Convertir los tipos.
    • Manejar tipos dinámicos.
    • Garantizar la interoperabilidad con código no administrado, p.e., claves dinámicas
  • Forzar la encapsulación.
    • Forzar la encapsulación mediante el uso de las propiedades.
    • Mediante el uso de los descriptores de acceso (público, privado, protegido), y
    • Mediante la implementación de interfaces explícitas
  • Crear e implementar una jerarquía de clases.
    • Diseñar e implementar una interfaz.
    • Heredar de una clase base.
    • Crear y poner en práctica las clases basadas en la implementación de IComparable, IDisposable IEnumerable, y las interfaces IUnknown
  • Buscar, ejecutar y crear tipos en tiempo de ejecución mediante la reflexión.
    • Crear y aplicar atributos.
    • Leer los atributos.
    • Generar código en tiempo de ejecución mediante el uso de CodeDom y las expresiones lambda.
    • Usar los tipos del espacio de nombres System.Reflection (Assembly, PropertyInfo, MethodInfo, Type)
  • Gestionar el ciclo de vida del objeto.
    • Manejo de los recursos no administrados.
    • Implementar IDisposable, incluyendo la interacción con finalización.
    • Gestionar IDisposable mediante el uso de la instrucción Using.
    • Gestionar la recolección de basura y la finalización
  • Manipular cadenas.
    • Manipular las cadenas mediante el StringBuilder, StringWriter, y las clases StringReader.
    • Buscar cadenas.
    • Métodos de enumerar cadenas.
    • Formatear cadenas.

Depuración de aplicaciones e implementar la seguridad
Este área temática incluye las siguientes subáreas:
  • Validar las entradas de la aplicación.
    • Validar los datos JSON.
    • Tipos de recolección de datos.
    • Gestionar la integridad de los datos.
    • Evaluar una expresión regular para validar el formato de entrada.
    • Usar las funciones integradas para validar el tipo de datos y el contenido fuera del ámbito.
    • Escritura de expresiones regulares
  • Realizar cifrado simétrico y asimétrico.
    • Elegir un algoritmo de cifrado adecuado.
    • Gestionar y crear certificados.
    • Poner en práctica la gestión de claves y aplicación del espacio de nombres System.Security.
    • Datos de hash.
    • Cifrado de Streams.
  • Gestión de Assemblies.
    • Versión assemblies.
    • Firmar assemblies con nombres seguros.
    • Implementar hospedaje side-by-side.
    • Poner una assembly en la caché global de assemblies.
    • Crear una assembly WinMD
  • Depurar una aplicación.
    • Crear y administrar directivas de compilador.
    • Elegir un adecuado tipo de generación.
    • Gestión de archivos de programación de bases de datos y símbolos.
  • Implementar diagnósticos en una aplicación.
    • Implementación de registro y rastreo(logging y tracing).
    • Aplicaciones de creación de perfiles.
    • Crear y supervisar los contadores de rendimiento.
    • Escribir en el registro de eventos.

Implementar el acceso a datos
Este área temática incluye las siguientes subáreas:
  • Realizar las operaciones de E / S.
    • Leer y escribir archivos y streams.
    • Leer y escribir desde la red mediante el uso de las clases en el espacio de nombres System.Net.
    • Implementar operaciones de E / S asíncronas.
  • Consumir los datos.
    • Recuperar datos de una base de datos.
    • Actualización de datos en una base de datos.
    • Consumir datos JSON y XML.
    • Recuperar los datos mediante el uso de servicios web
  • Consultar y manipular los datos y objetos mediante el uso de LINQ.
    • Datos de la consulta mediante el uso de los operadores (de proyección, se unen, el grupo, toma, vaya, global).
    • Crear consultas basadas en métodos LINQ.
    • Datos de la consulta mediante la sintaxis de la comprensión de la consulta.
    • Seleccionar los datos mediante el uso de tipos anónimos.
    • Forzar la ejecución de una consulta.
    • Leer, filtrar, crear y modificar estructuras de datos mediante el uso de LINQ a XML
  • Serializar y deserializar los datos.
    • Serializar y deserializar los datos mediante el uso de la serialización binaria.
    • Serialización personalizada.
    • Serializador XML.
    • Serializador JSON.
    • Serializador de contrato de datos
  • Guardar los datos y recuperar datos de las colecciones.
    • Almacenar y recuperar datos mediante el uso de diccionarios, matrices, listas, conjuntos, y las colas.
    • Elegir un tipo de colección.
    • Iniciar una colección.
    • Agregar y quitar elementos de una colección.
    • Usar colecciones tipadas frente a no-typadas.
    • Implementar colecciones personalizadas.
    • Implementar interfaces de la colección

Recomiendo como material de preparación los siguientes libros:
C# 5.0 Pocket Reference, Programming C# 5.0 y C# 5.0 in a Nutshell todos de O'Reilly.

Esperando que os sea de ayuda. Mañana veremos el 70-480 que son las bases para HTML, CSS, Javascript.

8/8/12

Preparando las nuevas certificaciones Microsoft (I):





Preparando las nuevas certificaciones Microsoft (I):

Bien este verano he tenido la suerte de que Microsoft me seleccionara para hacer de beta tester de sus nuevas certificaciones para Windows 8, así que voy a  realizar una serie de articulo sobre dichas certificaciones en este mi blog.

Desgraciadamente como unos test se realizaron antes que otros y los he ido preparando según podía pues hasta el 8 de Agosto he estado currando, intentaré realizar una pequeña guía de las certificaciones MCSD en Windows 8 haciendo hincapié sobre todo en el material de preparación de cada certificación y la dificultad subjetiva (o sea, la que me ha parecido a mi) de cada examen.

Sirva este articulo como de referencia de cada una de las nuevas certificaciones. Tras este articulo a modo de introducción realizare otros 8 centrados en cada una de los 8 exámenes.

Lista de Certificaciones:

MCSD: Web Applications (70-480, 70-486,70-487)
Lista de Examenes:

  •  70-480, Programming in HTML5 with JavaScript and CSS3
  •  70-486, Developing ASP.NET 4.5 MVC Web Applications
  •  70-487, Developing Windows Azure and Web Services
     

MCSD: Metro Style Apps with HTML5 (70-480,70-481,70-482)
Lista de Examenes:

  •  70-480, Programming in HTML5 with JavaScript and CSS3
  •  70-481, Essentials of Developing Windows Metro style Apps using HTML5 and JavaScript
  •  70-482, Advanced Metro style App Development using HTML5 and JavaScript

MCSD: Metro Style Apps with C# (70-483,71-484,71-485)

Lista de Examenes:

  • 70-483, Programming in HTML5 with JavaScript and CSS3
  • 70-484, Essentials of Developing Windows Metro style Apps using C#
  • 70-485, Advanced Metro style App Development using C# 

Como podeis ver, estas tres certificaciones están muy orientadas al nuevo interface de usuario (UI) de Microsoft, conocido como Metro, pero sin descuidar a los desarrolladores webs centrados en esta nueva certificación en ASP.NET MVC, la arquitectura Modelo-Vista-Controlador de Microsoft que esta apostando fuerte por este paradigma tanto en Web como en aplicaciones de Escritorio, con su variante MVVM, Modelo-Vista-VistaModelo (que viene a ser más o menos lo mismo que MVC).

Haré notar que Metro tiene una característica que hace deseable usarlo: El código es común para todos los Windows 8, y cuando digo todos me refiero tambien a las ediciones para mobil (Windoes Phone 8) y tablet.

Bueno, por hoy vale, mañana empezamos con el temario de  la certificación en C# (empiezo por esta porque en el momento de publicar este articulo aún no he realizado el primer examen y me sirve para repasar).

17/5/12

Hackintosh





Me entero de que, curiosamente, las clausulas particulares del sistema operativo OSX que impiden utilizarlo en equipos que no sean Apple no son validas en españa porque van en contra de la Ley de Protección al Consumidor al resultar abusivas.

Asi que compro un OSX Lion y me lo instalo en mi equipo (mieeento) me compro un equipo hecho a medida para instalar un OSX Lion. Y oye, una diferencia con microsoft...

Animo a todos lo que busqueis potencia y elegancia a precio razonable a montaros un hackintosh para ello os paso la página que poseis ver en el encabezado como referencia a estos sistemas y esperando que mas y mas de nosotros optemos por un Mac hecho en casa. Para los que busquen el diseño apple, pues que lo paguen, pero si solo queremos la funcionalidad... Ahi esta nuestro Hackintosh.

Saludos a todos.

23/4/12

La Falacia de las Convalidaciones

Hoy me encuentro con ese ánimo incierto de esas personas a las que han denegado convalidaciones basándose en criterios arbitrarios y no ajustados a derecho. Hablo por supuesto de convalidaciones universitarias, y su ironía.

Yo estudio en la UNED y lo que tiene mucha gracia es que denieguen sistemáticamente convalidaciones y , aquellos pocos que recurren a la justicia ordinaria (perdiendo de facto 2 años de su tiempo) consigan la convalidación a la que tienen derecho con muy poco perjuicio para la UNED.

Es irónico que una persona particular, por incumplir alguna condición o retrasarse en el pago de algún servicio público se le condene a la suspensión de servicios o, directamente, a prisión. Mientras que una institución que incumple una Ley Organica reiteradamente y con multiples condenas judiciales se le permita actuar impunemente de esa manera.

Viva la Justicia Española.

23/1/12

El Caso Megaupload

Escribo este post por los recientes acontecimientos que envuelven al caso Megaupload. Aún no se que pruebas tienen contra los propietarios de dicho sitio web (al que estaba suscrito), pero leo que en Nueva Zelanda cumplian con todos los requisitos legales como, repetidas veces, se hizo notar en el pais, es decir, no habían cometido ningun delito en Nueva Zelanda, pais en el que tienen sus servidores y del que son nacionales.

Entiendo que, dado este hecho, el gobierno americano ha abierto una puerta muy peligrosa para ellos mismos, puesto que si ellos se arrogan el derecho a cerrar web sites de paises extranjeros por no cumplir las leyes americanas, ¿que impide a Iran, o Corea del norte, cerrar web sites que incumplan sus leyes?.

Imaginate esto, Iran proclama una LSSI o una SOPA que dice que todas las webs con imagenes de mujeres ligeras de ropa (y esto en un país que se rige por la Saria es que le le vea más de un palmo de carne) deben cerrarse.

Entendamos que este supuesto es enteramente posible e incluso probable(si es que no existe ya). Bien, pues por el mismo derecho que se arroga USA Iran podría, globalmente, cerrar web como la CNN, USA Today, NY POST, White House, etc... ya que se me ocurren pocas webs que no tengan fotos de mujeres con al menos la cara descubierta.

¿Y que deberían hacer los paises que no quieren llevarse mal con EEUU? Nacionalizar su parte de internet, nada entra, nada sale, todo lo que esta cumple la legislación del pais.

Es esto una cuestión practica, nadie se habia atrevido a hacerlo antes porque crea un grave precedente en internet y, esta en el interes de los mercados, que internet sea Global. Esto habre la puerta a la "nacionalización de internet".

Es decir, yo solicito a mi prestador de servicios que la web sólo este disponible para ciudadanos españoles, porque en España prevalece el derecho de copia privada y no se considera delito compartir entre iguales. Y ¿porque lo solicitaré? porque cumplo 'escrupulosamente' la legalidad vigente en el pais en el que resido, la legalidad americana me la sopla puesto que yo no voy a cometer delito en sus fronteras, en todo caso lo harán sus nacionales que accedan ilegalmente a mi sitio.

Me curo en salud perdiendo en globalidad, pero como la mayoria de mi mercado es nacional... .

¿Y a quien va a perjudicar más esta medida? Obviamente a los paises exportadores por excelencia, China y EEUU y despues Europa, pero como en Europa hay un mercado interior muy fuerte no habra problemas además, descendiendo las importaciones Americanas o Chinas a nivel de consumo, se consumirá más producto local.

No, si bien mirado hasta es una buena medida para salir de la crisis, los Europeos digo porque los americanos van a acabar en una crisis tan profunda que no descarto una revolución y/o guerra civil antes del fin de la decada.