Tuesday, March 14, 2023

Get SQL Server Database Size, Location for all Databases

Here are the SQL Server queries to get all SQL Server database data file and log file Size, Location:

 SELECT DB_NAME(database_id) AS [Database Name],

       Name AS [Logical Name],
       Physical_Name AS [Physical Name],
       (size*8)/1024 AS [Size - MB]
 FROM sys.master_files WHERE database_id > 4


If you want to combine Data File & Log File Size:

SELECT DB_NAME(database_id) AS [Database Name],
       SUM((size*8)/1024) [Size - MB]
FROM sys.master_files
WHERE database_id > 4
group by DB_NAME(database_id)
order by DB_NAME(database_id)

This will give you all Databases attached to a specific instance, excluding SQL Server system Databases like Master, Model, etc. (So we’ve: WHERE database_id > 4)

Source: https://www.sharepointdiary.com/2013/03/get-sql-server-database-size-location.html

Tuesday, February 28, 2023

Eligiendo un camino: ¿Arquitecto de Software o Líder Técnico?

¿Cuál es la diferencia entre un Arquitecto de Software y un Líder Técnico?

La diferencia entre un arquitecto de software y un líder técnico puede variar según la organización, el proyecto y el contexto específico en el que se encuentren. Sin embargo, a grandes rasgos, se pueden identificar algunas diferencias clave:

  1. Enfoque: Un arquitecto de software se enfoca principalmente en la arquitectura y diseño de soluciones de software. Su objetivo es definir y garantizar la integridad, calidad y viabilidad técnica del sistema. Por otro lado, un líder técnico se enfoca en liderar y gestionar un equipo técnico, así como coordinar su trabajo con otros equipos y áreas de la organización.
  2. Responsabilidades: El arquitecto de software es responsable de diseñar y mantener la arquitectura de software, tomar decisiones técnicas clave, y garantizar la calidad y la escalabilidad del sistema. El líder técnico es responsable de liderar y motivar al equipo técnico, coordinar sus tareas, establecer metas y objetivos, y asegurarse de que se cumplan los plazos y presupuestos del proyecto.
  3. Conocimientos técnicos: Ambos roles requieren un conocimiento sólido de la tecnología y las herramientas utilizadas en el proyecto, pero un arquitecto de software se centra más en la comprensión de las necesidades técnicas del sistema, mientras que un líder técnico se enfoca en la gestión y liderazgo del equipo.
  4. Nivel de experiencia: En general, un arquitecto de software se considera un rol más especializado y senior, con experiencia en la arquitectura y diseño de sistemas complejos y en la toma de decisiones técnicas críticas. El líder técnico, aunque también es un rol senior, puede requerir menos experiencia técnica y enfocarse más en la gestión de equipos y proyectos.

En resumen, mientras que un arquitecto de software se enfoca en la arquitectura y diseño de soluciones de software, un líder técnico se enfoca en liderar y gestionar un equipo técnico, coordinando su trabajo y asegurándose de que se cumplan los objetivos del proyecto. Ambos roles son importantes para el éxito de un proyecto de software y a menudo trabajan juntos para lograr los objetivos técnicos y empresariales.

¿Puedo pasar de Desarrollador de Software a Líder Técnico o necesito pasar antes por el rol de Arquitecto de Software?

Es posible pasar de desarrollador de software a líder técnico sin necesidad de haber desempeñado previamente el rol de arquitecto de software. Sin embargo, hay algunas habilidades y conocimientos que son importantes para ser un buen líder técnico y que pueden ser desarrollados a través de la experiencia previa en el diseño y la arquitectura de software.

Algunas habilidades que son importantes para un líder técnico incluyen la capacidad de comunicarse eficazmente con el equipo de desarrollo y otros stakeholders, la capacidad de liderar y motivar a un equipo, la capacidad de tomar decisiones técnicas y la capacidad de resolver conflictos. También es importante tener una comprensión sólida de los principios y prácticas de la ingeniería de software, incluyendo la metodología de desarrollo de software, los patrones de diseño y las mejores prácticas de codificación.

Si bien la experiencia previa en arquitectura de software puede ser útil para desarrollar estas habilidades, no es un requisito previo para convertirse en líder técnico. En su lugar, puede ser útil buscar oportunidades para liderar pequeños equipos o proyectos dentro de su función de desarrollador de software actual, y buscar capacitación y orientación en habilidades de liderazgo y gestión de proyectos. También puede ser útil buscar mentores en su empresa o en la comunidad de desarrollo de software para obtener asesoramiento y orientación sobre cómo desarrollar sus habilidades de liderazgo técnico.

Material de lectura

Friday, February 17, 2023

The bearing of a child takes nine months, no matter how many women are assigned

La frase se refiere al hecho de que hay ciertas tareas que requieren un cierto tiempo para completarse, independientemente de cuántas personas estén trabajando en ellas. En este caso, la frase se refiere al embarazo y al parto: sin importar cuántas mujeres trabajen en un embarazo, el proceso de gestación de un bebé generalmente dura aproximadamente nueve meses.

La frase se puede interpretar en términos más amplios como un recordatorio de que algunas tareas simplemente no pueden acelerarse o dividirse en fragmentos más pequeños para que se completen más rápidamente. Algunas tareas requieren una cantidad específica de tiempo y esfuerzo para completarse, y no importa cuántas personas estén trabajando en ellas, esa cantidad de tiempo y esfuerzo no puede ser reducida. Por lo tanto, la frase sugiere que es importante tener una comprensión realista del tiempo y los recursos que se necesitan para realizar una tarea y no tratar de acelerarla o hacerla más rápida simplemente aumentando la cantidad de personas que trabajan en ella.


Wednesday, January 25, 2023

Recursos para aprender los fundamentos de Inteligencia Artificial (AI)

Introducción

Estos últimos días he estado jugando con ChatGPT (prototipo de chatbot de inteligencia artificial desarrollado por OpenAI). Realmente estoy impresionado con los resultados obtenidos hasta el momento. Lo he estado probando principalmente con temas relacionados al estudio y práctica del idioma inglés, y puedo decir que he encontrado un asistente con el cual progresaré más rápido en mi aprendizaje.

Todo esto ha despertado mi curiosidad en la Artificial intelligence (AI). Estoy motivado por entender sus fundamentos, sus casos de uso y sus consecuencias en nuestra sociedad. Siento que esta tecnología es un punto de inflexión que nos permitirá construir soluciones innovadoras en diferentes industrias. Realmente estamos viviendo un momento tecnológico interesante. 


El propósito de post es dejar una colección de enlaces a distintos recursos de aprendizajes sobre AI. Esto podría ser un buen punto inicio para cualquiera que quiera iniciarse en este campo específico que forma parte de las tecnologías que impulsan la transformación digital. 

Y ya que hablamos de ChatGPT, me animé a pedir una mano generando un plan de estudio de Inteligencia Artifificial para personas sin experiencias. He aquí el resultado. 

Un programa de estudio de Inteligencia Artificial para personas sin experiencia en programación podría incluir los siguientes temas:
    1. Introducción a la Inteligencia Artificial: Este módulo proporcionaría una comprensión general de lo que es la IA, sus aplicaciones y los desafíos actuales en el campo.
    2. Aprendizaje automático: Este módulo presentaría los conceptos básicos del aprendizaje automático, como los diferentes tipos de algoritmos y cómo se utilizan para resolver problemas.
    3. Procesamiento del lenguaje natural: Este módulo se enfocaría en cómo las computadoras pueden comprender y generar texto humano, incluyendo técnicas como el análisis de sentimientos y la traducción automática.
    4. Visión por computadora: Este módulo se centraría en cómo las computadoras pueden interpretar imágenes y videos, incluyendo técnicas como el aprendizaje profundo y el análisis de objetos.
    5. Aplicaciones de IA: Este módulo se centraría en cómo la IA se utiliza en diferentes campos, como la salud, la finanzas, la robótica y el transporte.
    6. Proyectos prácticos: En esta parte del curso, los estudiantes tendrían la oportunidad de aplicar lo que han aprendido mediante proyectos prácticos y tal vez utilizando herramientas de inteligencia artificial de código abierto para no programadores.
    7. Ética e impacto de la IA: Este módulo se centraría en los desafíos éticos y sociales que surgen con el uso cada vez mayor de la IA, como la privacidad y la seguridad, así como el impacto económico y laboral.
Es importante también mencionar que este curso debería estar diseñado para ser accesible para personas no programadores, utilizando un lenguaje sencillo y ejemplos prácticos para ilustrar los conceptos.