Blog de Luis Dueñas dedicado a la difusión del Desarrollo en Microsoft .NET, Visual Studio, WinForms, WebForms, MVC, ASP .NET, jQuery, AJAX, HTML5, JavaScript, Móviles, etc. Encontrarás Libros, Demos, Artículos Técnicos, Entrenamiento.
martes, 21 de marzo de 2023
10 Aportes a la Computación de Centros de Investigación
martes, 6 de diciembre de 2022
Programa Anual 2023 de Desarrollo Multiplataforma y Multilenguaje
Contenido del Programa por Mes:
Parte 1: Desarrollo Web con ASP.NET
1. Desarrollo Web con ASP.NET MVC
2. Desarrollo Web con APIs de JavaScript
3. Servicios Web en .NET
4. WebSockets en .NET
Parte 2: Desarrollo Mobile Nativo
5. Desarrollo Mobile en Android
6. Desarrollo Mobile en iOS
Parte 3: Desarrollo en Python
7. Python, Pandas, NumPy y Matplotlib
8. Desarrollo Windows en Python con PyQT
9. Desarrollo de Aplicaciones Web en Python con Django
10. Servicios Web en Python con Django
Parte 4: Integración de Aplicaciones .NET, Android, iOS, Python
11. Integración de Aplicaciones en Tiempo Real con Servicios Web & Web Sockets Parte 1
12. Integración de Aplicaciones en Tiempo Real con Servicios Web & Web Sockets Parte 2
Datos del Programa
Duración: 12 meses
Modalidad: Virtual Online
Costo Mensual: 300 soles (USD 80 para extranjeros)
Horario: Martes y Jueves de 7:00 pm a 11:00 pm
Inicio: Martes 10 de Enero del 2023
Registro en el Programa
Los interesados deberán enviar un mail a Luis.duenash@gmail.com:
Asunto: Programa Anual 2023
Nombre Completo: XXXXXXXXXXXXX
Documento de Identidad: XXXXXX
Lugar de Procedencia: Ciudad/Pais
Ha llevado Cursos antes con Lduenas: Si/No
Si es nuevo como se entero: Blog/LinkedIn/Facebook/UnAlumno
martes, 31 de mayo de 2022
Programa Virtual Online de Desarrollo de Aplicaciones en Python
Contenido del Programa
Modulo 1 - Aplicaciones Comerciales con Python
Mes 1 - Aplicaciones Windows con PyQT
Mes 2 - Aplicaciones Web con Django
Mes 3 - Servicios Web & Web Sockets
Modulo 2 - Aplicaciones Científicas con Python
Mes 4 - Procesamiento de Datos con Pandas, NumPy, Matplotlib
Mes 5 - Machine Learning con SckitLearn, TensorFlow, PyTorch
Mes 6 - Deep Learning con Keras, TensorFlow, PyTorch
Datos del Programa
Duración: 6 meses
Costo Mensual: 250 soles (USD 70)
Horario: Martes y Jueves de 7:00 pm a 11:00 pm
Inicio: Martes 5 de Julio del 2022
Registro en el Programa
Los interesados deberán enviar un mail a Luis.duenash@gmail.com:
Asunto: Curso de Python
Nombre Completo: XXXXXXXXXXXXX
Documento de Identidad: XXXXXX
Lugar de Procedencia: Ciudad/Pais
Ha llevado Cursos antes con Lduenas: Si/No
Si es nuevo como se entero: Blog/LinkedIn/Facebook/UnAlumno
Poster
domingo, 29 de mayo de 2022
Los 10 Mandamientos de la Performance en Desarrollo Web por Luis Duenas (Versión Posters)
Los 10 Mandamientos de la Performance en Desarrollo Web por Luis Duenas
Comentario Inicial
Un problema frecuente en la programación es la falta de rendimiento o velocidad (Performance) en aplicaciones web y esto se debe a que existen principios que si no los sigues te esperan muchos problemas (aunque al programador no le afecta directamente sino mas bien a los usuarios).
Muchos creen conocer o programar bien pero desconocen estas reglas esenciales en el desarrollo web, por este motivo voy a publicar los 10 mandamientos de la performance en el desarrollo web que te ayudaran a mejorar tus aplicaciones.
Síntomas que indican que los programadores no conocen sobre Performance Web
A continuación te listo algunos síntomas que indican que los programadores no conocen sobre performance web:
1. Las paginas web demoran en cargar
2. Las consultas demoran en mostrarse, sobre todo si tienen cientos o miles de registros
3. La grabación de un registro con muchos campos demora
4. La grabación de varios registros demora
5. La subida de un archivo grande se demora mucho y sobre todo cuando tiene muchos Megabytes nunca se sube y se cae
6. Cuando hay poco ancho de banda no carga la data.
7. Si son muchas imágenes se muestran con lentitud, etc.
Los 10 Mandamientos del Compendio del Catecismo de la Iglesia Católica
Antes de iniciar con la lista, recordemos los 10 Mandamientos del Compendio del Catecismo de la Iglesia Católica:
1. Amarás a Dios sobre todas las cosas.
2. No tomarás el nombre de Dios en vano.
3. Santificarás las fiestas.
4. Honrarás a tu padre y a tu madre.
5. No matarás.
6. No cometerás actos impuros.
7. No robarás.
8. No darás falsos testimonios ni mentirás.
9. No consentirás pensamientos ni deseos impuros.
10. No codiciarás los bienes ajenos.
Los 10 Mandamientos de la Performance en Desarrollo Web
1. En desarrollo Web, elegirás la Performance sobre todas las demás características, tales como Seguridad, Reusabilidad, Mantenibilidad, Responsividad, etc.
2. No harás request en vano. Ni al Servidor Web ni a la Base de Datos, ni a cualquier recurso del Backend. Para esto debes agrupar llamadas al Servidor Web y agrupar lógica en solo un Procedimiento Almacenado en vez de varios.
3. Ahorraras al máximo el ancho de banda. Al hacer get (recibir) o post (enviar) debes reducir los datos seleccionando el mejor formato entre los cuales están: HTML, XML, JSON, CSV, Bytes. A veces es necesario comprimir y descomprimir si no demora.
4. Honrarás la simplicidad en vez de la complejidad y la generalidad en vez de la especificidad del desarrollo. Esto te permitirá reducir el código y te servirá para muchos casos de uso.
5. No matarás la Memoria usando decenas o cientos de variables de todo tipo y funciones en la pila usando excesivas capas de código. También, no matarás la CPU usando bucles excesivos ni recursividad sobre todo en el servidor.
6. No cometerás exceso en el uso de librerías y frameworks que harán mas pesado tu desarrollo. Es preferible crear solo la funcionalidad que necesites en vez de usar algo que viene con cientos de funciones que no las vas a usar y te consumirán mucha memoria.
7. No bloquearas los recursos del backend en llamadas concurrentes al servidor web, base de datos y sistema de archivos. Para esto debes hacer uso de programación asíncrona, paralela y trabajar en memoria en vez de disco.
8. No mentirás a tus usuarios diciendo que las aplicaciones web demoran porque no están locales y hay que viajar hasta el servidor web justificando la demora por falta de conocimiento de técnicas de performance.
9. No consentirás que ninguna tarea demore aunque el ancho de banda sea reducido, para lo cual debes hacer uso de trabajo por bloques sea al enviar o recibir. Puedes optimizar imágenes, crear paquetes de bytes, comprimir, etc.
10. No codiciarás ni envidiarás el código de terceros tales como Librerias y/o Frameworks aunque sea de grandes empresas. Lo mejor es que aprendas a crear tus propios recursos y el desarrollo será cada vez mas rápido. No te dejes influenciar por lo que la mayoría hace y trata de comprobar si es verdad lo que se dice.
Comentario Final
Los que no respeten dichos mandamientos serán considerados pecadores del desarrollo web y les espera el infierno de la lentitud de su aplicación, quejas de los usuarios y la consiguiente perdida para el negocio.
Al igual que en la religión donde la mayoría de personas no cumplen los mandamientos de la Iglesia Católica (siendo católicos), en el desarrollo web los programadores no cumplen ninguna de estas reglas y después se quejan de que sus sistemas están lentos.
Sino quieres que a ti o algún conocido le espere el Infierno de la web comparte esta publicación para que los programadores lo tengan en cuenta.
martes, 7 de diciembre de 2021
Entrenamiento - Programación de Cursos del 2022
Programación de Cursos del 2022
Para los interesados en llevar Cursos el próximo año, les dejo la Programación Anual 2022.
Curso: App Móviles con Android
Horario: Martes y Jueves de 7 a 11 pm
Meses: Enero - Febrero (2 meses)
Costo: 250 soles mensual (USD 70 para No Peruanos)
1. Actividades, Intentos y Navegación
2. Interfaz de usuario
3. Animaciones, Imágenes y Gráficos
4. Audio y Video
5. Tareas Asíncrona
6. Datos y Archivos
7. Ubicación de Usuario
8. Cámara
Curso: Integración de Aplicaciones en Tiempo Real con Servicios Web, Web Sockets y Clientes WinForms, Web MVC y Android
Horario: Martes y Jueves de 7 a 11 pm
Meses: Marzo - Abril (2 meses)
Costo: 250 soles mensual (USD 70 para No Peruanos)
Aplicaciones o Casos de Uso
1. Chat o Mensajes
2. Manejo de Documentos
3. Registro de Incidentes
4. Registro de Asistencias
5. Reservas de Mesas en Restaurantes
6. Streaming Video en Tiempo Real
Programa Anual Virtual de Desarrollo en Python (PAVDP)
Duración: 12 meses
Módulos: 3
Modulo 1: Desarrollo de Aplicaciones Comerciales en Python
Horario: Sábados de 4 a 11 pm
Meses: Enero - Abril (4 meses)
Costo: 250 soles mensual (USD 70 para No Peruanos)
1. Lenguaje Python & Librerías Estándar
2. Aplicaciones Windows con PyQT: PyOdbc, Pandas, PIL
3. Aplicaciones Web con Django
4. Servicios Web con Django
5. Web Sockets con Python
Modulo 2: Desarrollo de Aplicaciones de Procesamiento de Datos
Horario: Sábados de 4 a 11 pm
Meses: Mayo - Agosto (4 meses)
Costo: 250 soles mensual (USD 70 para No Peruanos)
1. Lenguaje Python & Librerías Estándar
2. Trabajo con Vectores: NumPy
3. Procesamiento de Datos: Pandas
4. Visualización de Datos: Matplotlib
Modulo 3: Desarrollo de Aplicaciones de Machine Learning con Python
Horario: Sábados de 4 a 11 pm
Meses: Setiembre - Diciembre (4 meses)
Costo: 250 soles mensual (USD 70 para No Peruanos)
1. Machine Learning con Python: Scikit-Learn, Tensorflow, Pytorch
2. Deep Learning con Python: Keras, Tensorflow, Pytorch
3. Computer Vision con Python: OpenCV, Tensorflow, Pytorch
4. Natural Language Processing: NLTK, Tensorflow, Pytorch
Los interesados deberán enviar un mail a Luis.duenash@gmail.com indicando lo siguiente:
Asunto: Curso de XXXXX (Android y/o Python)
Nombre Completo: XXXXXXXXXXXXX
Documento de Identidad: XXXXXX
Lugar de Procedencia: Ciudad / Pais
Ha llevado Cursos antes con Lduenas: Si / No
Nota: Los que lleven ambos cursos pagaran 400 soles (USD 120 para No Peruanos) en vez de 500 soles.
martes, 17 de agosto de 2021
Entrenamiento - Curso Virtual Online de Python
Curso Virtual Online de Python
Para todos los interesados les comunico que el Sábado 4 de Setiembre iniciamos el Cuarto Curso de Python que se desarrollara de manera virtual online. Este curso tiene un nivel Intermedio-Avanzado y esta enfocado en Desarrollar Aplicaciones Comerciales usando Python.
*****************************************************************************
Parte 1: Contenido del Curso
*****************************************************************************
Mes 1: Programando con Python usando Librerías Estándar y PyQT
1. Introducción a Python
1.1. Instalar Python
1.2. El Lenguaje Python
1.3. Librerías Estándar
1.4. Librerías No Estándar
2. Uso de Librerías Estándar
2.1. Manejo de Archivos con os y shutil
2.2. Web Scrapping con urllib.request y json
2.3. Acceso a Datos con PyOdbc y Pandas
2.4. Compresión de datos y archivos usando zlib y zipfile
2.5. Cifrado de datos con base64, hmac, hashlib y secrets
3. Introducción a PyQT
3.1. Instalar PyQt5 y PyQt5Designer
3.2. Clasificación de QTWidgets
3.3. Crear el diseño de la aplicación
3.4. Programar la aplicación Windows en PyQT
4. Trabajando con Diálogos en PyQT
4.1. Ventana de Dialogo con QDialog
4.2. Cuadro de Mensaje con QMessageBox
4.3. Dialogo de Archivos y Directorios con QFileDialog
Mes 2: Desarrollo de Aplicaciones Windows en Python con PyQT
1. Usando Controles Basados en Items (Item Widgets)
1.1. Mostrar una Columna con QListWidget
1.2. Mostrar varias Columnas con QTableWidget
1.3. Ver Jerarquía de Varias Columnas con QTreeWidget
2. Usando Controles Basados en Modelos (Model Widgets)
2.1. Mostrar una Columna con QListView y QStringListModel
2.2. Mostrar Varios QListView con QColumnView y QDirModel
2.3. Mostrar Vista Jerarquica con QTreeView y QFileSystemModel
2.4. Mostrar Varias Columnas con QTableView, QStandardItemModel y QAbstractTableModel
2.5. Combos Independientes y Dependientes con QComboBox
3. Personalizando el Control QTableView
3.1. Formatear Columnas
3.2. Mostrar Imágenes en Columnas
3.3. Ordenar usando QSortFilterProxyModel
3.4. Filtrar usando QSortFilterProxyModel
4. Mantenimiento de Datos con Pandas usando QTableView
4.1. Exportar a CSV, Excel, HTML, JSON con Pandas y a PDF (nativo)
4.2. Importar de CSV, Excel, HTML, JSON con Pandas
4.3. Mantenimiento de una Tabla
5. Reportes y Gráficos de Datos en PyQT
5.1. Reporte de Productos usando QPainter y QtPrintSupport
5.2. Grafico de Barras con PIL
5.3. Grafico de Columnas con QPainter
5.4. Grafico de Pie con matplotlib plt y FigureCanvas
6. Cabecera Detalles y Sistema Completo
6.1. Crear una Orden (Cabecera Detalle), Imprimir, Enviar Mail
6.2. Consultar una Orden (Cabecera Detalle), Imprimir, Enviar Mail
6.3. Sistema con Login, MDI y Formularios Dinámicos
7. Programación Asíncrona en PyQT con QThread
7.1. Ejecutando Bucles Asíncronos con Threads y Progreso
7.2. Consulta Asíncrona de una BD con Threads
7.3. Consulta Asíncrona de un Servicio Web con Threads
7.4. Envío de Correos Asíncrono con Threads y Progreso
7.5. Consultar Gran Cantidad de Datos y Exportación Asíncrona con Threads y Progreso
Mes 3: Desarrollo de Aplicaciones Web en Python con Django
1. Introducción a Django
1.1. Instalar Django
1.2. Crear un Sitio Web
1.3. Crear una Aplicación Web
1.4. Iniciar el Servidor Django
2. Creando Aplicaciones de Consultas
2.1. Devolver una Simple Respuesta de Texto
2.2. Devolver una Simple Pagina HTML
2.3. Consultar una Tabla y Exportar a Excel, Pdf y Word
2.4. Consultar Varias Tablas usando Tabs
3. Creando una Librería de JavaScript con Controles Básicos
3.1. Control Grilla con Checks
3.2. Filtro Conectado usando Combo con Grilla
3.3. Filtro Desconectado usando Combo con Grilla
3.4. Control TextList
4. Creando una Librería de JavaScript con Controles Avanzados
4.1. TreeView Jerárquico con Checks
4.2. Tablas Jerárquicas de 2 Niveles
4.3. Grid Jerárquico de 2 Niveles
4.4. Grilla con Columnas de Links para Descarga de Archivos
5. Creando Aplicaciones Web Completas
5.1. Mantenimiento de una Tabla con Imagen en Popups (SPA)
5.2. Sistema con Login, TreeView, iFrame con Código Genérico
5.3. Carrito de Compras con Login, Imágenes y Seguridad
5.4. Trabajar con miles de registros: Consultar y Grabar
Mes 4: Integración de Aplicaciones en Python con Servicios Web y WebSockets
1. Creando y usando Servicios Web en Django
1.1. Servicio de Consulta de Datos
1.2. Servicio de Mantenimiento de Datos (CRUD)
1.3. Servicio de Manejo de Archivos por Bloques
2. Creando y usando WebSockets en Django
2.1. Creando un Servidor WebSocket en Python con websock.WebSocketServer
2.2. Creando un Cliente WebSocket en PyQT con QtWebSockets
2.3. Creando un Cliente Web en JavaScript con WebSocket
2.4. Creando un Cliente Windows en .NET con WebSocketClient
3. Creando Aplicaciones Completas con Clientes Python, .NET y Android
3.1. Manejo de Documentos en Tiempo Real
3.2. Registro de Asistencia de Empleados en Tiempo Real
3.3. Registro de Incidentes en Tiempo Real con Mapas
Mes 5: Computer Vision en Python con OpenCV, dlib y face_recognition
1. Introducción a Computer Vision (CV)
1.1. Revisión e Historia de CV
1.2. Principales Librerías en CV
1.3. Libros y Universidades en CV
1.4. Científicos y Laboratorios en CV
1.5. Conferencias y Competiciones en CV
2. Introducción a OpenCV
2.1. Historia de OpenCV
2.2. Características Generales de OpenCV
2.3. Clasificación de Módulos en OpenCV
2.4. Instalación de OpenCV: opencv-python y opencv-contrib-python
3. Trabajando con Características de la GUI
3.1. Leer, Mostrar, Crear una Imagen con OpenCV
3.2. Leer y Mostrar un Video de Disco
3.3. Leer y Mostrar un Video en PyQT con OpenCV
3.4. Capturar Video de WebCam en Tiempo Real
3.5. Manipular Imagen del Video de WebCam y Grabar
3.6. Dibujar Textos y Figuras
4. Procesamiento de Imágenes con OpenCV
4.1. Transformación Afín: Trasladar la imagen
4.2. Transformación Afín: Rotando una imagen
4.3. Suavizado de Imágenes: Filtros de Paso Bajo
4.4. Transformaciones morfológicas
4.5. Detección de Bordes
5. Detección de Rostros usando Haarcascade
5.1. Detectar Rostros en un Imagen
5.2. Detectar Rostros en un Video en Tiempo Real
5.3. Detectar Rostros y Ojos en un Video en Tiempo Real
6. Reconocimiento de Objetos usando Haarcascade
6.1. Reconocimiento de Objetos en una Imagen con YOLO
6.2. Reconocimiento de Objetos en un Video en Tiempo Real con YOLO
7. Detección de Marcas Faciales con OpenCV
7.1. Detección de Marcas Faciales en una Imagen
7.2. Detección de Marcas Faciales en un Directorio de Imágenes
7.3. Detección de Marcas Faciales en un Video en Tiempo Real
8. Detección de Marcas Faciales usando Dlib
8.1. Detección de Marcas Faciales en una Imagen con Dlib
8.2. Detección de Marcas Faciales en un Video en Tiempo Real con Dlib
9. Reconocimiento de Rostros usando face_recognition
9.1. Comparar 2 rostros para ver sin son la misma persona
9.2. Buscar un rostro en un directorio de fotos
9.3. Reconocer un rostro en un Video en Tiempo Real
*****************************************************************************
Parte 2: Datos del Curso
*****************************************************************************
1. Horario y Fecha de Inicio
- Horario: Sábados de 4:00 pm a 11:00 pm (Hora Perú)
- Fecha de Inicio: Sábado 04 de Setiembre del 2021
2. Duración del Curso
- Duración: 112 horas
- Tiempo: 5 meses
- Frecuencia: 7 horas semanales (28 horas mensuales)
3. Inversión y Forma de Pago
- Mensual: 200 nuevos soles para Peruanos y USD 60 para extranjeros
- Total 5 meses: 1000 nuevos soles o USD 300
- Forma de Pago: En efectivo, al inicio de cada mes (200 soles o USD 60)
- La cuenta del Banco en Perú se enviará a los seleccionados
- Para los alumnos de otros países será por Western Union
4. Registro
- Los interesados deberán enviar un mail a: Luis.duenash@gmail.com con los sgtes datos:
Titulo del mail:
- Cuarto Curso Virtual Online de Python
Contenido del mail:
- Nombre Completo: Apellido Paterno, Apellido Materno y Nombres
- Documento de Identidad: DNI, Cédula, etc.
- Lugar de Procedencia: Ciudad y País
- Ha llevado Cursos antes conmigo: (No / Si), si es Si en donde
- Nivel de Experiencia en Desarrollo: Básico / Intermedio / Avanzado
- Conoce Python: Si/No
- Comentario: Breve resumen de porque quiere llevar el curso.
5. Advertencia
- Solo deberán enviar correo los que estén bien informados de como son mis cursos, mi metodología y arquitectura.
- No se aceptan personas susceptibles o sensibles a fuertes comentarios
- No hay ningún tipo de certificación o diploma de participación (por el momento)
- Habrá un filtro de ingreso y se enviará el mail con el número de cuenta a pagar solo a los seleccionados.





