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.

martes, 18 de febrero de 2020

Docker en Windows parte 8: .Net Core 3.1 con Docker Linux

Hola a todos, ahora veremos como subir una aplicación simple .Net Core a Docker para Linux.
Usaremos Visual Studio Code.

Parte 7: https://naldog.blogspot.com/2019/10/docker-en-windows-parte-7-contenedor-de.html
_____________________________________

NOTA: Antes que nada, disculpar la calidad de las imágenes ya que son imágenes exportadas de un Word.

Referencias



Bajar Visual Studio Code

Es gratis y no muerde.

Instálalo.

Ejecutar Aplicación Net Core y que quede corriendo localmente

Creamos una aplicación simple. Un servicio REST en Net Core.


Abrirlo y abrir terminal (New Terminal)
Escribir

cd c:
mkdir netcore
cd netcore
dotnet new WeatherForecast

Abrir la carpeta netcore
Correr desde la Terminal

dotnet run

Quedará corriendo en port 5001
Entrar al link
https://localhost:5001/WeatherForecast/

Se verá el JSON

Corriéndola desde Docker (Linux)

Ejecutar Docker y debe quedar usando contenedores Linux
Debe decir Switch to Windows containers (quiere decir está en modo Linux)



Agregar dockerfile

Averiguar nombre de DLL del proyecto en bin/debug/netcoreapp3.1
Agregar archivo dockerfile a la raíz del proyecto. Colocar el nombre de la dll, es case sensitive.
El proyecto se llama netcore, por lo tanto, la dll se llama netcore.dll


FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /app
COPY *.csproj ./
RUN dotnet restore
COPY . ./
RUN dotnet publish -c Release -o out
# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "netcore.dll"]

Build image

Ir con el terminal a la carpeta donde está el dockerfile y ejecutar:
docker build -t netcore .
Ejecutar

docker images

Debe estar creada la imagen

Correr contenedor

Ejecutarla usando port 8080 externo (equipo local) y 80 (interno del docker)

docker run -d -p 8080:80 --name cnt_app netcore

Debe quedar en estado UP X seconds
Probar usando

Si lo parseamos usando
Se verán los campos más ordenados:

Opcional: habilitar CORS

Habilitar CORS (acceso de otros origines o APIs) sino no se puede consumir desde otro dominio construido con otros Front como Angular.

Startup.cs

public void ConfigureServices(IServiceCollection services)
        {
            services.AddCors(o => o.AddPolicy("MyPolicy", builder =>
            {
                builder.AllowAnyOrigin()
                    .AllowAnyMethod()
                    .AllowAnyHeader();
            }));

            services.AddControllers();
        }
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            app.UseCors("MyPolicy");

__________________________________

Parte 7: https://naldog.blogspot.com/2019/10/docker-en-windows-parte-7-contenedor-de.html

sábado, 15 de febrero de 2020

Megaman 9 y Megaman 10 de WiiWare con Dolphin 5 en PC (Feb 2020)

Hola, aquí va como logré hacer andar el Megaman 9 y Megaman 10 de WiiWare en Emulador Dolphin usando un Joystick.

Si quieres comprarlo está en Steam, en el Mega Man Legacy Collection 2, que recomiendo tenerlo, tiene una base de datos con imágenes, detalle de los enemigos, etc. Píllalo en las ofertas navideñas, otoño o halloween, a 10 USD o menos incluso.

Bueno vamos lo nuestro.

1. Baja Dolphin para PC
Baja la que dice Versiones Estables. Actualmente es la 5.0.
Instálalo.

https://es.dolphin-emu.org/download/

2. Baja los WADs de Megaman 9 y Megaman 10, pesan entre 15 y 19 MB.
https://mega.nz/#F!MxdVyIxI!Rvia23HER9s-M9X7k-IsyA

(nada de esas basura de link falsos, son link directo)

Si quieres bajar otros WADS hay muchos acá:
http://www.ravmn.cl/content/wads-virtual-console-ntsc

3. Descarga ambas carpetas en C:\juegos\Wiiware

4. Ve a Dolphin y apunta a esas carpetas.
Opciones - Configurar - Directorios - Añadir - Selecciona una carpeta de un juego y luego la otra.


Se verán los juegos cargados:
Los juegos son SOLO los dos de arriba. Los de abajo no son juegos.

5. Configura el control.
Entra a la opción de Mandos. Selecciona Control Wiimote 1.
Esta parte es importante ya que al parecer en la Wii se juega con el control girado, entonces vamos a mapear de esta forma los controles.

Yo tengo este control MSI Force GC20 (recomiendo comprarlo, el mejor control gamer que he tenido y no sale más de 30 USD en Amazon).
Se ve un A, B, X e Y a la derecha.
Al centro un Select y un Start.
Atrás tiene L1 y L2, R1 y R2. 

En base a estos botones configuramos así los botones del Wiimote.

Si quieres un detalle de como lo usamos en Megaman sería estos botones (no se usan muchos)

- L2 - lo asignamos al home de Wii
- X: disparo y Cancel en los menús
- A: salto
- Select: ranking de otros players y su tiempo
- Start: menú de armas de Megaman

- Lo movimientos de la cruceta déjalos tal cual la foto de la parte derecha. Yo uso la palanca analógica.

Este seteo del control lo puedes guardar con un nombre para futuro cargarlo (en caso que juegues otros juegos), ponle "Megaman joystick" si quieres, y pinchas en Guardar.


6. Ejecuta los juegos
Ya quí los ejecutas. Si quieres seteas cosas gráficas, velocidad, etc. Ahí es tema tuyo.
Por defecto corren a 60 FPS.

Megaman 9

Megaman 10 

Lo mejor al correrlos en emulador es que puedes Salvar (Shift + F1) o Cargar (F1). Ya que estos juegos son infernálmente difíciles.

Esto es todo. Nos vemos.

martes, 19 de noviembre de 2019

OpenShift 3.11 como crear un nuevo usuario y darle permisos

Un dato corto, muy útil si están Administrando Red Hat OpenShift, en mi caso uso versión 3.11, aquí unas tareas que les hayan pedido o a uds mismos les haya nacido hacer:

¿como crear un nuevo usuario y darle permisos adecuados?
En mi caso tengo un solo user admin.
Este user tiene creo un proyecto llamado ejemplo
Quería tener otro user llamado naldo con menos permisos, solo lectura a ese proyecto ejemplo ya creado por el admin.
Al crear ese user nuevo, que pueda ver y editar el proyecto por defecto Default.

Todo esto me demoré dos días investigando y leyendo, ya que como verán la información están clarita jajajaj. Bueno acá se lo traigo "cocinado".

Uso Sistema Operativo RHEL 7.7. Esto es linux papá.

Pasos

Acceder al nodo, en mi caso uso Putty desde Windows.

ver archivo
vim /etc/origin/master/master-config.yaml

Fijarse en linea "file"

ejemplo:

  - challenge: true
    login: true
    mappingMethod: claim
    name: deny_all
    provider:
      apiVersion: v1
      #kind: DenyAllPasswordIdentityProvider
      kind: HTPasswdPasswordIdentityProvider
      file: /etc/origin/master/htpasswd
  masterCA: ca-bundle.crt

en mi caso decía:
      file: /etc/origin/master/htpasswd

Con ese dato, podemos crear user naldo (no admin) y setear una pass
sudo htpasswd /etc/origin/master/htpasswd naldo
pass: coloca una password

Aquí por defecto podrá ver el proyecto default de OpenShift con permisos Edit (puede modificar cosas). Además puede crear sus propios proyectos dentro de OpenShift.

Revisar que la key esté cambiada (ver fecha)
ls -l /etc/origin/master/htpasswd

Revisar que hayan 2 password (admin y el nuevo user)
cat /etc/origin/master/htpasswd

Darle rol de View (sólo lectura) a usuario naldo para proyecto ejemplo
oc adm policy add-role-to-user view naldo -n ejemplo

Darle permisos de Edit solamente a proyecto default. Al crearlo lo hace por defecto, pero lo podemos hacer de todas formas:
oc adm policy add-role-to-user edit naldo -n default

Ver permisos de un usuario para un proyecto dado así chequeamos que esté todo ok:
oc get rolebinding -n ejemplo
oc get rolebinding -n default

En mi caso no me hizo falta reiniciar cluster, ya que en algunos lados indicaba que había que hacerlo.
Pero en caso de (no lo he probado) se hace así:

# master-restart api
# master-restart controllers

Otros comandos útiles

Quitar permisos de edit a user pepe en proyecto ejemplo2
oc adm policy remove-role-from-user edit pepe -n ejemplo2

Quitar un usuario pepe de un proyecto llamado default (con todos sus roles)
oc adm policy remove-user pepe -n default

Fuentes