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!

Convierte archivos PDF a Excel.

Create useful .gitignore files for your project

Generador de claves aleatorias.

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

martes, 7 de abril de 2020

UI Automation Tools

Best Automation Testing Tools for 2020 (Top 10 reviews)
Here are the top test automation tools that are believed to best address the challenges in automation over the next few years. The tools included in this list are selected from these criteria:

  • Supporting API and services testing
  • Offering some AI/ML and analytics capabilities
  • Popularity and maturity



1. Selenium - License: Open-source
2. Katalon Studio - License: Free — $759 per license per year
3. UFT - License: From $3,200 per year.
4. TestComplete - License: From $9,114 per user per year
5. SoapUI - Open source and Pro ($659 per year.)
6. IBM Rational Functional Tester (RFT) - License: Commercial — Contact Sales
7. Tricentis Tosca - License: Commercial — Contact Sales
8. Ranorex - License: €690 for the Add-on and from €2,290 for Premium License.
9. Postman - License: Free — $216 per user per year
10. Apache JMeter - License: Open-source


lunes, 6 de abril de 2020

WhatsApp API


WhatsApp API
WhatsApp Business
WhatsApp Business es una aplicación que se puede descargar de forma gratuita y se diseñó pensando en las pequeñas empresas y negocios. Crea un catálogo para mostrar tus productos y servicios.

API de WhatsApp Business
Esta guía ayudará a las empresas a incorporar y desarrollar su primera experiencia de mensajería oficial de WhatsApp mediante la API de WhatsApp Business.

API de WhatsApp Business
Diseñada para medianas y grandes empresas, la Interfaz de Programación de Aplicaciones (API, por sus siglas en inglés) de WhatsApp Business impulsa tu comunicación con clientes alrededor del mundo, para que puedas contactarte con ellos a través de WhatsApp de forma simple, segura y confiable.

WhatsApp Business API - Overview
The WhatsApp Business API client supports a subset of the features provided by the WhatsApp applications you already know from Android, iOS, and the web, including end-to-end encryption. The difference is that this application can be deployed on a server, providing a local API that allows you to programmatically send and receive messages and integrate this workflow with your own systems (e.g., CRMs, contact center platforms, etc.).
Please note that if you use anything other than the official WhatsApp Business API or other official WhatsApp tools, we reserve the right to limit or remove your access to WhatsApp as this violates our policies. Please do not use any non-WhatsApp authorized third-party tools to communicate on WhatsApp.

WhatsApp Business API
The WhatsApp Business API is a fast, secure, and reliable way for businesses to reach their customers all over the world.
platforms, etc.).


Otros recursos

WhatsMate WA
WhatsMate WA Gateway enables your application to send WhatsApp messages to your users easily via REST API.


Chat-API
API estable por US $ 39/mes.
Recibiendo y enviando mensajes a través de peticiones HTTP.
Cree un bot de chat por algunas horas o la integración de 6 000 diálogos por día en PHP, JavaScript, 1C, Python, Java, C # o hasta VBA.
Nuestra API de WhatsApp funciona de manera estable y funciona al actualizar WhatsApp. Esta es nuestra principal diferencia.


Twilio API for WhatsApp
Reach users on the world’s most popular messaging app through one streamlined API, officially supported by WhatsApp.


Top SMS APIs to Send Text Messages (Updated for 2020)
Muy buena revisión de productos


¿Cómo leer mensajes de whatsapp por programa SIN las WhatsApp API?

Whatsapp encripta toda la información transmitida y eso hace difícil leer y utilizar los mensajes.
Hay varias formas de encarar el tema:

  • Las aplicaciones existentes crean un emulado o contenedor de whatsapp, básicamente un teléfono android dummy para ejecutar whatsapp y luego poder acceder al contenido almacenado desencriptado de los mensajes.
  • Otra opción es leer la base de mensajes encriptada  (pyCrypt) que sería fácil de desencriptar utilizanco Python. Ver Read, Extract WhatsApp Messages...
  • Y otra opción más sería abrir whatsapp web en el browser y ejecutar un ui automation como selenium para tomar los mensajes como se ven en pantalla (strings).

martes, 31 de marzo de 2020

SQL Server create assembly ACCESS DENIED


Msg 6501, Level 16, State 7, Line 81
CREATE ASSEMBLY failed because it could not open the physical file 'C:\CESVI_Analytics\Lib\F23.StringSimilarity.dll': 5(Acceso denegado.).


Para solucionar el problema hay que otorgarpermisos de lectura para el servicio del MSSQLSERVER en la carpeta donde se encuentra el assembly.


Para hacerlo en forma programática:
https://medium.com/@atarikguney/lets-fix-create-assembly-failed-access-denied-38c66f8a6e69


lunes, 16 de marzo de 2020

Data Science Resources


Kaggle, una subsidiaria de Google LLC, es una comunidad en línea de científicos de datos y profesionales del aprendizaje automático.
Inside Kaggle you’ll find all the code & data you need to do your data science work. Use over 19,000 public datasets and 200,000 public notebooks to conquer any analysis in no time.





jueves, 13 de febrero de 2020

Normalización de datos geográficos: Provincias y Localidades

Geo PostCodes
https://es.geopostcodes.com/Argentina

Base de Datos MySQL de Código Postal Argentino (CPA) por Provincia y Localidad
https://www.phpcentral.com/pregunta/660/base-de-datos-mysql-de-codigo-postal-argentino-cpa-por-provincia-y-localidad

Solo provincias y código postal

Servicio de normalización de datos geográficos
https://datos.gob.ar/dataset/jgm-servicio-normalizacion-datos-geograficos

Contiene información para normalizar datos mediante API y base de localidades y provincias.

BAHRA
http://www.bahra.gob.ar/#descargas

La Base de Asentamientos Humanos de la República Argentina es la primera base de datos oficial y normalizada de localidades, parajes, entidades y bases antárticas del territorio nacional; donde se identifica unívocamente a todos los asentamientos humanos, registrando el nombre, coordenadas y código único, entre otros atributos.

Google Maps Platform - Geocoding Service
https://developers.google.com/maps

API de Google paga para obtener datos de localidades


Sitio

GeoPos

Cod Pos

Localidades

Precio

MapaNet

21.677

5.100 - 37 U$D

Geo PostCodes

21.247

39.530 - 295 U$D

Base de Datos MySQL

22.963

GRATIS

Datos Gob Ar

17.699

GRATIS

BAHRA

14.770

GRATIS


Actualmente tenemos 9.157 localidades cargadas en nuestra base.

miércoles, 12 de febrero de 2020

Record Linkage and String Marching

Técnicas y herramientas para poder realizar matching de registros, limpieza y normalización de información, muchas de ellas utilizando Levenshtein Distance.

SQL Server:

Beyond SoundEx - Functions for Fuzzy Searching in MS SQL Server
Librería escrita en C# para ser definir funciones de comparación de textos en SQL Server.

Roll Your Own Fuzzy Match / Grouping (Jaro Winkler) - T-SQL  -->
JaroWinklerStringSimilarity.sql (GitHub)

Cleaning Messy Data in SQL, Part 1: Fuzzy Matching Names


Master Data Services
Qué es?
Master Data Services Overview (MDS)

Data Quality Services
Data Quality Services Overview (DQS)


.Net:

SimMetrics (Java)
Similarity Metric Library, from edit distance's (Levenshtein, Gotoh, Jaro etc) to other metrics, (Soundex, Chapman). Work provided by UK Sheffield University funded by (AKT) an IRC sponsored by EPSRC, grant number GR/N15764/01.


StringSimilarity.NET
A library implementing different string similarity and distance measures. A dozen of algorithms (including Levenshtein edit distance and sibblings, Jaro-Winkler, Longest Common Subsequence, cosine similarity etc.) are currently implemented. Based upon F23.StringSimilarity.
Ver en StringSimilarity.NET en GitHub

fuzzystring: Approximate String Comparision in C#

fuzzystring-standard: Approximate String Comparision in C#

TFIDF: term frequency–inverse document frequency, is a numerical statistic that is intended to reflect how important a word is to a document in a collection or corpus. Ver TFIDF en wikipedia.

Data Matching software: a list of (Fuzzy) Data Matching software. The software in this list is open source and/or freely available.

OpenRefine: (previously Google Refine) is a powerful tool for working with messy data: cleaning it; transforming it from one format into another; and extending it with web services and external data.



Python Record Linkage Toolkit
Library to link records in or between data sources

Overview of Record Linkage Methods


viernes, 10 de enero de 2020

Machine Vision / Video Surveillance / Video Analytics

Firebase: plataforma para el desarrollo de aplicaciones web y aplicaciones móviles desarrollada por James Tamplin y Andrew Lee en 2012 y adquirida por Google en 2014
Firebase products
ML Kit for Firebase


Machine Vision (MV) is the technology and methods used to provide imaging-based automatic inspection and analysis for such applications as automatic inspection, process control, and robot guidance, usually in industry.
CCTV
ML
CVR


Behavioral analytics is a recent advancement in business analytics that reveals new insights into the behavior of consumers on eCommerce platforms, online games, web and mobile applications, and IoT.

Video Analytics
- VideoIQ
- Avigilon - Video Security Solutions  (LO MEJOR?)

Video Surveillance
- iCetana
-

ARTIFICIAL INTELLIGENCE IS GOING TO SUPERCHARGE SURVEILLANCE (Interesante)

Analytics, Security, Video

Artificial Intelligence for Industrial Applications

Artificial intelligence for video surveillance