viernes, 20 de noviembre de 2020

Desarrollo IT - Herramientas online

GoJS
JavaScript and TypeScript library for building interactive diagrams and graphs

JSON Formatter
The JSON Formatter was created to help folks with debugging. As JSON data is often output without line breaks to save space, it can be extremely difficult to actually read and make sense of it. This tool hoped to solve the problem by formatting and beautifying the JSON data so that it is easy to read and debug by human beings.

Web Toolkit Online

  • Hexadecimal to decimal converter online
  • RGB color converter online
  • Less to CSS converter online
  • CSV to XML converter online
  • Base64 encoding/decoder online
  • URL encoder/decoder online
  • CSS formatter online
  • JSON formatter online
  • SQL formatter online
  • XML formatter online
  • HTML formatter online
  • Lorem Ipsum generator online
  • QR Code generator online
  • Password Generator online
  • CSS minifier online
  • JSON minifier online
  • SQL minifier online
  • XML minifier online
  • MD5 Digest generator online
  • JavaScript checker online
  • JSON checker online
  • Regular Expression checker online
  • XML checker online
  • XPath checker online
JWT.IO
JWT.IO allows you to decode, verify and generate JWT.

Free, instant, collaborative sandboxes for rapid web development.
  • React
  • Js
  • Vue
  • Angular
  • HTML 5
  • Node
  • Vanilla
  • ...
ASCII Code / Decode
dCode is free and its tools are a valuable help in games, maths, geocaching, puzzles and problems to solve every day!

viernes, 7 de agosto de 2020

viernes, 19 de junio de 2020

AppSettings from SQL Server CLR

Necesitamos acceder a parámetros de configuración (Ej: string conección, credenciales y path archivos de log) desde una class library publicada en un SQL Serber CLR.

Una class library (c#) no tiene acceso por si misma a un archivo de configuración.
Cuando se publica una DLL en el CLR del SQL Server, éste levanta la DLL en su memoria interna y se desconoce la ubicación física de la misma.
También hay que considerar la implementación en un cluster de servidores SQL Server.

Las opciones analizadas son las siguientes:
  1. Especificar un recurso compartido "pre definido" donde se encuentre el archivo de configuración.
  2. Obtener parámetros consumiendo un servicio API externo "pre definido" por código. Para nuestro caso en particular sería un nuevo método dentro la "Analytics_WebApi" existente.
  3. Utilizar archivo de configuración propio del SQL Server (sqlservr.exe.config).
  4. Obtener parámetros consumiendo una función o SP del SQL Server. Desde CLR se tiene acceso a la instancia de SQL Server donde está alojado. A partir de allí se podría definir una función en la master o una base de datos "pre definida" con los parámetros necesarios. 
Las opciones 3 y 4 sólo son aplicables para el caso en que la clase sea instanciada dentro del entorno del SQL Server.

Conclusiones:
La opción 1 parece ser la más fácil de implementar, y a la vez compatible con la publicación de las DLLs al momento de levantar los assemblies dentro del SQL Server.
Sin embargo, la opción 2 permite una implementación transparente en ambientes de nube y/o contenedores, definiendo el acceso a la API como un DNS Alias.


Referencias:

Does SQL Server CLR Integration support configuration files?
Muy buen artículo que propone utilizar archivo de configuración del SQL Server (sqlservr.exe.config).

HOW TO USE A CONFIGURATION (.CONFIG) FILE IN SQL SERVER CLR
Se explica cómo obtener el path y acceder al archivo de configuración del SQL Server.

viernes, 22 de mayo de 2020

Videoconferencia - Software

Zoom: gratis x 40 minutos.


Microsoft Teams: hay cuentas gratis y aranceladas corporativas en Office 365.


GoToMeeting: comercializado por LogMein. Gratis: sólo brinda trial x 14 días.



miércoles, 20 de mayo de 2020

Microservices - API Gateway / BFF

Consideraciones generales

Analizando la infraestructura a implementar en una "arquitectura intermedia" con .Net Core, estamos buscando una forma sencilla y eficiente de impolementar un API Gateway o BFF ( Backend for Frontend)

Explicación básica del porqué de un API Gateway


Red Hat

Red Hat propone un stack de herramientas para desarrollar aplicaciones basadas en Kubernetes, con el fin de brindar la capacidad de escalar de OnPremise al Cloud.





.Net Core

Ocelot : API Gateway para .Net Core
El API Gateway de Ocelot implementa servicios de autenticación, logging, cache, etc.,

Cómo implementar puertas de enlace API con Ocelot.


Lo nuevo de Microsoft

.NET Microservices Sample Reference Application
This reference application is cross-platform at the server and client side, thanks to .NET Core services capable of running on Linux or Windows containers depending on your Docker host, and to Xamarin for mobile apps running on Android, iOS or Windows/UWP plus any browser for the client web apps. The architecture proposes a microservice oriented architecture implementation with multiple autonomous microservices (each one owning its own data/db) and implementing different approaches within each microservice (simple CRUD vs. DDD/CQRS patterns) using Http as the communication protocol between the client apps and the microservices and supports asynchronous communication for data updates propagation across multiple services based on Integration Events and an Event Bus (a light message broker, to choose between RabbitMQ or Azure Service Bus, underneath) plus other features defined at the roadmap.

Building a Backend for Frontend (BFF) For Your Microservices


Kestrel / IIS

Las API desarrolladas en .Net Core se pueden publicar en Kestrel web server que a su vez puede o no utilizar un reverse proxy como IIS.

Conclusiones

How to choose the right API Gateway for your platform.
¿Ocelot o Envoy? Queda pendiente de analizar y definir...

martes, 12 de mayo de 2020

Explainable AI


8 Explainable AI Frameworks

Entre los frameworks mencionados se destacan:

What-if Tool: TensorFlow team announced the What-If Tool, an interactive visual interface designed to help visualize datasets and better understand the output of TensorFlow models.

LIME: Local Interpretable Model-Agnostic Explanations LIME is an actual method developed by researchers at the University Of Washington to gain greater transparency on what’s happening inside an algorithm.

DeepLIFT: DeepLIFT is a method that compares the activation of each neuron to its ‘reference activation’ and assigns contribution scores according to the difference.

AIX360: The AI Explainability 360 toolkit is an open-source library developed by IBM in support of interpretability and explainability of datasets and machine learning models.

Activation Atlases: Google in collaboration with OpenAI, came up with Activation Atlases, which was a novel technique aimed at visualising how neural networks interact with each other and how they mature with information along with the depth of layers.


44 Repositorios en github sobre explainable ai

Incluye: DALEX, AIX360, LIME, xai, DiCE, cxplain.


An overview of model explainability in modern machine learning

Towards a better understanding of why machine learning models make the decisions they do, and why it matters