lunes, 25 de abril de 2016

App para la Iglesa

Hola

Me toca ayudar en los salones infantiles de una iglesia, soy el encargado de efectos especiales! :P jajaja pero siempre ando batallando con el CD que se ralla o que se me olvida, espero le sirva a alguien más. Espero terminarlo pronto!


lunes, 27 de julio de 2015

Cómo le ganó Mayweather a Pacquiao parte I

Lo importante no es hacer las cosas bien, sino verte bien haciéndolas.

En el fut siempre está el típico fintero que se lleva a uno o a dos, pero al final termina perdiendo el balón de todas formas - o se lo quita el tercero, o hace un mal pase, o hace un tiro desviado. Este tipo es considerado bueno, o por lo menos decente, aunque raro es que haga algo que valga la pena.

También está el típico personaje que, en una discusión, la lleva de perder contra otro que está más informado y que tiene una inteligencia superior. Sin embargo con agresión pura logra hacer quedar al otro mal, o por lo menos verse bien él, aunque lógicamente nada de lo que diga tenga sentido. Este tipo de comportamiento es típico de los políticos - nadie les gana en una entrevista, ni con mil pruebas de su corrupción.

Así, en todas las áreas de actividad humana, no es tan importante hacer las cosas bien, sino verte bien haciéndolas. En el box lo mismo es verdad.

Floyd Mayweather es el mejor aplícando este tipo de técnicas. Y en su pelea contra Manny Pacquiao las utilizó a la perfección. Aquí presentamos algunas de ellas.

Jab a la frente
Más que un jab es un "tap", una sobadita, una caricia. En términos de daño, uno de estos es casi 0. La frente es increiblemente fuerte y está diseñada para proteger el cerebro. De hecho este tipo de golpes podría hacerle más daño al que los tira que al que los recibe, ya que los golpes a la frente lastiman las manos. Pero eso no importa, lo importante es que Floyd luce súper bien, con la guardia abajo, con la espalda erecta, manteniendo a la distancia a su oponente que se ve encorvado, más tenso y fuera de posición para contra-atacar.

El Empujón

Aún cuando es conectado con un jab aquí, Floyd "no pierde" el intercambio porque al empujar a Manny, lo saca de balance y lo hace ver mal. El que está viendo la pelea no alcanza a ver bien lo que pasó y soló se queda con la impresión de que Floyd está dominando. No hace falta decir que empujar es ilegal, la maestría de Floyd es que sabe romper las reglas para su beneficio (más vale maña que fuerza).

La Cachetada de izquierda
Generalmente, Floyd utiliza el gancho de izquierda para escapar de las cuerdas, es una de sus armas favoritas, y con ella knockeó a Ricky Hatton en 2007. Sin embargo, Manny iba preparado para contra-golpear al cuerpo. Floyd ve venir la izquierda de Manny y sólo le da tiempo para tirar su gancho en forma de cachetada. No hace falta decir que este tipo de golpes no lastiman, ya que la mano extendida le quita todo el poder al golpe. Aunque en estos intercambios Manny conectó al cuerpo de Floyd, Floyd salió "ganándolos" porque un golpe a la cara luce más que uno al cuerpo. Además, Floyd combina la cachetada con un empujón que saca de balance a Manny y lo hace ver aún peor.

La Agachada
Otro movimiento ilegal de Mayweather. Es ilegal agacharte abajo del cinturón de tu oponente. Pero Floyd juega con las reglas una vez más, utilizando este movimiento no sólo para evadir golpes, sino para hacer fallar golpes a su oponente. Una de las ventajas es la que venimos diciendo, hace ver bien a Floyd y mal a Manny. La otra es que al fallar golpes Manny gasta mucho más energía que la que gastaría si los conectara.

Golpes a la Guardia
Por otro lado, en una pelea tan pareja, donde hay pocos verdaderos golpes, golpear la guardia luce más que no golpear nada, y mucho más que golpear el aire. Floyd utiliza este recurso ya que es menos arriesgado que intentar golpear directo a la cara. El golpe es más rápido y es más difícil ser contra-golpeado. Además, al cubrirse Manny tapa sus ojos y se expone a que lo saquen de balance como sucede en este caso.

El Jalón
Es difícil para la mayoría de los peleadores encontrar su distancia con Floyd, ya que tiene brazos anormalmente largos. Pero cuando Manny logra acortar la distancia, floyd tiene un último recurso (ilegal otra vez) para evitar ser castigado. Jalar o empujar hacia abajo a su oponente. Este movimiento es la firma de Floyd, y lo heredó de su padre, Floyd Mayweather Sr. En algún momento se dieron cuenta que a pesar de ser totalmente inefectiva para causar daño, esta técnica es increiblemente efectiva para lucir bien. Floyd luce como rey aquí y Manny parece que le va ha hacer un favorsito. Y no sólo es lucir bien por lucir bien, estas técnicas realmente funcionan para persuadir a la audiencia y a los jueces, no es por nada que la usan todo el tiempo. 

El Abrazo
Bueno, esta es la única técnica que no hace ver muy bien a Floyd, pero lo saca de apuros. Cuando siente que esta en una posición desventajosa la solución es simple, show the love. (Por cierto, es ilegal también).

El Jalón/Empujón/Cachetada/Huye por tu vida
La idea siempre es la misma, saca de balance a tu oponente, mante una posición erguida y cuida que no te peguen en la cara. Aquí Manny logra conectar con la izquierda, pero es un golpe muy débil ya que floyd esta moviendose en dirección opuesta. Floyd "gana" este "intercambio" una vez más sacando de balance a Manny y probablemente haciéndolo fallar el siguiente golpe.

Todos estos recursos son parte del arsenal Mayweather. Gusten o no son efectivos para sacar la chamba. En la próxima parte analizaremos algunas de las herramientas más masculinas que Floyd utilizó para vencer a Manny.

Saludos.
 
 










viernes, 19 de junio de 2015

Ropa en Unreal Engine 4, 3ds Max y Apex Nvidia - Santuario

Una de las maneras que podemos hacer para crear ropa, o objetos que sean algún tipo de tela, para Unreal Engine 4, utilizamos un plugin para 3ds Max ya que al hacerlo con blender, no se importaba correctamente la tela.

El plugin de Nvidia se llama APEX Clothing lo pueden encontrar aquí. Para poder descargarlo es necesario crear cuenta con Nvidia.

Lo que hicimos fue crear en blender las cortinas que queríamos utilizar, para poder ubicarlas en el lugar donde se quedarán.

Una vez creada la cortina, exportamos el objeto en fbx, para poder abrirlo en 3ds y agregarle el modificador de Apex.



En 3ds Max lo primero que debemos hacer es crear un bone, el cual estará ligado a la cortina.


Después seleccionamos la cortina y le agregamos los valores el modificador skin y le agregamos a este skin el bone que acabamos de agregar.


Después agregamos el modificador llamado "Apex Clothing". 


Al agregar este modificador, podemos agregar las propiedades de las ropas. Estas propiedades están encargadas de decir, que tanta resistencia tiene al doblarse, escala de gravedad, amortiguación, etc. Los valores de nuestro objeto son los siguientes:


La herramienta para pintar los valores de la tela o ropa es la siguiente.

Después de que agregamos los valores a la tela que deseamos que tenga, exportamos el objeto de tela como un fbx y también lo exportamos como PhysX and APEX. Después de hacer esto, importamos el objeto fbx a unreal y le agregamos al objeto el archivo .apx que exportamos.

Al agregar el archivo apx que exportamos, podemos agregar al material del objeto las propiedades para que lo convierta en ropa.


Listo amigos, con esto ya tenemos nuestro objeto como tela. Si tienes alguna duda o algún comentario, no dudes en comentar.

Saludos!

miércoles, 10 de junio de 2015

Liferay "Mi Perfil (My Account)" desde template en velocity

Normalmente no se necesita, pero en algunos casos se puede necesitar crear una entrada al portlet de Mi Perfil (My Account) de Liferay desde algún template en velocity, ya sea desde un custom theme,  template de contenido, template de listas dinámicas, template de asset publisher, etc.

Liferay en su dockbar hace esta liga desde un jsp y es bastante diferente hacerlo en velocity.

Dejo aquí un ejemplo de como llamar el portlet de Mi Perfil (My Account) desde velocity. El código es bastante corto y sencillo, ya que esta URL se encuentra en la variable de Liferay de theme_display!

## Liferay pop up link to display the account editing page of a user (Velocity)
#set ($my_account_url = $theme_display.getURLMyAccount() + "&controlPanelCategory=my")

Creamos la URL para el portlet de Mi Perfil (My Account), luego hay que cargarla en un popup (para hacerlo como lo hace Liferay en el dockbar).
Liferay tiene una utilería de javascript para crear los popups que utiliza, así que la usamos.

<a href="javascript:Liferay.Util.openWindow({dialog: {destroyOnHide: true}, title: 'My Account', uri: '$my_account_url'});">
     Edit Profile
</a>

Listo! así de fácil.

viernes, 5 de junio de 2015

Página de configuración en portlet de Liferay

Varias veces he batallado para recordar y/o encontrar como crear una página de configuración en un portlet al estilo Liferay, así que dejare el proceso aquí para futuras referencias, o por si a alguien le sirve!
(Digo al estilo Liferay porque siempre puedes crear una pagina mas en tu portlet, que tenga acceso restringido para Admins, y manejar ahi las configuraciones del portlet. Pero los portlets de que trae Liferay de caja, no se configuran asi.)

Primero, creamos nuestro portlet.

Entramos al archivo liferay-portlet.xml, en este agregamos el configuration-action-class, usando la clase DefaultConfigurationAction. quedaria asi:

<portlet>
 <portlet-name>configtest</portlet-name>
 <icon>/icon.png</icon>
 <configuration-action-class>com.liferay.portal.kernel.portlet.DefaultConfigurationAction</configuration-action-class>
 <header-portlet-css>/css/main.css</header-portlet-css>
 <footer-portlet-javascript>/js/main.js</footer-portlet-javascript>
 <css-class-wrapper>configtest-portlet</css-class-wrapper>
</portlet>

Al agregar esto, liferay ya crea en las configuraciones del portlet una nueva pestaña llamada setup. Esta pestaña estara en blanco, ahora creemos la página para mostrar algo.

En el archivo de configuración del portlet, portlet.xml agregamos un parámetro de inicialización mas, para agregar el jsp.

<init-param>
 <name>view-template</name>
 <value>/view.jsp</value>
</init-param>
<init-param>
        <name>config-template</name>
        <value>/config.jsp</value>
</init-param>
<expiration-cache>0</expiration-cache>

El nombre del parámetro debe ser config-template, así es como Liferay sabe que ese parámetro es para la configuración del portlet.

Agregamos la pagina config.jsp en este caso a la misma altura de view.jsp, que es la pagina que se crea automáticamente al generar el portlet.

En el view.jsp vamos a traer la configuración para pintarla.

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<portlet:defineObjects />
<%
String message = portletPreferences.getValue("message", "hola mundo");
%>
<%=message %>.


Y en el config.jsp creamos una forma, con un textbox para poner el mensaje que queremos mostrar al usuario (en este caso).
<%@page import="com.liferay.portal.kernel.util.Constants"%>
<%@ taglib uri="http://alloy.liferay.com/tld/aui" prefix="aui" %>
<%@ taglib uri="http://liferay.com/tld/portlet" prefix="liferay-portlet" %>
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>

<portlet:defineObjects />
<%
String message = portletPreferences.getValue("message", "hola mundo");
%>
<liferay-portlet:actionURL portletConfiguration="true" var="configURL"/>
<liferay-portlet:renderURL portletConfiguration="true" var="configRenderURL"/>

<aui:form action="<%=configURL %>" method="post" name="fm">
 <aui:input name="<%=Constants.CMD %>" type="hidden" value="<%=Constants.UPDATE %>" />
 <aui:input name="redirect" type="hidden" value="<%=configRenderURL %>" />
 <aui:fieldset>
  <aui:input name="preferences--message--" id="message" label="Welcome Message" value="<%=message %>" />
 </aui:fieldset>
 <aui:button-row>
  <aui:button type="submit"/>
 </aui:button-row>
</aui:form>


En el value del textbox, usamos en el name el doble guion para la propiedad message, que es la que utilizamos en el view.jsp para mostrar el mensaje que queremos que vea el usuario, esto es para que la clase DefaultConfigurationAction haga todo mágicamente, sin tener necesidad nosotros de mandarlo guardar o mandarlo traer de la base de datos en un Controller. Este método de guardado/extracción solo se usa en la forma, no al momento de ir por la propiedad en las preferencias del portlet.

Y listo! esto debe tener un portlet con una pagina de configuración al estilo Liferay!


Resultado final:



lunes, 1 de junio de 2015

Santuario - UE4 y Oculust Rift

Hola amigos

Actualmente nos encontramos trabajando en un proyecto nuevo, el cual es la representación del Santuario descrito en el libro de Éxodo de la Biblia.
Para dicho proyecto decidimos utilizar Unreal Engine 4 ya que queremos utilizar un dispositivo para Realidad Aumentada llamado Oculus Rift. Para aquellos que no sepan que es el Oculus Rift, aquí les dejo un video para que se den una idea. VIDEO

Espero muy pronto les podamos avisar en donde lo pueden descargar y como utilizarlo.

Saludos



lunes, 2 de febrero de 2015

Aplicación para android - Frases de Buda

Hola Gente!

Pues nos complace informarles que esta publicada la primera aplicación para dispositivos Android desarrollada con Corona.
Siempre se empieza por algo, y este es el inicio de Nituniyo!.



Saludos!