jueves, 26 de marzo de 2020

Como jugar capítulo 5 Sigil de Doom con GZDoom

GZDoom y Sigil

GZDoom permite jugar The Ultimate Doom con nuevas características como OpenGL, transparencias, más resoluciones, teclas al estilo Quake, permite saltar, nadar, skins, etc.

Bajar GZDoom 4.3.3 u superior de: https://zdoom.org/downloads

Instálalo en tu disco duro. En mi caso lo dejé en:

D:\juegos\doom-sigil\gzdoom-bin-4-1-2b-x64\gzdoom.exe

Doom

Ve a https://www.gog.com, baja Gog Galaxy (el cliente) y compra The Ultimate Doom a 3 USD cuando está en oferta. Apoya esta gran empresa de CD Project Red que son quizá la única empresa que no lucra como el resto.

Ve a la carpeta:

C:\Program Files (x86)\GOG Galaxy\Games\DOOM

Copia el archivo DOOM.WAD y pégalo en la carpeta donde tienes GZDoom. Pesa  apenas 11.8 MB.

...\gzdoom-bin-4-1-2b-x64\

Si inicias gzdoom.exe y tienes más de un WAD, te preguntará cual Doom iniciar.

SIGIL Megawad

Sigil es el 5to capítulo de Doom (el primero) como celebración del 25 aniversario del Doom que salió el año 1993.

Baja Sigil de
https://www.romerogames.ie/si6il

Hay dos versiones:

SIGIL gratuito
SIGIL_v1_21.zip. Pesa 3.1 megas

Sigil de Pago con música de Rock pesado ¡Recomendado!
Hay una versión con música dark excelente para jugarlo, que se vende en el sitio John Romero a unos 7.3 USD y que pesa 312 MB.
SIGIL + Buckethead (de pago): SIGIL_REGISTERED_v1_21.zip

Aquí un vídeo con la música y con otro Mod llamado Project Brutality: https://www.youtube.com/watch?v=s2dN13mJ7OM

Ya sea la versión que decidas:
Descomprimirlo en una carpeta dada, ejemplo D:\juegos\doom\

Ejecutando versión Free
Copia SIGIL_v1_21.wad y pégalo en la carpeta de gzdoom

D:\juegos\doom-sigil\gzdoom-bin-4-1-2b-x64\

Luego selecciona SIGIL_v1_21.wad y suéltalo sobre gzdoom.exe. Se iniciará Doom Sigil con la música clásica de siempre.


Ejecutando versión Pagada

Son 4 archivos:
  • SIGIL_COMPAT_v1_21.wad: No es para  GZDoom.
  • SIGIL_SHREDS.wad
  • SIGIL_SHREDS_COMPAT.wad: No es para  GZDoom.
  • SIGIL_v1_21.wad
Copia SIGIL_v1_21.wad y SIGIL_SHREDS.wad de la carpeta

D:\juegos\doom\SIGIL_REGISTERED_v1_21\
y pégalos en la carpeta de gzdoom:

D:\juegos\doom-sigil\gzdoom-bin-4-1-2b-x64\

Recomiendo partir presionando dos veces a columna "orden" del explorador de Windows. Así los archivo que vamos a ver a continuación quedan juntos.

Luego con cuidado y en este orden, selecciona SIGIL_v1_21.wad y luego presiona Shift y selecciona SIGIL_SHREDS.wad, ahora algo muy importante, con el puntero del mouse selecciona SIGIL_v1_21.wad y de ahí, con el botón izquierdo del mouse, arrastra y suelta ambos suéltalos encima de gzdoom.exe.

Al entrar al juego de inmediato escucharás un música de Rock distinta a la clásica.
Eso es todo por hoy, nos vemos.

lunes, 9 de marzo de 2020

Usar SonarQube 8 Community con proyectos .Net Framework

Hola a todos. Esta vez vamos a instalar la espectacular herramienta SonarQube 8 Community edition, para validar proyectos .Net Framework. En mi caso usaré un aplicación MVC 4, escrita en C# usando .Net Framework 4. Esto sirve perfecto para aplicaciones .Net 2.0 o de MVC 5 con Framework 4.5,  tanto escritos en VB.Net o C#. Fue un trabajo de investigación de varios días ya que hay mucha información desactualizada en la Red, dispersa, e incluso en el sitio oficial de SonarQube en GitHub.
SonarQube para los que no saben, permite validar el código, buenas prácticas, temas de seguridad, como top 10 OWASP, bugs, "código que huele mal" o Code Smell y entrega líneas o tips para corregirlo, a veces, hasta con las líneas de código correcta en el lenguaje que estás usando y que se deben usar. Osea, mas en bandeja no se puede. Los resortes quedan online para todos los del team o jefatura, haciendo visible el stastus con colores, tipo semáforo.

Lo primero, recomiendo tener un Servidor Linux, puede ser CentOS o RHEL con Docker instalado, para que tenga el Servidor de SonarQube, de lo contrario en tu mismo Windows 10 Prof/Ent, deberás tener Docker Desktop for Windows  para que entregue el servicio a tu team/usuarios.

Parte 1: Dejar SonarQube corriendo con un usuario no admin


1. Crear Red para que los contenedores de SonarQube y la BBDD Postgres se comuniquen

docker network create redsonarqube

2. Bajar imagen y levantar contenedor de BBDD Postgres SQL

docker run --name sonar-postgres -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -d -p 5432:5432 --net redsonarqube postgres

Ejecutar docker ps -a
Para ver como quedó corriendo la BBDD.
3. Bajar imagen y levantar contenedor de SonarQube 8 Community. Quedará corriendo en el port 9000 que es el port por defecto de SonarQube.

docker run --name sonarqube -p 9000:9000 -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar -e SONARQUBE_JDBC_URL=jdbc:postgresql://sonar-postgres:5432/sonar -d --net redsonarqube sonarqube:8-community

Ejecutar docker ps -a
Para ver como quedó corriendo Sonarqube.

3. Probar. Accede yendo a

http://localhost:9000

Y verás ventana de login:
Si lo dejas en un servidor o tu PC lo quieres dejar con ese servicio, debes darle al resto del team o quien quiera acceder la IP Fija del equipo, por ejemplo:

http://192.168.10.1:9000


4. Logeate a SonarQube con las credenciales.
user: admin
pass: admin

5. Crear un usuario no admin
Usuario: test
pass: 1234

Ve a Administration - Security - Users
En los datos, puedes colocar login, nombre, correo opcional, y clave.
Si entras con ese  usuario test también funciona. 
Ese usuario se lo puedes dar al resto del team.

Parte 2: Configurar .Net para que compile, revise el código y publique en SonarQube


1. Bajar SonarScanner for MSBuild para cada equipo del desarrollador con Visual Studio

https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-msbuild/

Bajar el que dice: .NET Framework 4.6+

sonar-scanner-msbuild-4.7.1.2311-net46.zip

Descomprimir en una carpeta dada y cambiarle el nombre por uno más corto, ejemplo:

C:\sonarqube\sonar-msbuild\
2. Configurar en cada equipo desarrollo el uso de SonarQube server

Ir a la carpeta

C:\sonarqube\sonar-msbuild\sonar-scanner-4.1.0.1829\conf

y abrir archivo sonar-scanner.properties

#Configure here general information about the environment, such as SonarQube server connection details for example
#No information about specific project should appear here
#----- Default SonarQube server
sonar.host.url=http://localhost:9000
#----- Default source code encoding
#sonar.sourceEncoding=UTF-8

Esta parte cámbiala por el Servidor de SonarQube
http://192.168.10.1:9000

3. Agregar dos Variables de Ambiente

Ir a las Variables de Entorno, ir a Variables de Sistema (sección inferior) y editar la variable Path, agregar:

- la ruta donde está SonarScanner.MSBuild.exe
  C:\sonarqube\sonar-msbuild

- la ruta de sonar-scanner.bar
  C:\sonarqube\sonar-msbuild\sonar-scanner-4.1.0.1829\bin
(Las rutas de la imagen pueden variar de acuerdo a la guía)

Prueba que quedó ok. Ve a CMD y ve a C:

SonarScanner.MSBuild.exe

(en la documentación de https://github.com/SonarSource/sonar-scanning-examples/tree/master/sonarqube-scanner-msbuild/CSharpProject Dice que se debe usar SonarQube.Scanner.MSBuild.exe pero al correrlo dice que está deprecado en cambio usar SonarScanner.MSBuild.exe)

Presiona Enter y debe decir lo de abajo:
Para probar el Scanner que es el más importante, solo escribe en CMD:

sonar-scanner.bat

Te dirá la versión de SonarQube del servidor. También, tratará de buscar un proyecto para escanear y dará error.
4. Instalar MsBuild 14 o superior en cada equipo de desarrollo

Esto se pide en la documentación oficial: https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-msbuild/

Lo primero, es hacer un test rápido. Ve a CMD y escribe

msbuild.exe

Y debe indicar versión 14 o superior. Si te dice una menor como 10 u 12, sigue leyendo.
- Instalar Microsoft .NET Framework 4.6.2
https://www.microsoft.com/es-cl/download/details.aspx?id=48159

Instalar Visual Studio 2015 Edición Community con Update 3
https://my.visualstudio.com/Downloads?q=Visual%20Studio%202015%20with%20Update%203

Este software instala el MsBuild 14 que es la necesaria por SonarQube.

Valida que tengas el archivo (se crea al instalar el IDE recién indicado):

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\ Microsoft.WebApplication.targets

Agregar a las variables de ambiente de sistema, variable Path, la ruta de MsBuild.exe

C:\Program Files (x86)\MSBuild\14.0\Bin

Probar de nuevo yendo a DOS y escribiendo

msbuild.exe

Y ahora si debe indicar versión 14.

5. Configurar reglas de validación a excluir/ignore
Ir a Administración – Configuration – Analysis Scope

Ir a Sección Ignore Issues on MultipleCriteria y setear dos ítems:

- Rule Key Pattern

Es la regla que queremos ignorar. Por ejemplo, si miramos un bug y vemos el detalle, puede tener esto:

A: Error dice: CSS properties should be valid, y tiene el código css:S4654.

Otro caso que vamos a quitar es
B: Images tags and buttons should have an "alt" attribute
Tiene el código: Web:ImgWithoutAltCheck

Si queremos omitir ambos casos, debemos poner ambos códigos.

- File Path Pattern

Es el patrón regexp de carpetas o archivos que aplicará ese ignore. Ejemplo si queremos aplicarlo sobre todos los CSHTML:

**/Ejemplo.Web/**/*.cshtml

Luego clic en Save.
Nota: si ya tienes un proyecto y quieres volver a procesarlo con este ignore, debes volver a ejecutar el Build al menos (y no Rebuild completo).

6. Ejecutando Bat con Etapas SonarQube

Coloca la solución .Net en un sitio fácil acceso, ejemplo:

C:\SLN\
Donde dentro de SLN\ está el sln de su solución .Net.

Ejemplo
C:\SLN\Ejemplo.Web\   ---> CSHTML, JS, CSS, etc
C:\SLN\mi.sln

Crea un archivo .bat EjecutaSonarQube.bat con esto:

CD "C:\SLN\"

SonarScanner.MSBuild.exe begin /v:"1.0" /n:"MiProyecto" /k:"RELEASE_1" /d:sonar.host.url="http://192.168.10.1:9000" /d:sonar.verbose=false /d:sonar.login="test" /d:sonar.password="1234" /d:sonar.exclusions="**/Ejemplo.Web/**/jquery.unobtrusive-ajax.js, **/Ejemplo.Web/**/MicrosoftMvcAjax.debug.js, **/Ejemplo.Web/Properties/PublishProfiles/**/*, **/Ejemplo.Web/Scripts/MicrosoftAjax.debug.js"

MSBuild.exe "C:\SLN\mi.sln" /t:Build


SonarScanner.MSBuild.exe end /d:sonar.login="test" /d:sonar.password="1234"

Expliquemos un poco. SonarQube tiene 3 etapas:

- Begin

Es el seteo de parámetros de SonarQube. Va el usuario, clave y Host del Servidor de SonarQube, carpetas o archivos excluidos:

/n: Nombre del proyecto

/k: key única, permite navegar directo, ejemplo, si mi key es test_123 permite navegar directo

http://192.168.10.1:9000/dashboard?id=test_123

/v: versión, debería subir en cada Build o Rebuild

Ejemplo: /v:1.0

/d:sonar.verbose: true o false. Agrega más información tanto en análisis del cliente o del servidor.

/d:sonar.exclusions: archivos o carpetas a excluir. En mi caso sacaré archivos js de Microsoft que no quiero analizar ya que producen falsos positivos. Si agregas más de uno, sepáralos por coma.

Más parámetros acá: https://docs.sonarqube.org/7.4/analysis/analysis-parameters/

En el .Bat se ve acá esta etapa:
SonarScanner.MSBuild.exe begin /v:"1.0" /n:"MiProyecto" /k:"RELEASE_1" /d:sonar.host.url="http://192.168.10.1:9000" /d:sonar.verbose=false /d:sonar.login="test" /d:sonar.password="1234" /d:sonar.exclusions="**/Ejemplo.Web/**/jquery.unobtrusive-ajax.js, **/Ejemplo.Web/**/MicrosoftMvcAjax.debug.js, **/Ejemplo.Web/Properties/PublishProfiles/**/*, **/Ejemplo.Web/Scripts/MicrosoftAjax.debug.js"

- Etapa de Build o Rebuild

En el bat se ve en esta sección:
MSBuild.exe “C:\SLN\mi.sln” /t:Rebuild

Si ha has hecho Rebuild varias veces y no quieres hacer todo el proceso de nuevo usas “Build”:
MSBuild.exe “C:\SLN\mi.sln” /t:Build

- Etapa End

Se coloca el usuario y clave del servidor (usuario no admin) ya que aquí se envía la información al server . En el bat se ve en esta sección.

SonarScanner.MSBuild.exe end /d:sonar.login="test" /d:sonar.password="1234"
Ejecutando el Bat
Un truco simple, es abrir CMD y arrastar y solar el bat
Luego presionar Enter.

Yo recomiendo tener dos .bat

   EjecutaSonarQubeBuild.bat   -- ejecuta Build
   EjecutaSonarQubeRebuild.bat  -- ejecuta Rebuild

Así lo ejecutas según el caso.

Al presionar Enter se puede demorar unos 10 minutos si es Rebuild, o 5 minutos si es Build, aunque los tiempos varían según el equipo que corre el build y la calidad de la red (debe subir los informes a SonarQube server local)

Se verá en pantalla todos los pasos y detalle de compilación. Cuando termine mostrará resumen.
Nota: A veces se queda pegado pegado en "More about the report…", presiona Control + C para que termine de procesar y muestre resumen.

7. Validando reportes en SonarQube server

Si entras a SonarQube - Projects, se verán todos los proyectos que se están escaneando
Si haces clic en el proyecto que acabas de subir, se ve el detalle.

Si entras a Vulnerabilities se ve el detalle de los errores de seguridad.
Si haces clic en Bugs se ven los errores (no de seguridad)

Si pinchas en un error dado, se ve el detalle y la línea donde está el error.
Ahora si haces clic en See rule se ve una explicación del error y como corregirlo en ese lenguaje:


Si mandas a compilar de nuevo con el .bat. se genera otro proyecto, ya que la fecha-hora cambió.

8. Dejar los reportes más nuevos
Puedes seleccionar el proyecto de SonarQube Server, con las credenciales de Admin, entrar, Administration , Deletion. Así borras los reportes más viejos.

Bueno, con esto, te dejo a ti el resto, investiga y juegueee.