viernes, 28 de octubre de 2022

LMS (Learning Management System)

 Fuente: https://www.quora.com/What-is-the-best-free-LMS


We prefer and use Open Source Solutions MOODLE and know also how to set it up and manage together with a proper portfolio manager MAHARA and we combine that again with a WORDPRESS Multisite so that all our teachers and students can run also their own blog, manage their complete portfolio even they change companies or institutions via Mahara and learn online via Moodle which has an integrated Big Blue Button solution (also Free Open Source), connects to Zoom and Meet and is also connected to the Google for Education Suite (also free ) which again includes the Google Classroom.
It is easy to manage, featurerich, no restrictions on people it depends only on your server specs - and we are at Hetzner with a 64 GB/4TB account for40 Euro so we really can’t complain as that gets financed via the wordpress pages ;-)



There are several free learning management systems (LMS) available for e-learning. Some of the more popular ones include:
1. Moodle
2. Canvas
3. Sakai
4. MoodleNet
5. MoodleRooms
6. NorQuest Collaboratory
7. Gaya

1. Moodle: Moodle is one of the most popular open-source LMSs available. It has a large user base and a wide range of features. Moodle is written in PHP and utilizes a MySQL database (or other database engines such as PostgreSQL). Moodle got its name from the concept of "mood" because it can carry out so many functions. Moodle is available under the GNU General Public License (GPL 3) license. Moodle is actively maintained, with new releases having added features and improvements. The Moodle project has an active developer community (over 500 code contributors), which provides Moodle users with free technical support. Moodle can be accessed through a web browser or it can be accessed on MoodleMobile. Moodle provides several features including course management, discussion forums, blog tools, quizzes, and assignment submission. Moodle also can create courses with a multi-level hierarchy for an unlimited number of categories. Moodle is available in over 120 languages and more than 15.7 million users have downloaded

2. Canvas: Canvas is another popular open-source LMS that has similar features to Moodle. Canvas provides a complete learning management solution that can be used to build courses, manage assignments, grade student work, and assess course performance. Canvas is available under the Apache license. Canvas has an active community of developers who are continuously releasing updates with new features and improvements. Canvas comes equipped with themes that enable easy customization. Canvas also comes with widgets, which consist of Canvas adapted third-party tools and scripts that provide Canvas users with a wide range of features. Canvas can be accessed through mobile applications and is available in over 40 languages. Canvas currently has over 300 thousand registered users worldwide and is used by more than 9,000 educational organizations.

3. Sakai: Sakai is another open-source LMS that has been gaining popularity over the years. Sakai is unique because Sakai enables users to develop applications that can be used inside a Sakai course. Sakai uses a plugin-based architecture, which allows it to easily integrate with technology from several third-party vendors. Sakai also makes it easy for developers and designers to create new plugins. Sakai utilizes JavaServer Pages (JSP) to serve Sakai pages. Sakai is available under the GPLv2 license and is supported by open-source developers. Sakai has an active community of developers who are continuously releasing updates with new features and improvements. Sakai also contains several plugins that can be integrated with Sakai courses, including video conferencing, virtual whiteboard, Sakai chat, Sakai email, Sakai file share, Sakai document management (LDAP), etc.

4. MoodleNet: MoodleNet is an online learning system built on top of Moodle. It includes live audio and video conferencing, social networking features, and a number of other tools. MoodleNet is aimed at Moodle users, Moodle administrators, and Moodle plugin developers. MoodleNet's aim is to make Moodle even more like an online social learning network. MoodleNet delivers live audio/video conferencing with chat capabilities, plus it integrates Moodle with social networking sites such as Twitter, Facebook, MySpace, etc. MoodleNet also includes mass email capabilities, Moodle-to-Moodle communication, and Moodle grade book integration. MoodleNet is highly secure, it has a CAPTCHA login prevents spamming and account hijacking, plus Moodle administrators can control MoodleNet access for each course.

5. Moodlerooms: Moodlerooms is an open-source LMS with a wide range of features, including live video conferencing and social networking capabilities. They also have multi-tenant options for companies who wish to host their own instance of the software or purchase multi-tenancy for an enterprise license. Moodlerooms also provides a full-service LMS consulting practice with expertise ranging from needs assessment to the development of scalable Moodle LMS implementations.

6. NorQuest Collaboratory: NorQuest Collaboratory is an open-source LMS that complements the Moodle platform. It integrates with Moodle, giving users access to both systems from the same login. NorQuest Collaboratory is built on Moodle and has an LTI (Learning Tools Interoperability) bridge with Moodle. NorQuest Collaboratory can manage e-portfolios, create communities of practice and other social features. NorQuest Collaboratory also provides Norquest’s Learning Design tool to help users build courses. NorQuest Collaboratory can be used on NorQuest College’s Moodle server and is also available for download on its website.

7. Gaya: Gaya is a free LMS that was developed in India in 2003 by students at the University of Pune. It was created with a focus on a student's social life in a university, but it has since become an LMS for schools, colleges, and universities. Gaya is available under the GPLv3 license and is supported by open-source developers. Gaya currently has over 2 million registered users worldwide and offers features such as Open Source Software: Gaya is an open-source network platform that employs free software to develop education. This includes social networking features, course management system tools, and virtual learning environment tools Collaboration: Gaya enables collaboration among members of the community using chat rooms, discussion forums, and mailing lists.

martes, 9 de agosto de 2022

QR en Reporting Servicec (SSRS)

En el siguiente artículo propone generar una imagen en la base de datos:


Aquí propone el uso de una librería de código abierto:

La librería es: QRCoder


IDAutomation tiene su producto pago para SSRS aquí.

lunes, 1 de agosto de 2022

Cursos recomendados

Los siguientes son algunos de los cursos que hemos realizado. Puede que algunos hayan quedado desactualizados o hayan sido reemplazados por nuevos cursos.

Están puestos en orden de complejidad dentro de cada área, entendiendo que lo más sencillo sería comenzar por el front end.


Front End

Introducción al desarrollo web (Gratis)

Programa especializado: Responsive Website Development and Design (Gratis)


Angular: De cero a experto


Front / Back End

Microservicios con ASP.NET 5, Angular, MongoDB, Docker


DevOps

DevOps y Docker Kubernetes Microservice y Azure - NET Core 5



Otros



jueves, 28 de julio de 2022

Mobile App Development Frameworks

Most Popular Mobile App Development Frameworks For App Developers

1 - Flutter. Flutter is Google's open-source framework for developing native Android and iOS apps using a single codebase. 
2 - React Native
3 - Ionic
4 - Xamarin
5 - Native Script
6 - Apache Cordova
7 - Framework7
8 - JQuery Mobile



1 - Swiftic
2 - Native Scripts
3 - React Native
4 - Xamarin
5 - Ionic: helps you to build interactive hybrid and Progressive Web Applications
6 - Sencha Ext JS
7 - Onsen UI 
8 - Flutter
9 - Corona
10 - JQuery Mobile
11 - Mobile Antular UI


lunes, 27 de junio de 2022

Istio Service Mesh

La arquitectura de Microservicios permite realizar desarrollos y despliegues de forma más rápida, desacoplada, por eso la adoptan empresas interesadas en innovar. Administrar Microservicios a escala implica desafíos tales como: gestionar efectivamente la comunicación, probar versiones de manera controlada en producción y administrar la seguridad. Las mallas de servicios (Service Mesh), entre las cuales Istio es la más popular, ofrecen una forma segura, rápida y efectiva de administrar un ecosistema de microservicios. Istio es un proyecto open source en el cual se basan algunas soluciones empresariales, permite descubrimiento, seguridad, rastreo, monitoreo y manejo de fallas en estos ambientes

The Istio service mesh - Istio is an open source service mesh that layers transparently onto existing distributed applications


Minikube: lo mejor de Kubernetes con el mínimo esfuerzo (minikube en Github)




jueves, 23 de junio de 2022

Gráficos, Mapas, Layouts

Esto es un compilado de recursos que vamos encontrando por el camino con el fin de armar un formulario que nos permita definir un área de parking (o amarras de bacos) y luego asignar contenido a cada espacio ocupado. El producto final debería ser una consulta que muestre una imagen (o mapa) vectorizado que muestre todos los espacios libres y también los ocupados con su correspondiente información.

La mejor implementación parece que viene por el lado de HTML5 SVG / CANVAS.

Luego se podría utilizar D3.js que utiliza HTML, SVG y CSS.


HTML SVG - Tutorial de SVG

The HTML SVG is an acronym which stands for Scalable Vector Graphics.

HTML SVG is a modularized language which is used to describe graphics in XML. It describe two-dimensional vector and mixed vector/raster graphics in XML.

Otros links:


HTML CANVAS - Tutorial de CANVAS

The Canvas API provides a means for drawing graphics via JavaScript and the HTML <canvas> element. Among other things, it can be used for animation, game graphics, data visualization, photo manipulation, and real-time video processing.


Maps

MapBox - Maps and location for developers. Precise location data and powerful developer tools to change the way we navigate the world.


Charts

Best 19+ JavaScript Chart Libraries to Use in 2022

15 JavaScript Libraries for Creating Beautiful Charts


Chart.js - JavaScript charting for designers & developers.

Cross-browser HTML5 Canvas Charting JavaScript library


Layouts

UI Layout – The Ultimate Page Layout Manager

Golden Layout


Data-Driven Documents (D3) - Muy utilizada (ver cartogramas)

Polymer - The open-source JavaScript library by Google – Polymer is used to build web apps using components.


Lo mejor hasta ahora para armar mapas e insertar contenido:

Leaflet - Open-source JavaScript library for mobile-friendly interactive maps

Leaflet Plugins


Lo mejor para armar formas sobre un background:

Data-Driven Documents (D3) - Muy utilizada (ver cartogramas)


jueves, 2 de junio de 2022

Confidential Computing

Qué es Confidential Computing, la tecnología en la que IBM y AMD han anunciado un acuerdo de cooperación


Scalable Confidential Computing on Kubernetes with Marblerun (Video)


 Microsoft Build - Implementación de Advanced Security para IA y análisis

Intel SGX - Intel Software Guard Extensions
Intel Software Guard Extensions es un conjunto de códigos de instrucciones relacionados con la seguridad que están integrados en algunas unidades de procesamiento central de Intel

MarbleRun - The control plane for confidential computing


jueves, 12 de mayo de 2022

Microsoft Power Platform

Power Automate Simplifique las tareas repetitivas y los procesos sin papeles con Microsoft Power Automate, de modo que pueda centrar su atención en lo más necesario.


Precios:

- Plan x usuario/mes: u$s 15 

- Plan x usuario/mes RPA atendida: u$s 40

- Plan x flujo/mes (mínimo 5 flujos): u$s 100

Ver guia de licencias.


Recursos:

Power Automate webinars

End-to-end intelligent automation

Step-by-step guidance

Microsoft Power Automate Community


Videos:

Automation 101 with Power Automate

Automate Your Software for Digital Transformation

martes, 10 de mayo de 2022

Robotic Process Automation (RPA)

Las plataformas de automatización más avanzadas incluyen las siguientes capacidades:

  1. Drag-and-drop workflows: generar workflows sin necesidad de programación.
  2. Workflow recording: grabar la actividad humana.
  3. Prebuilt templates
  4. Computer vision (OCR): interpretación de documentos.
  5. Natural language understanding (NLU): análisis semántico y sintántico.
  6. Integrations: integración con otros sistemas a través de web scrapping o APIs.
  7. Bot scheduling: ejecución de bots en forma periódica o por eventos disparadores.
  8. Analytics: seguimiento y análisis de performance de los bots.

Aplicaciones más comunes:
  • Abrir distintas aplicaciones como emails, mover archivos, etc.
  • Integración con distintas herramientas de software.
  • Recolectar datos de páginas web.
  • Procesar datos que requieren cálculos, extracción de información, etc.







Electroneek

Costo: u$s 19.000 x año -> $3.800.000 --> $320.000 x mes



UiPath 

Costo: u$s 4000 x año (1 usuario)? Hay versión gratis.


Automation Anywhere

Costo: u$s 750 x mes --> u$s 9000 x año

IQ Bot: utiliza IA para procesar documentos
AARI: Automation Anywhere Robotic Interface
Bot Insight: panel de control
FortressIQ: Process intelligence. (Mapping, mining, discovery).




Blue Prism

Costo: u$s 5000-10000 x año (developer)?

Sólo unattended bots.


Buenas comparaciones



viernes, 6 de mayo de 2022

Linux - Docker - SQL Server

How to Install Docker on Ubuntu 22.04 --> Convendría trabajar con 20.04, porque NO hay versión de SQL Server 2019 para la 22.04.

Nombre: viainfo-docker
IP: 172.10.10.249  /  255.255.255.0
Gateway: 172.10.10.245
DNS: 172.10.10.243



Para instarlar SQL Server 2019 Express Edition en Linux, se pueden bajar las imágenes de docker de aquí.






miércoles, 4 de mayo de 2022

martes, 29 de marzo de 2022

Logging con Elastic Stack

Con Elastic Stack, tambien conocido como el ELK Stack, se puede tomar de manera confiable y segura datos de cualquier fuente, en cualquier formato, después búscalos, analízalos y visualízalos en tiempo real. Son productos gratuitos y abiertos: Elasticsearch, Logstash y Kibana. También se puede considerar a Beats dentro del conjunto de herramientas.

Logging with Elastic Stack


Serilog
Like many other libraries for .NET, Serilog provides diagnostic logging to files, the console, and elsewhere. It is easy to set up, has a clean API, and is portable between recent .NET platforms.
Unlike other logging libraries, Serilog is built with powerful structured event data in mind.

Beats
Beats es una plataforma gratuita y abierta para agentes de datos con un solo propósito. Envían datos de cientos o miles de máquinas y sistemas a Logstash o Elasticsearch.

Logstash
Logstash es un pipeline de procesamiento de datos gratuito y abierto del lado del servidor que ingesta datos de una multitud de fuentes, los transforma y luego los envía a tu "escondite" favorito

Elasticsearch
Elasticsearch is a powerful search engine that can index logs as they arrive. It makes running queries against the logs quick. Elasticsearch can handle huge quantities of logs and, in extreme cases, can be scaled out across many nodes.

Kibana
Kibana es una interfaz de usuario gratuita y abierta que te permite visualizar los datos de Elasticsearch y navegar en el Elastic Stack. Realiza lo que desees, desde rastrear la carga de búsqueda hasta comprender la forma en que las solicitudes fluyen por tus apps.


Azure DevOps

Connect an on-premises network to a Microsoft Azure virtual network

Connect your on premises network to Azure with VPN Gateway

Connecting On-premises Networks with Azure Virtual Networks




martes, 15 de marzo de 2022

Novedades (a marzo de 2022)

 La siguiente es una lista de temas nuevos (o no tanto) y no tan conocidos aún por nosotros a la fecha y que conviene tenerlos presentes:


What is .NET MAUI?

Sucesor de Xamarin, MAUI es un framework cross-platform (Multi-platform App UI) para crear apps desktop y mobile con C# y XAML.


Duende - IdentityServer (*)
The most flexible and standards-compliant OpenID Connect and OAuth 2.0 framework for ASP.NET Core.


OAuth 2.0, OpenID Connect y JSON Web Tokens (JWT) ¿Que es qué?
El artículo describe para qué es cada cosa y cuando utilizarlos.


ASP.NET Core Identity (*)
- Is an API that supports user interface (UI) login functionality.
- Manages users, passwords, profile data, roles, claims, tokens, email confirmation, and more.
The Microsoft identity platform helps you build applications your users and customers can sign in to using their Microsoft identities or social accounts, and provide authorized access to your own APIs or Microsoft APIs like Microsoft Graph


Microsoft identity platform (NO relacionado con ASP.Net Core Identity)
The Microsoft identity platform for developers is an authentication service, open-source libraries, and application management tools.


NOTA:

(*) Al momento de escribir esta entrada tenemos la siguiente duda: para desarrollar una aplicación web (SPA c/Angular) desde cero seguramente utilizaremos ASP.NET core Identity. Deberíamos además implementar IdentiryServer?

lunes, 7 de marzo de 2022

HTTP Error 500.30 - ANCM In-Process Start Failure al intentar lanzar el debugger (Visual Studio 2019)

 Fix .NET Core HTTP Error 500.30 After Publish to App Service from Visual Studio

En el Log del sistema se genera un error:

Application '/LM/W3SVC/2/ROOT' with physical root 'C:\_sistemas\cesvi_analytics\Analytics_WebApi\Analytics_WebApi.API\' failed to load coreclr

SOLUCION:

Cambiar "InProcess" por "OutOfProcess" en la configuración del Debug:



HttpClient en Asp.Net MVC 5


El inconveniente de utilizar muchas instancias de HttpClient (dentro de un USING) es que finalmente produce errores de tipo "socket exhaustion".

The Problem with using HttpClient as opposed to IHttpClientFactory
The problem associated with using many instance of HttpClient in our app doesn’t come from HttpClient itself. But it comes from HttpMessageHandler and it’s lifetime. When we new up many instances of HttpClient in our app with a using statement, what happen is the HttpClient is disposed of but the socket stays open. This can lead to socket exhaustion problem, you can read more about this issue here.

Using IHttpClientFactory with Asp.Net MVC 5

Para solucionar esto en Asp.Net Core se puede utilizar HttpClientFactory

Pero como HttpClientFactory fue inicialmente desarrollado para .Net Core, su implementación en el .Net Framework se torna difícil y optamos por simplemente utilizar un objeto HttpClient estático, como mensiona aquí: YOU'RE USING HTTPCLIENT WRONG AND IT IS DESTABILIZING YOUR SOFTWARE

Pero la implementación con el HttpClient estático (Singleton) tiene problemas en un escenario de balenceo de cargaSingleton HttpClient doesn't respect DNS changes

Singleton HttpClient? Beware of this serious behaviour and how to fix it.


CONCLUSIÓN:

No es recomendable utilizar múltiples instancias de HttpClient en Asp.Net por el problema de socket exhaustion. Lo ideal es implementar IHttpClientFactory, pero como fue desarrollado para .Net Core  su implementación en nuestro sistema ASP.Net MVC 5 no es viable (Dependency Injection).
Una solución de compromiso sería utilizar HttpClient estático pero el sistema no quedaría apto para balanceo de carga.
La solución óptima sería entonces crear un nuevo proyecto .Net Core con microservicios para resolver las llamadas a APIs externas.