El futuro de la programación


Muchas nuevas herramientas de IA serán capaces de escribir y depurar código de forma más rápida y eficiente que los humanos y a un coste menor. Si le preocupa la pérdida de puestos de trabajo y el fin de la profesión de programador, esperemos que no tenga razón , pues no estamos aqui para hacer predicciones catastrofistas, sino para intentar comprender la transcendencia de lo que la evolución de la tecnologia puede suponer , entre otras cosas porque dicen, que si no puedes contra tu enemigo, !Aliate con el! así que quizás sea el momento, querido lector, de explorar como podemos hacer nuestro aliada la IA ,puesto que las herramientas basadas en IA ya están listas para tomar el relevo, y las formas tradicionales de escribir código serán menos populares.

Según un estudio de OpenAI y la Universidad de Pensilvania, algunas profesiones corren el riesgo de verse afectadas por herramientas como ChatGPT. Según el estudio, aproximadamente el 80% de la mano de obra estadounidense podría ver afectado al menos el 10% de sus tareas laborales por la introducción de las GPT, mientras que alrededor del 19% de los trabajadores podría ver afectado al menos el 50% de sus tareas.

De hecho, las profesiones con mayor riesgo de verse afectadas por herramientas como ChatGPT por el momento no son profesionales que necesitan realizar labores artesanes, sino en realidad profesiones bien renumeradas por lo general con relativo alto nivel académico, como pueden ser:

  • Matemáticos.
  • Contables (calculadoras fiscales).
  • Analistas financieros cuantitativos.
  • Escritores y autores.
  • Diseñadores web y de interfaces digitales.
  • Taquígrafos judiciales.
  • Subtituladores simultáneos.
  • Correctores de redacción y estilo.

ChatGPT puede ser una herramienta valiosa para los programadores. Puede ayudar con tareas como añadir contenido de marcador de posición y contenido de relleno en varios formatos, generar algoritmos eficientes, traducir código a otro lenguaje de programación, formatear datos, optimizar bloques de código y escribir pruebas para el código.

Por ejemplo, ChatGPT puede generar contenido de relleno en SQL, JSON, CSV y docenas de formatos más. También puede crear matrices y listas en cualquier lenguaje de programación. Además, puede ayudar a los programadores a generar algoritmos eficientes diseñando un algoritmo con el menor número de operaciones para completar una función dada1.

¿Que puede hacer chatgbt por un programador?

En primer lugar, veamos todo lo que hacemos en nombre de la codificación, y luego veremos cómo todo ello se volverá irrelevante. Empecemos por el principio, porque cuando se esta aprendiendo a codificar en un lenguaje nos centramos en escribir código funcional , pero tal vez no hayamos aprendido a leerlo o entenderlo sobre todo cuando no lo hemos escrito nosotros. Y eso no es todo, a veces desde el esbozo al código final esta al tarea , ¿no?

Imagine que está en medio de un montón de trabajo, y quiere identificar rápidamente lo que hace esta función:

No se cargue: Lo único que hace esta función es:

  • Duplica una hoja de cálculo.
  • Lanza un error si no se guarda la hoja de cálculo original.
  • Añade «Copia de» al título de la nueva hoja de cálculo.
  • ¿Y ya está?

Bueno, hay una cosa más de la que puede que no se haya dado cuenta (¡buen trabajo si lo has hecho!) y es que esta función también cambia accidentalmente el título de la hoja de cálculo original. Errores como este ocurren todos los días.

La depuración es una habilidad infravalorada. Los programadores que son buenos depuradores trabajan más rápido, hacen más cosas y están menos estresados.

No se preocupe si no ha podido encontrar el error, ¡sólo significa que sacará el máximo partido a herramientas basadas en IA como chatGPT pues como se puede ver en la imagen el propio chatgbt ha encontrado el bug y nos da una forma de solucionar el problema!

Entendiendo el código ajeno

La mayoría de los desarrolladores trabajan en una base de código que normalmente no ha sido escrita por ellos. Es común que los desarrolladores empujen hacia fuera el código rápidamente que escribiendo limpio, código mantenible. Mientras tanto, a las pobres almas que vienen detrás de ellos les toca recoger los pedazos y tratar de dar sentido al desorden. Pasarían incontables horas intentando desenredar la retorcida telaraña de código, tratando de corregir errores y añadir nuevas funciones.Un ciclo interminable de frustración y desesperación.

Veamos un ejemplo de código escrito en C y la idea de cómo diablos alguien podría llegar a leer y entender este código (pero ya no).

En la vida real, es posible que no se encuentre con un código como este (si lo hace, vaya a buscar a la persona que lo escribió). Usar ChatGPT es mucho más rápido que intentar descifrar código enrevesado.

Imagínese cuánto más rápido se podría avanzar generando resúmenes de bases de código.

¿Qué más puede hacer ? Pues como vemos abajo podemos pedirle que mejore el código existente (o añadir funcionalidades)

¿Añadir funciones? Pues simplemente es cuestión de pedirlo:

Ahora que ha añadido algunas funciones y mejorado el código existente, decide ir un paso más allá y hacer que el código sea más legible.

El primer paso sería alinear el desorden de código existente con las convenciones de codificación, pues nuevamente es solo cuestión de pedírselo a chatgbt:

Además quien escribiera el código anterior venía de un entorno C y no puso interés en ser declarativo, así que es hora de corregirlo, ¿no?

Si sigue sin estar satisfecho, sobre todo después de descubrir que algunas partes del código son excesivamente complicadas, también podemos pedirle a chatgbt que simplifique esas partes del código :

Bueno ¿ y su hablamos del código nuevo? Quizás no este seguro de si el código que ha escrito duramente sea realmente eficaz..asi ¿Por qué no preguntárselo a chatgbt?.

Quizás no haya tenido tiempo para documentar el código así que ¿porque no pedirle a chatgbt que documente el código?.

Y para terminar , hay que asegurarse de que el código no sólo funcione, sino que funcione bien por lo que ante cualquier problema podemos pedirle a la IA que nos genere el código autoamticaemente con el lenguaje o tecnologia que deseemos

Y por cierto amigo lector , si es un entusiasta de Arduino sepa que también chatgbt puede generar todo el código que necesite automáticamente según los requisitos de la aplicación que tenga en mente. Por ejemplo pidamos a chat gbt que no cree el código para esp32 con el que hacer una carrera de luces de 8 leds (como las que llevaba el coche fantástico).

Esta es su repuesta:

Para hacer una carrera de luces de 8 LEDs con un ESP32, puedes utilizar el siguiente código:

C++Copy code// Incluye la librería de ESP32
#include <Arduino.h>

// Define las conexiones de los LEDS
#define LED1_PIN 2
#define LED2_PIN 4
#define LED3_PIN 5
#define LED4_PIN 12
#define LED5_PIN 13
#define LED6_PIN 14
#define LED7_PIN 15
#define LED8_PIN 16

// Define el tiempo de espera entre cada cambio de LED
#define DELAY_TIME 100

// Define la secuencia de encendido de los LEDs
int led_sequence[] = {LED1_PIN, LED2_PIN, LED3_PIN, LED4_PIN, LED5_PIN, LED6_PIN, LED7_PIN, LED8_PIN};

// Define el número de LEDs
int led_count = sizeof(led_sequence) / sizeof(int);

void setup() {
  // Configura los pines de los LEDS como salidas
  pinMode(LED1_PIN, OUTPUT);
  pinMode(LED2_PIN, OUTPUT);
  pinMode(LED3_PIN, OUTPUT);
  pinMode(LED4_PIN, OUTPUT);
  pinMode(LED5_PIN, OUTPUT);
  pinMode(LED6_PIN, OUTPUT);
  pinMode(LED7_PIN, OUTPUT);
  pinMode(LED8_PIN, OUTPUT);
}

void loop() {
  // Recorre la secuencia de encendido de los LEDS
  for (int i = 0; i < led_count; i++) {
    // Enciende el LED correspondiente
    digitalWrite(led_sequence[i], HIGH);
    // Espera un tiempo
    delay(DELAY_TIME);
    // Apaga el LED correspondiente
    digitalWrite(led_sequence[i], LOW);
  }
}

Este código configura los pines de los 8 LEDs como salidas, define una secuencia de encendido para los LEDs y luego recorre esta secuencia, encendiendo y apagando los LEDs en orden. También hay un tiempo de espera entre cada cambio de LED para que se vea la «carrera» de luces. Puedes ajustar el tiempo de espera cambiando el valor de DELAY_TIME.

Ideas finales

Nos guste o no, con herramientas como chatGPT, escribir código y los que sólo saben escribir código no servirán de nada. Sin embargo, al igual que los artesanos fueron capaces de adaptarse y aprender nuevas habilidades para seguir siendo competitivos, los programadores podrán hacer lo mismo aprendiendo más sobre cómo utilizar estas herramientas en su beneficio. Una vez que escribir código quede obsoleto, los solucionadores de problemas serán más valiosos. Los programadores del futuro serán mucho más productivos que los actuales, capaces de hazañas con las que sólo podemos soñar. Es fantástico que las tecnologías que utilizamos sean cada vez más inteligentes. Las herramientas que utilizamos están evolucionando a una velocidad de vértigo, asi que es hora de que también evolucionemos. Sí. Adaptarse a nuevas formas es doloroso, pero sólo los vivos pueden sentir el dolor – Los muertos ni siquiera sienten el fuego crematorio.

Fuente https://javascript.plainenglish.io/coding-wont-exist-in-5-years-this-is-why-6da748ba676c

Problemas con unidades flash


Las unidades flash extraíbles funcionan mediante el uso de la tecnología de memoria flash, tecnología de almacenamiento de datos basada en memorias de alta velocidad que se programan eléctricamente y que utiliza un tipo de memoria no volátil que se denomina precisamente «memoria flash». Este tipo de memorias no volátil no requieren alimentación para mantener la integridad de los datos almacenados con lo que, si se interrumpe el suministro, no se pierde nada. El almacenamiento flash utiliza celdas de memoria para almacenar datos con la peculiaridad de que aquellas que tengan datos escritos anteriormente se tienen que borrar antes de poder escribir datos nuevos en ellas .

Es bastante común ver que su unidad USB no puede mostrarse y abrirse con la aparición de todo tipo de errores en su escritorio como «Unidad flash USB no reconocida«, «Por favor, inserte un disco en disco extraíble«, «Necesita formatear el disco antes de poder utilizarlo» y «Unidad USB RAW«, etc. ¿Qué son estos errores y qué está fallando en tu unidad USB? ¿Cómo podemos recuperar datos de una unidad USB inaccesible o formateada? Averigüémoslo.

¿Por qué la unidad flash no funciona o no se reconoce?

Hay varias ventajas en el uso de una unidad flash extraíble siendo su principal ventaja su portabilidad pues las unidades flash son pequeñas y ligeras, lo que las hace fáciles de transportar y almacenar. Además, las unidades flash utilizan tecnología de estado sólido, lo que significa que no tienen piezas móviles y son más resistentes a golpes y vibraciones que los discos duros tradicionales. Otra ventaja es que las unidades flash utilizan memoria no volátil, lo que significa que los datos no se pierden cuando se desconecta la electricidad. Sin embargo aunque hay varias ventajas en el uso de una unidad flash extraíble hay algunas desventajas, siendo una de las principales su limitado ciclo de escritura y borrado pues una unidad flash solo puede escribirse y borrarse unas 100.000 veces . Además, las unidades flash suelen tener hasta 128 GB de almacenamiento (desconfié amigo lector si le ofrecen capacidades mayores a precios bajos). Por cierto también pueden ser susceptibles a la electricidad estática e incluso la carga eléctrica más pequeña puede provocar la pérdida de datos y daños irreversibles.

Los problemas de los pendrive o unidades flash, se pueden resumir en dos categorías de errores: lógicos y físicos. Los errores lógicos se pueden corregir con algunos algunos trucos de bricolaje de los que vamos a ver en este post, mientras que los físicos normalmente , excepto que haya problemas con el conector y podamos solucionalo, no se pueden resolver sin conocimientos profesionales.

Errores físicos

La estructura interna de una unidad flash extraíble se basa en la tecnología de memoria flash. La memoria flash es un tipo de EEPROM que contiene una matriz de celdas con un transistor evolucionado con dos puertas en cada intersección. Todo esta matriz de celdas se suele integrar en un único chip, que suele ocupar la mayoría del espacio del dispositivo , tal y como podemos ver en la siguiente imagen.

El circuito de memoria flash normalmente lleva asociado un controlador aparte que cumple también la función de controlador USB , normalmente integrado en otro chip que suele ser un microcontrolador al que por cierto según el fabricante podemos actualizar su firmware ( precisamente porque puede fallar).

Este importante componente va normalmente ubicado justo en el lado opuesto el pcb donde esta la flash. En la imagen podemos ver imagen del controlador de una memoria Kingston.

Como se puede deducir, dados los relativos pocos componentes que consta una unidad flash, las principales partes susceptibles a dar problemas son las siguientes :

  • Vástagos y conectores rotos.
  • Unidades muertas (sin alimentación)
  • Circuito o puerta NAND rotos,
  • Software del controlador de la unidad flash dañado a causa de una memoria NAND genérica o de baja calidad

Los cuatro errores anteriores están relacionados con daños en el hardware y la desconexión física de la unidad flash. La reparación de la unidad con estos errores pueden requerir una soldadura precisa y fundente con lupa. Sin experiencia y equipo especializado, es casi imposible reparar la unidad flash con daños de hardware por su cuenta. Quizás , lo mejor es que busque ayuda de profesionales sobre todo si los datos de la unidad son muy importantes.

Errores lógicos

Un error muy típico es la corrupción de datos después de que la unidad se haya desmontado incorrectamente del puerto que puede ocurrir cuando usted desconecta su unidad flash sin hacer clic en «expulsar» la última vez, lo que conduce a la corrupción de datos en la unidad. Por lo tanto, cuando se conecta de nuevo a su PC, la unidad flash no puede ser reconocida por el sistema operativo.

Otro error típico es el de «Datos no válidos en el Master Boot Record (MBR) o Partition Boot Record (PBR) o en la estructura de directorios de la unidad USB» , lo cual ocurre cuando los datos almacenados en MBR, PBR o sobre la estructura de directorios estan mal, lo que puede causar que la unidad no pueda funcionar ya que llevan la información sobre cómo y dónde el sistema operativo encuentra y lee los datos almacenados en cada sector.

Ambos errores pueden a conducir a que la unidad flash no sea reconocida por el sistema operativo, asi que nos iremos al interfaz de comandos y lanzaremos Disskpart. Si en la utilidad de Diskpart en Windows 11 aparece una unidad en estado «No hay medios», esto significa que el sistema operativo no puede detectar correctamente la unidad o que la unidad tiene un problema de hardware.

DISKPART> list disk
Núm Disco Estado Tamaño Disp Din Gpt
---------- ---------- ------- ------- --- ---
Disco 0 En línea 476 GB 2048 KB *
Disco 1 No hay medios 0 B 0 B

Para solucionar este problema, puede intentar los siguientes pasos:

  1. Verifique que la unidad esté conectada correctamente: Si la unidad es un disco duro interno, verifique las conexiones SATA o de alimentación para asegurarse de que estén bien conectadas. Si es una unidad externa, asegúrese de que el cable USB o el adaptador de corriente estén conectados correctamente y funcionando. Asegúrese de que el cable USB ( si lo hay) esté conectado correctamente y que la unidad esté enchufada en un puerto USB que funcione correctamente.
  2. Comprobar el administrador de dispositivos: Abra el Administrador de dispositivos en Windows y busque la unidad en la lista de dispositivos. Si la unidad tiene un signo de exclamación o un símbolo de error, intente actualizar los controladores o reinstalarlos.
  3. Ejecutar CHKDSK: Utilice la utilidad CHKDSK de Windows para comprobar si hay errores en la unidad y repararlos. Abra una ventana de CMD en modo administrador y ejecute el comando «chkdsk /f X:», donde «X» es la letra de la unidad afectada. Esto verificará y reparará cualquier error en la unidad.
  4. Verificar el estado de la unidad: Si los pasos anteriores no resuelven el problema, es posible que la unidad tenga un problema de hardware. Descargue una herramienta de diagnóstico de la unidad desde el sitio web del fabricante de la unidad y ejecute una prueba para verificar el estado de la unidad ( esto lo veremos mas adelante).
  5. Verifique que la unidad esté formateada correctamente. Si la unidad está formateada en un sistema de archivos que no es compatible con su sistema operativo, puede causar problemas. Verifique la compatibilidad del sistema de archivos de la unidad con su sistema operativo.
  6. Use otra herramienta para formatear la unidad. Si DiskPart sigue sin poder limpiar la unidad, puede probar otras herramientas de formateo de disco como Rufus o HP USB Disk Storage Format Tool.
  7. Reemplazar la unidad: Si la unidad tiene un problema de hardware irreparable, es posible que deba reemplazarla con una unidad nueva.

Este error que nos puede mostrar diskpart, podemos verlo también desde el administrador de discos para comprobar como esta ese disco ( en la imagen el disco 1):

Si desde el Administrador de discos en Windows aparece una unidad extraíble con el estado «No hay medios«, esto es indicativo de un problema en la conexión o en la unidad en sí. Si hemos seguidos los pasos anteriores con la utilidad Diskpart , una herramienta de diagnóstico genérica para unidades USB que puede identificar problemas de hardware y proporcionar recomendaciones para solucionarlos es la herramienta CrystalDiskInfo. Esta herramienta es gratuita y fácil de usar.

Aquí hay algunos pasos para usar CrystalDiskInfo para diagnosticar problemas con una unidad USB:

  1. Descargue e instale CrystalDiskInfo en su ordenador.
  2. Conecte la unidad USB y abra CrystalDiskInfo.
  3. Seleccione la unidad USB en la lista de unidades disponibles.
  4. CrystalDiskInfo mostrará información detallada sobre la unidad USB, incluyendo su estado de salud, temperatura, velocidad de transferencia y más.
  5. Si la herramienta detecta algún problema con la unidad USB, se mostrará una alerta y se proporcionarán recomendaciones para solucionar el problema.
  6. Si es posible, siga las recomendaciones para solucionar el problema.
  7. Si el problema no se puede solucionar, es posible que deba reemplazar la unidad USB.

Recuerde que esta herramienta es una herramienta de diagnóstico genérica y no puede detectar todos los problemas de hardware. Si sigue experimentando problemas con la unidad USB después de usar CrystalDiskInfo, es posible que deba comunicarse con el fabricante de la unidad para obtener asistencia adicional.

También es posible que el problema sea causado por un error de hardware en su ordenador por lo que puede intentar actualizar los controladores de USB o ejecutar una herramienta de diagnóstico de hardware para determinar si hay algún problema con su computadora. Hay varias herramientas de recuperación de firmware disponibles en línea que pueden ayudar a recuperar unidades flash dañadas o con firmware corrupto.

En el caso de que su unidad flash sea Kingston y no responde puede intentar actualizar el firmware de una unidad flash Kingston, para lo cual puede descargar e instalar Kingston SSD Manager (KSM) desde el sitio web de Kingston . Una vez que haya instalado KSM, puede ejecutar la aplicación y seleccionar su unidad flash Kingston. Si hay una actualización de firmware disponible para su unidad específica, podrás hacer clic en el botón de actualizar firmware para comenzar la actualización que pueda ayudarte

A continuación, se mencionan algunas otras herramientas genéricas:

  1. HP USB Disk Storage Format Tool: Esta herramienta es una solución de formateo de bajo nivel que también puede restaurar una unidad flash a su estado original de fábrica. Está diseñada específicamente para trabajar con unidades flash USB de marca HP, pero también funciona con otros fabricantes.
  2. USB Repair Tool: Esta herramienta puede reparar problemas de firmware y hardware en unidades flash USB. Puede solucionar errores de lectura y escritura, reparar sectores defectuosos y recuperar archivos perdidos.
  3. ChipGenius: Esta herramienta puede identificar el controlador de memoria flash utilizado en una unidad flash y proporcionar información sobre su fabricante, modelo, capacidad y firmware. También puede verificar la integridad del firmware de la unidad y proporcionar una lista de herramientas de recuperación de firmware compatibles.
  4. Flash Drive Repair: Esta herramienta es una solución integral de reparación de unidades flash que puede recuperar unidades corruptas, dañadas o inaccesibles. Puede formatear la unidad, reinstalar el firmware y reparar errores de partición.

Es importante tener en cuenta que el uso de herramientas de recuperación de firmware puede ser arriesgado y puede causar daños permanentes a la unidad. Es importante seguir cuidadosamente las instrucciones y utilizar estas herramientas con precaución. En caso de duda, es recomendable buscar asesoramiento profesional antes de intentar reparar una unidad flash dañada o con firmware corrupto.

Esperamos que estos pasos le ayuden a solucionar el problema con la unidad extraíble con el estado «No hay medios» en el Administrador de discos de Windows.