sábado, 25 de abril de 2015

Heroes of Storm (HotS): La nueva propuesta MOBA de Blizzard

Buen día,

En esta ocasión haré un pequeño review sobre el nuevo juego de Blizzard, en lo personal me parecen entretenidos los de tipo MOBA (Multiplayer Online Battle Arena).

Según el sitio de Battle Net el juego saldrá oficialmente el 02/06/2015, sin embargo ya es posible jugar la Beta Cerrada del juego si tienes una key para la misma. Casualmente me han regalado una key para el juego la cual usaré para probar jugabilidad y hacer el review sobre este juego.


Personajes.
Utilizando los personajes de antiguos juegos de Blizzard, los ha reunido tanto héroes como villanos en la Arena de Batalla. De esta forma podemos ver algunos de los personajes, los podes ver en este sitio:

Heroes

Requerimientos para jugar.


Windows

MINIMUM REQUIREMENTSRECOMMENDED SPECIFICATIONS
Operating System
Windows® XP / Windows Vista® / Windows® 7 / Windows® 8 with the latest service pack
Windows® 7 / Windows® 8 64-bit with the latest service pack
Processor
Intel® Core™ 2 Duo or AMD Athlon™ 64 X2 5600+
Intel® Core™ i5 or AMD™ FX Series Processor or better
Video
NVIDIA® GeForce® 7600 GT, ATI Radeon™ HD 2600 XT, or Intel® HD Graphics 3000
NVIDIA® GeForce® GTX 650 or AMD Radeon™ HD 7790 or better
Memory
2 GB RAM
4 GB RAM
Storage
10 GB available hard drive space
Internet
Broadband internet connection
Media
None for the recommended digital installation
Input
Keyboard and mouse required. Other input devices are not supported.
Resolution
1024 x 768 minimum display resolution



Mac

MINIMUM REQUIREMENTSRECOMMENDED SPECIFICATIONS
Operating System
OS® X 10.9.x (latest version)
OS X® 10.10.x (latest version)
Processor
Intel Core™ 2 Duo
Intel® Core™ i5 or better
Video
NVIDIA® GeForce® GT 330M or ATI Radeon™ HD 4670
NVIDIA® GeForce® GTX 780M or AMD Radeon™ HD 6970 or better
Memory
4 GB RAM
8 GB RAM
Storage
10 GB available hard drive space
Internet
Broadband internet connection
Media
None for the recommended digital installation
Input
Keyboard and mouse required. Other input devices are not supported.
Resolution
1024 x 768 minimum display resolution
Note: FileVault options and case-sensitive formatted volumes are not supported for installation of Blizzard games.
Verificado en BattleNet


Trailers del Juego.





Jugabilidad.
Como la mayoría de juegos de este tipo, Heroes Of Storm cuenta con cuatro roles principales para tus héroes:

  1. Asesino: Hacen mucho daño pero no soportan mucho daño.
  2. Guerrero: Hacen daño melee, y a la vez soportan mucho daño.
  3. Soporte: Tienen habilidades que apoyan a los aliados.
  4. Especialista: Tienen diferentes habilidades que apoyan al equipo.

Diferencias marcadas con otros MOBA.
En este juego se olvida el crear una build a partir de items, y a diferencia a medida avanzas en la partida vas seleccionando entre las diferentes pasivas (algunas veces activas), son actualizables a medidas los campeones suben de nivel.

Adicionalmente también los asesinatos enemigos y toda la experiencia se reparte en equipo, por lo que el teamwork es sumamente importante acá mas allá del trabajo individual.




Acceder a tu servidor CentOS/RHEL 7 desde Escritorio Remoto de Windows

Por alguna razón quisiste acceder remotamente a tu server y estabas usando tu pc Windows, es tiempo de que aprendas a configurar tu servidor para que permita sesiones remotas.



Requisitos

  • Tener instalado el modo gráfico de tu servidor (Gnome es funcional).
  • Tener configurados los repositorios EPEL y nux.
    • # rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm 
    • # rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm

Comenzamos
Instalamos xrdp desde los repositorios:
# yum -y install xrdp tigervnc-server

Iniciamos el servicio:
# systemctl start xrdp.service

Hacemos que el servicio este disponible siempre que inicie el servidor:
# systemctl enable xrdp.service

Creamos las reglas en el firewall:
# firewall-cmd --permanent --zone=public --add-port=3389/tcp

# firewall-cmd --reload

Debería funcionar, sino funciona revisa la sección de problemas que podrían presentarse. Para iniciar, entra en Windows colocas la ip de tu servidor (tiene que estar en la misma red que el cliente) y debería pedirte las credenciales.





Sección de problemas
Si estas acá es porque no pudiste accesar desde tu cliente al servidor.

La razón por la que no puedes ingresar a tu servidor podría ser SELINUX, revisa el estado:
#sestatus

Si el estado que te devuelve es diferente a "enabled", entonces detente acá, porque no es problema de SELINUX.

Si el estado esta "enabled", y verificando la línea current mode, tiene definido como valor "enforcing" entonces allí tenemos un problema.

Para resolverlo te recomiendo el siguiente camino:
  1. Usa un editor de texto, puede ser vi. Abre el archivo /ect/selinux/config
  2. Una vez has abierto el archivo cambia la línea SELINUX=enforced
  3. La línea deberá quedarte así: SELINUX=permissive
  4. Reinicia el servidor, e intenta la conexión nuevamente.
Si logras conectarte, hasta aquí llega el tutorial. Si no logras conectarte, habría que buscar otras soluciones para tu problema.

lunes, 20 de abril de 2015

Instalando tus drivers de Nvidia en CentOS 7

En esta ocasion instalaremos los drivers de la tarjeta grafica de Nvidia (en mi caso particular una Geforce 210).



Lo primero sera descargar el driver propietario desde la pagina de Nvidia:

Driver Nvidia

Actualizamos el sistema.

# yum update



 Lo siguiente sera actualizar el kernel:

# yum install kernel-devel kernel-headers gcc make



 Comparamos el kernel instalado con el que se corre actualmente, ambos deben coincidir, sino es asi reinicia y actualiza hasta que coincidan:


En mi caso coincide, si a ti no te coincide actualiza:

# yum -y upgrade kernel kernel-devel 

Colocaremos el diver por defecto Nouveau en lista negra, para evitar cualquier conflicto con el driver que instalaremos:

Tenemos algunas formas para hacerlo, pero lo recomendado es modificar dos archivos:

1. /etc/modprobe.d/blacklist.conf

A este le agregamos la linea:
blacklist nouveau 

2. /etc/default/grub en la parte que dice GRUB_CMDLINE_LINUX le agregamos:

rd.driver.blacklist=nouveau

quedara algo asi:

GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet rd.driver.blacklist=nouveau"

Habiendo modificado estos archivos actualizamos nuestrs configuraciones:

# grub2-mkconfig -o /boot/grub2/grub.cfg 

Reiniciamos el servidor.

Teniendo esta configuracion previa, estamos listos para instalar el driver de Nvidia:

Pasamos a modo sin graficos:

# init  3

Nos dirigimos al directorio donde esta el instalador de Nvidia y le daos permiso de ejectuarse:

# chmod +x <Nvidia file>.run

Luego lo ejecutamos:

./<Nvidia file>.run

Finalizamos acá regresando a modo gráfico:

# init 5

Cualquier consulta en los comentarios.


miércoles, 15 de abril de 2015

CentOS 7 y Windows 7 Dual Boot

¿Que tal gente?

Introducción.
Tenía días de no postear, en esta oportunidad les cuento que acabo de hacerme de un pc sencillo pero que esta haciendo las funciones de servidorcito. Se me ocurrió instalarle CentOS 7 y compartire con ustedes las experiencias con el mismo.





Comenzamos.
Para comenzar tenemos los siguientes requisitos:

  • Tener disco de instalación de Windows 7
  • Descargar el ISO de CentOS7: Descarga CentOS 7

Sección 1: Preparando el espacio en el disco (Windows 7).

(Ver imágenes del proceso seguido al final de esta sección).


  1. Instalamos el Windows 7 de la manera tradicional.
  2. Una vez instalado Windows 7, dirígete a la utilidad Administrador de Discos dando clic derecho en "Equipo" y seleccionando la opción Administrar:
    • En el administrador de discos selecciona la partición  de Windows (la mas grande) clic derecho y selecciona la opción reducir volumen.
    • Se tardara un poco en cargar, cuando cargue sera posible tomar un poco del espacio libre del disco actual y lo utilizaremos para nuestro SO Linux.
    • Seleccionamos una cantidad, recomiendo alrededor de unos 40 Gb para disponer de buen espacio.
  3. Una vez has reducido el disco  principal, se crea una partición nueva que le denomina espacio no asignado. A partir de este momento habrá que formatearlo para que posteriormente sea utilizado en la instalación de Linux.
    • Para darle formato, usaremos el asistente de Nuevo Volumen simple, dando clic derecho sobre la partición nueva.
    • Darle siguiente en todas las pantallas, hasta llegar a la pantalla que pide el sistema de archivos, el tamaño de la unidad de asiganción y  la etiqueta de volumen.
    • En la etiqueta de volumen cambiarlo por Linux o CentOS, algo que les recuerde que esa es la partición que utilizarán.
Sección 1: Paso 2 - Selecciona Reducir Volumen

Sección 1: Paso 2 - Cargando

Sección 1: Paso 2 - Reducir el tamaño del disco

Sección 1: Paso 3 - Formateando la partición

Sección 2: Instalando Linux en nuestra partición.
Una vez tengamos libre nuestra partición para Linux, lo siguiente es instalar el sistema operativo, para ello debemos preparar nuestro CD o nuestra USB con el instalador de CentOS 7.

Si lo harán a través de USB les recomiendo algún programa que les permita crear un instalador booteable a partir de una ISO tipo LinuxLive USB Creator. Adicionalmente recuerden configurar en la BIOS que bootee a partir de la USB.


Para mi caso yo lo hice con un LiveCD.


  1. En el menú seleccionar la opción Instalar CentOS.
  2. Cuando inicia el instalador, verificamos las opciones de Instalación, es decir el destino de la instalación. Esto será desde el menú principal de la instalación.
Seleccionamos la unidad de disco en donde esta nuestra partición y chequeamos la opción de configurar particionamiento .

Vamos a utilizar nuestra partición vacía primero seleccionándola y dándole el símbolo "-" y luego el símbolo "+"



Observamos que nuestra partición se encuentra disponible con el Label que le colocamos en Windows al formatear


Creamos una partición como /home alli estara nuestor home, el device type debe quedar como estandar y de tipo ext4
Creamos la partición SWAP, a diferencia de las demás con ext4 esta queda SWAP y siempre Tipo de dispositivo estándar


La partición mayor, esta en el mount point / con el resto de espacio disponible coloquen un valor mayor para tomar mas capacidad

Al final todas las particiones tienen que quedar estándar y ext4 (excepto la SWAP).

Continuén la instalación hasta que esta haya concluído, al reiniciar el equipo se podrá  apreciar el menú de selección del SO, pero no aparecerá Windows aún.

Sección 3: Configurando GRUB 2
En este punto ya tenemos instalado Windows 7 y CentOS, ya sea en modo gráfico o en modo minimal server (este es mi caso).

Iniciamos CentOS

Nos logueamos con nuestra cuenta

Una vez dentro de CentOS, si estamos en modo gráfico abrimos la consola y buscamos el archivo boot/grub2/grub.cfg y con el editor de texto que utilicemos lo abrimos con permiso de root.

En mi caso utilice vi:
# vi boot/grub2/grub.cfg

Agreguen una línea similar a esta:

menuentry "Windows 7" {
set root='(hd0,1)'
chainloader +1
}

Verificar en que partición tendrían su Windows, esto es importante!

Guardamos los cambios y actualizamos el grub:
# grub2-mkconfig -o /boot/grub2/grub.cfg

Reiniciamos el equipo, y ahora si aparecerá la opción de Windows 7


Cualquier duda o comentario, pueden consultármela y trataré de apoyarles.

jueves, 26 de junio de 2014

Iniciando con Spring Framework.

g


Spring Framework.

Spring es, como lo definen sus autores, un framework ligero para construir aplicaciones empresariales. Spring se encuentra dividido en distintos módulos, cada uno de los cuales se encarga de distintas funcionalides en nuestra aplicación. Posee un gran gama de módulos utilizados para distintas tareas, difícilmente todos se utilizan en una sola aplicación.

Si quieres saber más, te invito a visitar su sitio oficial: Spring Site


Construyendo un Hello Cruelty World con Spring.

Que necesitas:
  • Eclipse IDE (Yo utilizaré el Kepler).
  • Librerías Spring, bajalas Descargar Aquí
Comencemos:

1.
Crea Nuevo Proyecto.
Abrí el eclipse, crea un nuevo proyecto Java. Ponele el nombre que se te venga en gana, yo le puse SpringOne.



2.
Agrega las dependencias en el Java Build Path.

Lista de dependencias:
antlr-runtime-3.0.1
org.springframework.aop-3.1.0.M2
org.springframework.asm-3.1.0.M2
org.springframework.aspects-3.1.0.M2
org.springframework.beans-3.1.0.M2
org.springframework.context.support-3.1.0.M2
org.springframework.context-3.1.0.M2
org.springframework.core-3.1.0.M2
org.springframework.expression-3.1.0.M2
commons-logging-1.1

Descargalas desde aquí, o en el vínculo de más arriba.

Luego agregalas al Build Path. Clic en add external jars, selecciona las librerias que descargaste en el post (descomprimidas lógicamente).




3.
Crea una clase que la usaremos como bean.

Creen un paquete primero al que le pondremos com.betaroot, allí contendremos las clases para que no estén en el source.


Sobre el package creado crea la clase bean que la denominaremos HelloCruelty, el código para esta clase a continuación:

package com.betaroot;

public class HelloCruelty {
private String message;

public void getMessage() {
System.out.println("Your Message : " + message);
}

public void setMessage(String message) {
this.message = message;
}

}

4.
Crea una clase main.

Crea main sobre el paquete com.betaroot A esta le llamaremos MainClass.

package com.betaroot;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MainClass {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext(
"Beans.xml");

HelloCruelty obj = (HelloCruelty) context.getBean("helloCruelty");

obj.getMessage();
}
}

5.
Crea el XML de Configuración de Beans.

Este lo vamos a crear en el wizard de New:


Lo nombraremos Beans.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

   <bean id="helloCruelty" class="com.betaroot.HelloCruelty">
       <property name="message" value="Hello Cruelty World!"/>
   </bean>

</beans>

6.
Corre la aplicación.
El output que debería mostrar la app corriendo es:

Hello Cruelty World!


Explicación.

ClassPathXmlApplicationContext().
Permite cargar la configuración de los beans y eventualidades basadas en la API que se provee, se encarga de la creación e inicialización de todos los objetos.

getBean. 
este método lo utilizamos en el contexto creado. Este permite usar un ID para el bean que retorna un objeto generico que finalmente puede ser  convertido a un objeto actual. Una vez tienes este objeto, lo puedes usar para llamar cualquier método de clase.

Creación del XML de Configuración de Beans:
Por lo general los desarrolladores lo llaman Beans.xml. Es necesario asegurarse que el archivo este disponible en el CLASSPATH y que use el mismo nombre en la aplicación actual cuando se crea el application context como el que se muestra en la clase Main.

El Beans.xml es usado para asignar ID's únicas a los diferentes Beans y para controlar la creación de objetos con diferentes valores sin impactar ninguno de los Spring source files (archivos de fuente Spring). 

Cuando una aplicación Spring carga en memoria, el Framework hace uso del archivo de configuración para crear todos los beans definidos y asignarles un ID único definido en el tag <bean>. Puedes usar un <property> tag para pasar diferentes valores de variables usados en tiempo de creación del objeto.

sábado, 7 de junio de 2014

Oracle DB 11G - DBMS_CRYPTO: Encriptamiento y desencriptamiento de datos.

Antes de iniciar este tutorial, lo recomiendo para personas que tengan un conocimiento intermedio sobre PLSQL y a aquellos que les gusta investigar el porque de las cosas.




Introducción.
En esta ocasión aprenderemos a encriptar y desencriptar datos usando Oracle 11 G (en mi caso la versión XE).

Anteriormente se utilizaba el paquete DBMS_OBFUSCATION_TOOLKIT a partir de Oracle8i, que soporta encriptación DES y triple DES (Data Encription Standard), y con ciertas limitaciones (por ejemplo, los datos a encriptar han de ser un múltiplo de 8 bytes). 

En la actualidad se utiliza DBMS_CRYPTO. Soporta más formas de encriptación, como la AES (Advanced Encription Standard), que sustituye el anterior DES y no hay limitación con el número de carácteres.

Entre las características de DBMS_CRYPTO es que puede ser utilizado en un bloque PLSQL tal como un store procedure.

En la sintaxis, de la encriptación como de la desencripción se utilizan 4 parámetros:
src --> Indica datos de tipo RAW para desencriptar.
typ --> Tipo de cifrado.
key --> Llave de encriptación y desncriptación utilizada.
iv --> Es un vector opcional para bloque de cifrado. Por defecto se usa NULL.

Práctica.
Y esta es la parte divertida.

1. Crearé una tabla de parámetros, en donde almacenaré las llaves que usaré para la encriptación y desencriptación.

CREATE TABLE ADM.ADM_PARAMETER
(
  ID_PARAMETER    NUMBER(4)                     NOT NULL,
  PARAMETER_NAME  VARCHAR2(10 BYTE)             NOT NULL,
  PARAMETER       VARCHAR2(500 BYTE)            NOT NULL
)

2. La poblaré con una llave de encriptación (inventada):
Insert into ADM.ADM_PARAMETER
   (ID_PARAMETER, PARAMETER_NAME, PARAMETER)
 Values
   (1, 'KEY_CRYPT', 'a5b7c9d0a5b7c9d0a5b7c9d0a5b7c9d0a5b7c9d0a5b7c9d0a5b7c9d0a5b7c9d0');
COMMIT;

3. Paso muy importante, para Oracle 11 XE hay que habilitar permisos de EXECUTE sobre DBMS_CRYPTO, de lo contrario no correrá:
  • Entramos a la base como SYS as SYSDBA.
  • Ejecutamos el comando:
    • grant execute on dbms_crypto to PUBLIC;
Esto para poder ejecutarlo en cualquier USER, sino solamente agregamos el USER que queremos que tenga permiso.

Si esto no les sirve GOOGLE, en mi caso fue funcional.

4. Una vez tenemos permisos de ejecución, crearemos la lógica de encripción y desencripción. En mi caso particular cree un paquete al que le llame ADM_UTIL. Adjunto el código del paquete:


La parte log no la usaremos para este ejemplo (la función RECORD_LOG especificamente).

5. Ahora, bastará ejecutar el siguiente Bloque anónimo para probar su funcionalidad:

DECLARE
in_string VARCHAR2(200) := 'Texto Encriptado';
out_string VARCHAR2(200);
BEGIN
out_string := ADM.ADM_UTIL.encryptor(in_string);
DBMS_OUTPUT.PUT_LINE('Encrypted Text: ' || out_string);
out_string := ADM.ADM_UTIL.decryptor(out_string);
DBMS_OUTPUT.PUT_LINE('Decrypted Text: ' || out_string);
END;

Habiliten el DBMS_OUTPUT  de su administrador de base de datos para ver los resultados.

Hasta aquí con este tutorial, si hay preguntas en los comentarios.

miércoles, 28 de mayo de 2014

Instalación de Oracle Database Express Edition 11g en Windows 7 64 bits

Si han encontrado este tutorial es porque como yo, tuvieron problemas para instalar esta versión de la base de datos en su computadora ya que el instalador por defecto es para 32 bits y su equipo cuenta con el sistema 
operativo de 64 bits.



Se los explicaré en 8 pasos que he testeado en dos equipos diferentes.

EL PROCESO:

1. El primer paso será bajar la base de datos, si ya lo hicieron solo omitanlo. Si no lo han hecho haganlo desde acá:


2.Extraigan el archivo en zip que descargaron y busquen el archivo SETUP, ejecutenlo como administrador.

3.La instalación comienza normal, hasta que el instalador despliega el primer error similar al siguiente:
<The installer is unable to instantiate the file C:\Users\ … \KEY_XE.reg. This file does not appear to exist.>

4. No hay que cancelar nada hasta este punto, solo hay que crear en la ruta de temporales similar a:
<C:\Users\betaroot\AppData\Local\Temp\{8D6436F9-C040-4885-9DCD-32A8781DC437}\>

Nota: el código despues de <Temp\...> varía en cada instalación, por lo que deben buscar la que les corresponde.

Copien la ruta.

5. Abran regedit como administrador y localicen el folder <HKEY_CLASSES_ROOT → Installer → Products → 266B7A503.... → SourceList → Media >
allí encontrarán un archivo denominado "1" bajo el campo de datos pueden observar "DISK1;1". Click allí y Modificar.

6. Rellenar con la ruta que copiaron en el paso 4:
<C:\Users\betaroot\AppData\Local\Temp\{8D6436F9-C040-4885-9DCD-32A8781DC437}\>

7. Si ya copiaron Click en OK y cierren el regedit, regresen a la instalación de Oracle y presionen OK en el diálogo.

8. Esperen a que la instalación finalice, y prueben la conexión a su nueva base instalada.

9. Cualquier duda será un gusto atenderla en los comentarios.