NOTICIAS

Dos trucos para Visual Studio.

La mayoría de los programadores del entorno .NET usamos Microsoft Visual Studio para nuestros desarrollos. Sin embargo, a veces esta potente herramienta mantiene oculto a nuestro conocimiento muchas de sus funcionalidades que nos pueden hacer nuestro trabajo más fácil y dinámico. A continuación veremos dos posibilidades de Visual Studio que son desconocidas para gran número de programadores.

1) Copiar varios elementos en el portapapeles.

Es muy común hacer uso de las combinaciones de teclas Ctrl+c/Ctrl+x y Ctrl+v para copiar/cortar y pegar bloques de código fuente. Sin embargo, generalmente lo usamos para un solo bloque de código de una vez en cada operación de pegado. Sin embargo, es posible almacenar diferentes bloques de código y urlos según conveniencia. Para ello, después de seleccionar y copiar/cortar, en logar de usar Ctrl+v para pegar, se puede usar la combinación de teclas Ctrl+Shift+v, tras lo cual se desplegará una ventana con un listado de un máximo de 15 bloques de código copiados/cortados anteriormente, dando la posibilidad de seleccionar el bloque de código de interés para su pegado.



2) Separar pestañas en filas diferentes.

En ocasiones en necesario mantener abiertos varios archivos al mismo timepo. Esto supone que las dimensiones de la pantalla puede limitar el número de pestañas de estos archivos que quedarán visibles. Sin embargo, se pueden organizar estas pestañas en más de una fila, de tal manera que siempre serán visibles.

Para ello ya que abrir desde el menú de configuración la siguiente ruta: Tools -> Options... -> Environment -> Tabs and Windows -> Show pinned tabs in an separate row.

IBM crea un procesador cuántico de 127 qubits.

La compañía IBM ha construido su nuevo procesador cuántico de 127 bits cuánticos siendo éste el doble de potente que Zuchongzhi, el procesador que recientemente habían creado unos ingenieros de la Universidad de Ciencia y Tecnología de China y la Universidad Tsinghua de Pekín. La compañía lo ha bautizado con el nombre Eagle.

La responsable técnica de Teoría y Aplicaciones de Computación Cuántica de la compañía, Zaira Nazario, ha declarado: «es un hito porque supera la barrera de los 100 qubits». Además ha apuntado que «ha llegado ya al límite en el que no se puede simular su potencia de cálculo con procesadores clásicos». Según explica la compañía, el número de bits tradicionales necesarios para igualar la potencia de cálculo de su creación es de 127 qubits.

Queda claro que aunque la computación cuántica avanza con paso firme, todavía queda mucho para conseguir que estos ordenadores cuánticos revolucionen la informática. Sin embargo, el director de investigación, Darío Gil, apuesta firmemente por Eagle: «es un paso importante hacia el día en el que las computadoras cuánticas puedan superar a las computadoras clásicas en niveles significativos».

IBM tiene previsto crear un nuevo procesador de 433 qubits en 2022 y otro de 1121 bits cuánticos en 2023. De esta forma, la compañía se posiciona en la cúspide de la carrera por construir el primer ordenador cuántico comercial.

Viasual Studio 2022.

El nuevo y esperado Visual Studio 2022 posee una estructura de 64 bits, lo que lo hace notablemente más rápido que las versiones anteriores. Puede abrir, ejecutar y depurar soluciones muy grandes y complejas haciendo un uso más razonable de ma memoria del equipo.

Facilita y agiliza la creación de aplicaciones modernas basadas en la nube con Azure. Es totalmente compatible con .NET 6 y su marco unificado para aplicaciones web, cliente y móviles para desarrolladores de Windows y Mac. Además, Visual Studio 2022 incluye una sólida compatibilidad con la carga de trabajo de C++ con nuevas características de productividad, herramientas de C++20 e IntelliSense.

Es en el uso de IntelliCode donde se muestran una de las mayores mejoras de la nueva versión, notándose notablemente que es necesario picar menos código que anteriormente, pues esta característica va mostrando las opciones más comunes de rellenar código fuente a tiempo real.

Un nuevo estilo de visualización con nueva iconografía pero manteniendo las líneas generales anteriores nos permitite una claridad mayor a simple vista de los elemeantos desplegados.

En resumen, y sin ninguna duda, un gran avance en el desarrollo del mejor IDE para .NET y C++.

Windows 11.

Tal y como prometió Microsoft, la nueva versión de Windows está disponible en el canal de desarrollo del Insider Program a partir del 5 de octubre de 2021.

Traerá novedosos cambios de visualización, como un nuevo menú de inicio, barra de tareas mejorada, un nuevo centro de notificaciones y novedades en el explorador de archivos. También habrá mejoras en los teclados táctiles, en las secciones de configuración y en muchos otros aspectos más.

Sin embargo, más allá de las versiones preliminares, aún habrá que esperar hasta casi finales del 2021 para poder conocer la versión definitiva y todas sus nuevas funcionalidades.

Sin embargo, no son pocos los requisitos previos que deberán cumplir los equipos:

- Procesador de 64 bits a 1 GHz.

- 64 GB de almacenamiento.

- 4 GB de memoria RAM.

-Conexión a Internet.

- Tarjeta gráfica compatible con DirectX 12 con un controlador WDDM 2.0.

- Firmware del sistema: UEFI, compatible con arranque seguro.

- Soporte para TPM 2.0.

- Soporte para SecureBoot.

Sin embargo, el requisito que puede causar más problemas, es la compatibilidad de la familia de los procesadores de las máquinas. En este enlace figura la lista completa de procesadores compatibles con Windows 11.

Redirección automática HTTPS de Microsoft Edge.

El navegador Edge se suma a la tendencia de priorización de páginas web que utilizan el protocolo HTTPS, tal y como anteriormente hicieron los navegadores Firefox y Chrome. Se priorizarán las conexiones a través de HTTPS en aquellas páginas que ofrezcan la posibilidad pero que también dispongan de una versión sin cifrar en HTTP. Dicho de otra manera: el navegador accederá a un sitio mediante HTTP que tenga implementado HTTPS y redireccionará automáticamente a este último.

La redirección automática como tal no es nada nuevo, de hecho tenía sentido hace años, cuando todavía había muchos sitios web no disponían de conexión cifrada. A día de hoy son pocos los sitios web que no disponen de cifrado HTTPS, al menos, en lo que a sitios serios se refiere, en gran medida por la presión que ha ejercido Google, cuyo buscador penaliza las conexiones sin cifrar. Incluso aquellos que aún mantienen HTTP, la redirección hacia HTTPS suele ser automática a cargo del propio sitio.

Fin de soporte para .NET Framework 4.5.2, 4.6 y 4.6.1.

El 26 de abril de 2022 finalizará el soporte de Microsoft para los paquetes de .NET Framework 4.5.2, 4.6 y 4.6.1. Después de esa fecha se dejará de proporcionar actualizaciones incluidas en las revisiones de seguridad o soporte técnico para estas versiones.

Microsoft toma esta determinación después de considerar que las firmas digitales con certificados de algoritmo SHA-1 ya no son seguras. Por lo tanto, la compañía recomienda la utilización de cualquiera de los paquetes de .NET Framework distintos de los anteriores, para los cuales no se considera fin de soporte en un futuro inmediato. Recomiendan especialmente los paquetes .NET Framework 4.6.2 y 4.8, los cuales son altamente compatibles con los anteriores y han demostrado gran solidez y estabilidad en tiempo de ejecución para las aplicaciones.

A pesar de que las versiones afectadas continuarán siendo funcionales, si se decide la recompilación de aplicaciones a versiones superiores es necesario un análisis en tiempo de ejecución para descartar posibles incompatibilidades o bugs. Asimismo, en aplicaciones que se encuentran en construcción, será necesario un análisis antes de su implementación en tiempo de ejecución en el entorno de producción.

Nueva herramienta de análisis de disco para Windows 10.

Con el paso del tiempo, nuestros ordenadores van acumulando documentos, vídeos, imágenes y otros archivos en nuestro ordenador. A la hora de realizar una limpieza del disco duro, unos de las problemáticas con la que se encuentra el usuario es averiguar cuáles son las carpetas y aplicaciones que están ocupando más espacio. Existen diferentes herramientas gratuitas que te facilitan dicha tarea y te muestran cuáles son los directorios que más espacio están ocupando.

Para que no tengas que recurrir a una aplicación de terceros, Microsoft está trabajando en una nueva herramienta de análisis de disco para Windows 10. Se trata de la función DiskUsage y Microsoft la incluyó en las compilaciones 20277 y 21277 de Windows 10 Insider que fue lanzada hace varias semanas.

DiskUsage es una herramienta para la consola de comandos que se encuentra en la ruta C:\windows\System32\diskusage.exe. Te permite escanear unidades de disco completas o carpetas específicas para mostrar el espacio que ocupan los documentos en nuestro disco duro. Permite de forma más eficaz obtener información acerca de los documentos de nuestro ordenador. Por ejemplo, si deseamos conocer las carpetas que ocupan más de 1 GB en el directorio copias, simplemente hay que ejecutar el comando: diskusage /minFileSize=1073741824 /h c:\copias. Una vez hecho se mostrarán las carpetas que superan ese tamaño, indicando cuántos archivos contiene cada uno de ellos y la ruta en la que puedes encontrar la carpeta en cuestión.

Por el momento, la herramienta está en desarrollo y es posible encontrar algunos errores de funcionamiento que se irán resolviendo. Por el momento, no ha trascendido cuando estará disponible la versión definitiva para Windows 10.

Superordenador de Microsoft.

La compañía Microsoft he creado el superordanador Azure que, en cuanto a su rendimiento y potencial, puede ser situado entre los 5 primeros más potentes del mundo. Cuenta con 285.000 núcleos de procesamiento, 10.000 GPU y conexión de 400 gigabits por segundo. El proyecto ha sido enfocado a dar vida a una inteligencia artificial capaz de procesar datos a una velocidad impensable hasta ahora.

El proyecto ha sido realizado en colaboración con la organización sin ánimo de lucro OpenAI y pretende variar el prisma bajo el que se observan estos equipos. En vez de utilizarlo para una función concreta, como se usan habitualmente, pretenden trabajar en un sistema de inteligencia artificial que posteriormente funcione para otros equipos.

Los responsables del proyecto creen que su superordenador traerá una nueva sofisticación a la inteligencia artificial al lograr que trabaje desde distintos focos y tipos de análisis. Han explicado que, por ejemplo, con los textos conseguirá "absorber profundamente los matices del lenguaje, la gramática, el conocimiento, los conceptos y el contexto como para sobresalir en múltiples tareas: resumir un discurso largo, moderar en chats de juegos on-line, encontrar pasajes relevantes en miles de archivos legales, etc.".

¿Cómo has aprendido a programar?

Atención: el 74% de los programdores son autodidactas. Los datos HackerRank revelan que en la mayoría de los casos los programadores son autodidactas por naturaleza, y no solamente en sus inicios, sino a lo largo de toda su carrera.

Más del 25% de los encuestados empezaron a programar antes de los 16 años, pero esa proporción se dispara entre los desarrolladores de entre 45 y 54 años, de los cuales el 47% ya programaba antes de esa edad. Aquí los legendarios ordenadores de 8 y 16 bits y los primeros PCs fueron los que consiguieron que estos profesionales comenzaran a sentirse atraídos por la programación.

Para los desarrolladores más jóvenes esa experiencia es distinta, y los que tienen entre 18 y 24 años han empezado más tarde: sólo el 20% había programado antes de los 16 años, lo que parece indicar que hoy en día la programación es menos un hobby y más un campo en el que claramente hay una orientación muy profesional.

Uno de los datos más destacables de ese estudio es esa voluntad de aprender por sí mismos todo tipo de nuevas plataformas. En la encuesta se reveló que 2 de cada 3 desarrolladores tienen un título universitario en carreras técnicas, pero lo sorprendente es que 3 de cada 4 no habían aprendido a programar durante sus estudios: lo habían hecho de forma autodidacta.

¿Por qué aprender C++?

Si estás pensando en aprender C++, en este artículo verás las ventajas de este lenguaje tan versátil y por qué se sigue utilizando ampliamente en el mundo de la programación.

Ventajas de C++.

Las principales ventajas de C++ sobre otros lenguajes de programación son las siguientes:

- Tiene un altísimo rendimiento.

- A pesar de tener más de 20 años, es un lenguaje que se está utilizando constantemente y que ha estado siendo modernizado y desarrollado durante todo este tiempo.

- Es multiplataforma.

Lenguaje de alto rendimiento.

Es capaz de desarrollar un altísimo rendimiento por varios motivos:

- Permite hacer llamadas directamente al sistema operativo.

- Es un lenguaje compilado para cada plataforma.

- Tiene muchísimos parámetros de optimización.

- Tiene acceso directo a la memoria, que además puede ser controlada directamente por el programador.

- Tiene una integración directa con el lenguaje ensamblador, tanto que incluso permite la escritura de código fuente ensamblador embebido dentro del código fuente C++.

Lenguaje moderno y actualizado.

C++ permite, entre otras muchas cosas:

- Programación basada en objetos.

- Crear datos complejos.

- Definir operaciones sobre esos datos complejos.

- Relacionar estos datos complejos entre ellos.

- Realizar programación genérica y plantillas.

- Implementar múltiples patrones de diseño.

- Sobrecarga de operadores y métodos.

Desventajas de C++.

Evidentemente, al igual que cualquier otro lenguaje de programación, C++ también tiene sus costes:

- Necesita de una compilación diferente para cada plataforma.

- Debido a su longevidad y amplio alcance, es un lenguaje muy extenso y posee muchísimas líneas de código fuente.

- Su depuración es bastante complicada.

Resumen.

A pesar de ssus desventajas, C++ es tan interesante que permite programar en lenguaje de alto nivel y, en caso de necesitarlo, bajar incluso al bajo nivel incrustando lenguaje ansamblador.

Diez reglas de oro para un código de calidad.

Escribir código fuente de calidad es mucho más que conocer un lenguaje de programación. Es como escribir una buena novela: no es suficiente saber escribir bien, es también necesario tener grandes conocimientos de estilos literarios. PAra que el código fuente de un programa llegue a las cotas más altaas de calidad, es necesario cumplir varios requisitos que podemos resumirlos en las siguientes diez reglas de oro del código de calidad:

Regla 1: no duplicar.

No hay ninguna situación o contexto que justifique duplicidades de código fuente, absolutamente ninguna. Evidentemente (y esto es de primaria de programación) cualquier operación que se deba repetir en más de una ocasión debe estar contenida en un método aparte al que se llamará cada vez que sea necesaria su realización, aunque para ello sea necesario declararlo como un método estático para acceder a él desde varios puntos de la aplicación.

Sobra decir que el principal problema del código fuente duplicado es que si hay que realizar un cambio en él, debe ser neceario su cambio en todas y cada una de sus repeticiones, lo que aumenta el riesgo de errores y bugs que a la larga pueden ser muy costosos de solventar.

Regla 2: documentar.

Ya no me refiero a comentar líneas, práctica que a mi personalmente no me gusta mucho. Me refiero a la documentación XML del código fuente, que en la plataforma .NET nos permite un método estandarizado de documentación de los métodos, clases, etc. del código fuente.

La documentación, además de ser estandarizada según el sistema para .NET, debe ser sencilla y clara, orientada principalmente para que lo entienda cualquier otro programador además del autor. Hay que tener presente que cuando un proyecto queda "muerto" durante un tiempo, puede ser muy difícil el estudio del código fuente si no está correctamente documentado.

Regla 3: priorizar la herencia de clases.

La herencia es una de las principales características de la programación orientada a objetos, y es también un modo más de ahorro y simplificación de código fuente. Cualquier aplicación medianamente complicada que no haga uso de la herencia es que no está bien construida y caerá en duplicidades innecesarias. Para aplicar una buena estructura de herencia es necesario, antes de comenzar a escribir una sola línea de código, plantear correctamente el esquema de la aplicación e insertar la herencia allí donde sea necesaria.

Regla 4: revisión de código.

Cuántas veces hemos publicado una aplicación que hemos visto que aparentemente funciona correctamente y después hemos comprobado bugs no detectados en el proceso de prueba. Para evitarlo, además de un completo proceso de prueba, es necesario revisar el código profundamente, especialmente en aquellas áreas más susceptibles de errores. Es un proceso largo y tedioso, pero eliminará errores que a la larga pueden darnos muchos problemas.

Regla 5: un método - una acción.

No debes construir métodos que realicen más de una acción concreta. La definición de "acción concreta" serás tú el que la determine en consecuencia con las necesidades del proceso, pero básicamente queda claro que un método únicamente debe realizar una acción concreta. Esto nos repercutirá positivamente de dos maneras: métodos no excesivamente largos, y facilidad de reutilización.

Regla 6: código fácilmente entendible.

Es evidente, pero aun así, cuántas veces hemnos escrito código fuente excesivamente complicado porque la tarea a realizar también era excesivamente complicada. El objetivo es que, aunque la tarea a realizar sea muy compleja, el código sea lo más simplificado y sencillo de entender posible. De no lograrlo, debes estudiar la manera de simplificar ese código lo más posible, pues de lo contrario, a la larga, cualquier cambio en él será una tarea complicadísima.

Si para entender plenamente el funcionamiento de un método relativamente complicado debes emplear más de 5 ó 10 minutos, entonces es que ese método necesita simplificación y claridad.

Regla 7: piensa antes de escribir.

Como ya he dicho antes cuando me refería a la herencia. Es importante tener claro el esquema y la estructura de la aplicación. Es común en muchos desarrolladores comenzar a escribir código a o loco, y cuántas veces hemos acabado eliminando o modificando sustancialmente lo ya escrito en un principio... Piensa bien cómo hacer las cosas y luego escribe sobre seguro.

Regla 8: nombres con significación.

Los nombres de los atributos, propiedades, métodos, clases, etc. deben tener una significación clara respecto a su funcionalidad. Por ejemplo, si tenemos una propiedad llamada 'Connected' que evalúa el estado de conexión de la aplicación con un determinado dispositivo, este mismo nombre nos da una clara idea de su funcionalidad, y sería absurdo ponerle otro nombre como 'Conn', 'cnntd', 'DisCon', etc.

Regla 9: reutilización.

O dicho de otra manera, hacer uso de la no duplicación del código fuente. Cualquier aplicación medianamente complicada realizará unas determinadas acciones de forma repetitiva en muchas ocasiones. Para reutilizar ese código, debe estar escrito de forma genérica, es decir, que sea posible llamarlo desde donde sea necesario y que cumpla correctamente su función independientemente de donde sea llamado.

Regla 10: depuración.

Depura el código fuente una y otra vez, detenidamente, despacio, sin prisas, comprobando todas y cada una de las ramas de acción de la aplicación. Una parte del funcionamiento puede parecernos trivial y sencilla y solamente con escribirla parecemos estar seguros de su correcto funcionamiento, pero luego nos damos cuenta de un error absurdo que nos compromete cuando lo menos lo esperamos.

Revisa, revisa y vuelve a revisar. Y si tenemos alquien que pueda revisar la aplicación "desde fuera" mejor, pues será alguien no condicionado por el esquema mental del funcionamiento de ese código fuente y será más fácil encontrar bugs no detectados.