lunes, 20 de junio de 2022

Elsa ERR_CONNECTION_REFUSED 5000 - 5001

ES

Estoy trabajando en la implementación de un nuevo motor de workflow, pero que funcione totalmente agnóstico, que permitiera definir los flujos de trabajo usando código C# o usando JSON y YAML. También que tuviese un diseñador de flujo de trabajo en forma de componente web HTML5

 La herramienta escogida fue ELSA Workflow es un conjunto de bibliotecas de flujos de trabajo que permiten la ejecución de flujos de trabajo en cualquier aplicación .NET Standard, porque tiene flexibilidad, conveniencia,  modularidad  y  muchas de la características de la mayoría de motores de flujo de trabajo y herramientas de diseño. 

 Entrando en materia el problema que nos da ERR_CONNECTION_REFUSED en el port 5001, es que cuando seguimos la mayoría de los tutoriales es que dejamos el puerto 5000 y/o 5001 por defecto de ELSA y cuando  creamos el proyecto ASP.NET Core (al menos con las líneas de comando)  se ocupan por defecto los puestos 5000 y 5001, y por eso entra en conflicto.

 Para resolver este problema debemos dirigirnos a la carpeta Properties, en el archivo launchSettings.json  de nuestro proyecto Asp.net WEB, y en la propiedades cambiar los puertos, y ya con esto te puedes resuelves el conflicto.



EN

I'm working on implementing a new workflow engine, but one that works completely agnostic, that allows you to define workflows using C# code or using JSON and YAML. Also that it had a workflow designer in the form of an HTML5 web component

 The chosen tool was ELSA Workflow is a set of workflow libraries that allow the execution of workflows in any .NET Standard application, because it has flexibility, convenience, modularity and many of the features of most workflow engines. work and design tools.

 Going into the matter, the problem that ERR_CONNECTION_REFUSED gives us in port 5001, is that when we follow most of the tutorials we leave port 5000 and/or 5001 by default of ELSA and when we create the ASP.NET Core project (at least with command lines) positions 5000 and 5001 are occupied by default, and that is why it conflicts.

 To solve this problem we must go to the Properties folder, in the launchSettings.json file of our Asp.net WEB project, and in the properties change the ports, and with this you can solve the conflict.

lunes, 2 de septiembre de 2013

Como crear los enlces corto /enlaces/link



En ocasiones vemos que la gente comparte enlaces cortos y nos direcciona a una página en específico. Normalmente esto lo vemos sobre todo en twitter, bueno una herramienta que podemos utilizar y es gratuita está en el siguiente URL: https://bitly.com/shorten/ y nos devuelve el enlace como necesitamos usarlo espero que le sirva.

Como Corregir error de SID Duplicado en Windows ( Sysprep )

En Ocasiones no cuando utilizamos duplicadores de imagen y hoy en dia programas de virtualización (sobre todo cuando clonamos la máquina virtual), con Windows, nos encontramos sobre todo cuando queremos meterla en dominio(o tambien si queremos realizar Servicio de implementacio de Windows "WDS" por sus siglas en ingles) que Windows nos indica que el SID del equipo esta duplicado.

El error lo emite porque Windows asigna un identificador único en cada instalación, sería normal pensar que se pierde entonces todo lo que hicimos, la respuesta es no si tus programa no dependen del nombre del equipo por ejemplo SQL. Debemos reconfigurar en la tarjeta de red, nombre del equipo, y en el caso de programas que dependan del nombre del equipo (SQL por ejemplo). 

Para corregir el error de SID Duplicado lo único que debemos realizar son 4 solo pasos:

1. Ejecutamos cmd, para entrar a la línea de comando.
2. Nos vamos a  con cd C:\windows\system32\sysprep (Evidentemente si tenemos Windows instalado en c: y en directorio Windows).
3. Escribimos el comando sysprep, y escogemos la primera opción y la opción de generalice.
4. Reconfigurar la Tarjeta de Red, Nombre del Equipo, y los programas que dependan del nombre del Equipo.

sábado, 26 de enero de 2013

Como Instalar Windows Sobre MAC, y que Virtualizador Usar


Recientemente un gran amigo me pregunto cómo instalar Windows en Mac y que le comendaba, por supuesto mi respuesta tenía la premisa que uso le van a dar y que características tenía el equipo. Estas preguntas son esenciales porque si tienes un equipo con 2Gb de memoria y un procesador Dual Core, y solo es para ejecutar de vez en cuando algún programa que no tiene Mac o es liviano puede virtualizar la máquina, pero si va correr programas que demanden mucho equipo, con esta característica de equipo y si tiene suficiente disco es mejor que instale una partición de Windows.

Aunque realmente hoy en día los equipos que uno compra son mayores a iCore 5 y tienen más de 4GB, pienso que la solución siempre va ser mejor virtualizar, por distintos Beneficios y para mí los principales (viéndolo desde usuario, esta no es una discusión técnica) son:

  1. No deben reiniciar para cambiar de sistema operativo y pueden trabajar con los “2 al mismo tiempo”
  2. Cuando uno virtualiza tiene la ventaja de poder copiar la máquina virtual para respaldo, trasladarla de un equipo a otro sin trauma y sin tener que pensar, si formateo la maquina tengo que instalar todo nuevamente.
  3. Puede copiarla en un medio externo y ejecutarla desde ahí cuando la necesite, por lo tanto me ahorro el espacio en disco, y adicionalmente dependiendo del programa con el virtualicemos podemos ejecutarlo en otros Sistemas Operativos(SO, normalmente cuando vemos esta abreviación significa Sistema Operativo) .
  4. Cuando uno usa 2 particiones normalmente los usuario no encuentran la manera de pasar un archivo de un SO al otro, sin reiniciar y cambiar de SO. Por otro lado la Ley de Murfi dice que cuando necesites un archivo seguro que están en el SO distinto al que estás trabajando jejejejej. Cuando uno virtualiza normalmente los programa tienen las herramientas para trasladar los archivo de la Máquina virtual(VM) a la real.
Entrando en materia en Mac tenemos 3 programa para correr Windows:
  1. BootCamp: Es un software que se incluye con OS X Lyon para ejecutar Windows en Mac Con procesadores Intel, y este es en particular se instala en partición y debe reiniciarse el equipo para pasar de un SO a otro.
  2. Paralles: Este es el virtualización por excelencia para los usuario de Mac, es sumamente rápido estable, pero tiene la limitante de que solo está hecho para Mac y no tiene un homólogo en Windows y Linux, por lo tanto no podrían pasar la VM tan fácilmente ya que debe pasar por un proceso de conversión.
  3. VM Fusion: Al igual que Parallels es un virtualizador muy bueno, de echo es el que yo utilizo y tiene la ventaja en que tiene su homólogo(VM Ware) en Windows y Linux, por lo tanto podemos pasar nuestra VM de una maquina a otra sin problema.

lunes, 21 de enero de 2013

Configuracion basica o minima para proteger mi Router Mikrotik


En ocasión y dependiendo del tipo de router que compremos no traen ninguna regla de protección porque suponen que la persona que está configurando tiene los conocimientos mínimos del mismo, y sin embargo aun cuando la persona tengas dichos conocimiento no siempre se acuerda de las reglas.

En base a esto, me tome la tarea de sacar las reglas básicas para proteger nuestro router por lo menos del internet. Evidentemente parto de que el internet esta en el ether1, es decir en la interfaz 1 del router.

/ip firewall filter
add action=accept chain=input comment="default configuration" disabled=no \ 
     protocol=icmp
add action=accept chain=input comment="default configuration" \
    connection-state=established disabled=no
add action=accept chain=input comment="default configuration" \
    connection-state=related disabled=no
add action=drop chain=input comment="default configuration" disabled=no \
    in-interface=ether1

Configurando la Hora en Mikrotik (NTP Cliente)

Como mencione anteriormente Mikrotik no es un router común y la mayoría de las opciones hay que hacerla desde 0, una de ella es la hora.

Uno de los motivos por los cuales es necesario configurar la hora en Mikrotik es que por ejemplo en los RouterBoard no tienen baterías y por ello dependen de la configuración de la misma.

Mikrotik le da al usuario la libertad seleccionar los servidores de NTP que sean de su preferencia, en mi caso, normalmente configuro con las siguientes direcciones:

/system ntp client set enabled=yes mode=unicast primary-ntp=94.228.40.3 secondary-ntp=152.118.24.152

Con esta línea escogemos los servidores a los que se le preguntaran la hora y luego debemos escoger la zona horaria en mi caso es Venezuela.

/system clock set time-zone-name=America/Caracas

Dynamic DNS en Mikrotik


Un script que pienso que debería ser estándar en cualquier router hoy en dia, es el de Dynamic DNS(DDNS), y de echo cualquier router de 15$ lo tiene, pero Mikrotik no tiene Script Incorporado. Supongo que esto se debe a que por su gran versatilidad los creadores dicen que no pueden establecer cuál será su uso y no desean desperdiciar memoria en script que de pronto el usuario nunca usara.

En la pagina de mikrotik tienen una gran variedad de Script para los servicios disponibles en la red como DynDns, No-Ip, entre otros.

Aquí les dejo el que utilizo en la versión 5.xx, que esta probado. Lo único que deben considerar que este esta diseñado para un solo internet.

# Set needed variables
:local username "UsuarioDynDns"
:local password "tuClave"
:local hostname "NombreDyndnsRegistrado"

:global dyndnsForce
:global previousIP 

# print some debug info
:log info ("UpdateDynDNS: username = $username")
:log info ("UpdateDynDNS: password = $password")
:log info ("UpdateDynDNS: hostname = $hostname")
:log info ("UpdateDynDNS: previousIP = $previousIP")

# get the current IP address from the internet (in case of double-nat)
/tool fetch mode=http address="checkip.dyndns.org" src-path="/" dst-path="/dyndns.checkip.html"
:delay 1
:local result [/file get dyndns.checkip.html contents]

# parse the current IP result
:local resultLen [:len $result]
:local startLoc [:find $result ": " -1]
:set startLoc ($startLoc + 2)
:local endLoc [:find $result "
" -1]
:local currentIP [:pick $result $startLoc $endLoc]
:log info "UpdateDynDNS: currentIP = $currentIP"

# Remove the # on next line to force an update every single time - useful for debugging,
# but you could end up getting blacklisted by DynDNS!

#:set dyndnsForce true

# Determine if dyndns update is needed
# more dyndns updater request details http://www.dyndns.com/developers/specs/syntax.html

:if (($currentIP != $previousIP) || ($dyndnsForce = true)) do={
   :set dyndnsForce false
   :set previousIP $currentIP
   :log info "$currentIP or $previousIP"
   /tool fetch user=$username password=$password mode=http address="members.dyndns.org" \
      src-path="nic/update?system=dyndns&hostname=$hostname&myip=$currentIP&wildcard=no" \
      dst-path="/dyndns.txt"
   :delay 1
   :local result [/file get dyndns.txt contents]
   :log info ("UpdateDynDNS: Dyndns update needed")
   :log info ("UpdateDynDNS: Dyndns Update Result: ".$result)
   :put ("Dyndns Update Result: ".$result)
} else={
   :log info ("UpdateDynDNS: No dyndns update needed")
}