CS50's Web Programming with Python and JavaScript

Recientemente he comenzado a hacer un curso sobre desarrollo web con Python y JavaScript en la plataforma EDX. Reconozco que inicialmente, además de la temática, me llamó mucho la atención que fuese impartido por la univerdiad de Harvard. Y encima es totalmente gratis.

Después de unas cuantas clases, sólo puede decir es bastante completo y muy recomendable. Vale tanto para hacer una instrodución rápida al tema, como para repasar y actualizar conceptos. Hace un recorrido completo de lo que se suele requerir hoy en día a un perfil de desarrollador fullstack. Hay tecnologías de frontend (html, cs, js), tecnologías de backend (python, django, sql) y herramientas de gestión del proyecto (git, integración y entrega continua). Obviamente en cada una de la partes hay muchas más opciones. Pero en mi opinión, aunque te conviertas en un especialista en una de ellas, creo que está bien hacer un recorrido completo para conocer al menos una opción de cada, y ver como encajan todas las piezas entre si armando una solución completa.

Mi intención es compartir mis notas clase a clase.

Indice.

  • HTML, CSS.
  • Git.
  • Python
  • Django
  • SQL, Models, and Migrations.
  • JavaScript.
  • User Interfaces.
  • Testing, CI/CD.
  • Scalability and Security

Estará disponible durante todo el 2022. Tiene la opción de obtener un certificado de realización pagando un extra (Entre $160 y $200). No hay opción a examen.

Aunque hace falta registrarse e iniciar sesión para ver las clases, también dan la posibilidad de bajarse los videos directamente en formato mp4 subtítulos y la transcripción completa de la clase. Así que no debería echarte para atrás empezar el curso muy cerca del final de año. Si no te da tiempo a terminarlo en la web, puedes descargar todo el contenido y continuar en local.

Dejo aquí el enlace la página principal del curso. Espero que te sirva de ayuda.

¡Vamos allá!

Raspberry Pi: Instalación y primeros pasos.

Con esta guía pretendo facilitar la puesta en marcha de una Raspberry Pi. El sistema operativo elegido es una Raspbian (Raspberry + Debian).

El primer paso será descargar la imagen la última versión disponible desde la página oficial del proyecto.

https://www.raspberrypi.org/downloads/raspberry-pi-os/

Ahí tenemos disponibles varias versiones
  • Raspberry Pi OS (32-bit) with desktop and recommended software
  • Raspberry Pi OS (32-bit) with desktop
  • Raspberry Pi OS (32-bit) Lite

La base es la misma, lo que cambia es la selección de software que se instala de manera predeterminada. Para tener un mayor control sobre sobre nuestra instalación, recomiendo utilizar siempre la versión lite y posteriormente ir añadiendo los problemas que se necesiten de manera manual.

Una vez concluida la descarga, debemos descomprimir el contenido para obtener el archivo con la extensión nombre_archivo.img, Este archivo contiene todos los datos que se deben copiar tal cual a nuestra tarjeta.

Conviente aclarar que un archivo .img es un volcado completo de todos los datos a nivel físico que contiene el dispositivo que se copia. No es una simple copia lógica de un grupo de archivos. Es un copia exacto bit a bit que incluye todos los sectores del dispositivo. Incluyendo, además de los archivos, toda la información sobre particiones y formato de las mismas.

Esta es la explicación de por qué no nos vale abrir el archivo .img y copiar toda la información que contiene dentro de la tarjeta SD formateada previamente.

Para hacer un volcado de una imagen a un dispositivo necesitamos un problema especial, como decía antes, no nos vale seleccionar las carpetas en una ventana y arrastralas a la tarjeta. Tenemos varias opciones. La recomendada en la web de raspberry es el rpi-imager. Disponible en el siguiente enlace.

https://www.raspberrypi.org/downloads/

Con versiones para Windows, MacOS y Ubuntu.

Pero una vez más, me salgo de la recomendación y uso la herramienta dd. Disponible en todos los linux y muy problablemente, lo que use el rpi-imager por debajo de su interfaz gráfica.

La sintaxis es muy sencilla. (Necesita un usuario privilegiado)

# dd if=imagen of=dispositivo [bs=4M conv=sync]

* Nota: los parámetros entre son opcionales

Explicación de los parámetros:

if = la ruta del archivo .img descargado anteriormente.

of = dispositivo de destino

bs = tamaño de bloque (block size). Tamaño de datos que se copia de una vez. Influye en el rendimiento de la copia. 4M es un buen valor de referencia.

conv = Con la opción sync, forzamos un a sincronización del dispositivo externo, En este caso la tarjeta SD, para que no quede nada pendiente de escribir cuando extraemos la tarjeta del ordenador. Algo parecido a la extracción segura de Windows. En Linux se puede hacer en cualquier momento con el comando sync.

 En un ejemplo real, el comando quedaría tal que así:

# dd if=raspios_buster.img of=/dev/sde bs=4M conv=sync

* Nota: una manera fácil de ver a que dispositivo de nuestro sistema corresponde la tarjeta SD, es utilizar el comando dmesg. Si conectamos la tarjeta y luego lanzamos el comando dmesg, veremos en la ultimas líneas un aviso de que dispositivo le ha asignado el sistema a la tarjeta. En la mayoría de los casos debería parecerse a /dev/sdX . Reemplazando la X por una letra que normalmente se encontrará entre a la a y la e. (si tu equipo no tiene un desmesurado de discos duros). Es importante tener este dado claro, o podríamos peder por completo los datos almacenados en otro dispositivo de nuestro sistema.

Una vez terminada la copia, no tenemos más que retirar la tarjeta del ordenador, insertar en la Raspberry pi y encender la alimentación.

Extras:

Activar el servicio SSH desde el primero momento.

Si no tenemos pensando conectar un monitor y un teclado a nuestra Raspberry, conviente tener una manera de acceder a ella desde el primero momento. Para eso necesitaremos activar el servicio de SSH. 

Es muy sencillo, basta con añadir un archivo SSH en la partición boot para que arranque el servicio de ssh al inicio. Puedes usar el comando touch. Con esto el servicio se arrancará automáticamente desde la primera vez que enciendas el sistema.

Además necesitar tener un usuario y contraseña. El usuario y clave por defecto que trae raspbian es:

usuario: pi
password: raspberry

Obviamente, por tema de seguridad, conviente desactivar este usuario cuando antes.

Antes de hacer eso, deberías crear tu usuario personalizado con adduser. Y añadir ese usuario a los grupos users, sudo y ssh, para poder realizar todas las tareas de administración.

Nada más. Espero que esta guía te haya resultado de ayuda. Agradeceré cualquier comentario. Saludos.

Gestión de empresas informaticas - Capítulo 1: Empresa y empresario.

--- 1. Introducción ---
Economía de la empresa, del inglés ‘business administration’.
Economía de la empresa, disciplina científica sobre la administración y dirección de los negocios empresariales.
El objeto material de estudio de esta disciplina es la unidad económica de producción: la empresa.

--- 2. La empresa como organización ---

Una organización es un conjunto de personas y elementos materiales dirigidos, bajo el principio de la división del trabajo, con el fin de conseguir objetivos que no se podrían alcanzar mediante el esfuerzo individual aislado.

Cuatro elementos:
    Un objetivo. Razón de la existencia de la organización. Mantiene unidas a las personas.
    Elementos personales y materiales.
    La dirección. Dirigen a los demás a un objetivo común. Jerarquía.
    La división del trabajo. Trabajos complejos se dividen en tareas más simples. Principio de especialización.

Características de toda empresa:
    conjunto de factores
    fines
    coordinación
    sistema

--- 3. La empresa como sistema ---

La empresa es un sistema finalista.
    sistema, conjunto de elementos interrelacionados entre sí.
    sistema finalista, permite la elección de medios, o de fines o de ambos.

Características de la empresa como sistema:
    es un sistema abierto. Es decir, se interrelaciona con su entorno.
    produce sinergia.
    es un sistema global. Cualquier intervención en un elemento o subsistema repercute en el resto.
    es un sistema autoregulado. homeostasis.

Principales subsistemas:


--- 4. Clases de empresas informáticas ---

Clasificaciones, según su:
    tamaño. número de trabajadores, volumen de negocio o balance general.
    actividad. sector primario, secundario o industrial, ó terciario o de servicios.
    ámbito de su actividad. local, provincial, regional, nacional e internacional.
    titularidad de su propiedad. pública, privada o mixta. cooperativa.
    forma jurídica. individual. sociedad anónima. sociedad limitada.

--- 5. El empresario ---

El empresario es quien arriesga su capital.
Teoría del empresario innovador. Aplicar invenciones tecnológicas a usos comerciales o industriales.
Teoría del empresario de riesgo. La asunción de riesgos es la principal función del empresario.

--- 6. La empresa y el sistema económico ---

-- Los sistemas económicos y <<la mano invisible del mercado>>. --

Todos los sistemas económicos se encuentran entre estos dos extremos:
    sistema de libre mercado. todas las empresas se someten a la competencia. toman sus propias decisiones y tienen sus propios objetivos.
    sistema de economía centralizada. todas las empresas se encuentran sometidas a la autoridad del estado. el estado interviene en las decisiones y las empresas tiene como objetivo cumplir con el plan previsto por las autoridades.

-- La <<mano invisible de la empresa>>. --

Teoría de los costes de transacción. La intervención de una organización empresarial facilita los intercambios, ordena las relaciones, reduce la incertidumbre y minimiza los costes.

-- Los derechos individuales y la intervención de los poderes públicos. --

Objetivos de la intervención de los entes públicos en la economía:
    Proteger los derechos y libertades de las personas.
    Producir bienes y servicios de interés público.
    Regular las actividades económica. Defensa de la competencia. Actividades de la entidades financieras. Salario mínimo.
    Promover la estabilidad y el crecimiento económico.
    
    Corto plazo: estabilidad de precios. Pleno empleo. Equilibrio comercio exterior.
    Largo plazo: mejora en la distribución de la renta. Crecimiento económico y desarrollo.

    Ofrecer ayudas directas a personas que lo necesitan por razones de salud, edad, desempleo, ...
    Estas actividades se financian a través de los impuestos.

--- 7. La responsabilidad de la empresa y su organización social. ---

-- La responsabilidad social de la empresa. --

Las decisiones empresariales no sólo deben considerar los efectos económicos, si no también los efectos sociales.
Costes sociales, pérdidas directas o indirectas soportadas por terceros, con resultado de las actividades de la empresa. Gobiernos introducen normas para paliar estos costes sociales.

Temas fundamentales de carácter social:
    protección de los trabajadores.
    protección de los consumidores.
    participación de los trabajadores.
    medio ambiente.
    conservación de los recursos no renovables.
    Ética empresarial.

-- La orientación social de la empresa --

Dos posiciones extremas:
    lo único exigible a la empresa es rentabilidad y beneficios.
    la principal responsabilidad de la empresa es contribuir al bienestar social.

--- 8. Teorías sobre la empresa ---

-- La teoría neoclásica. --

La empresa es un mecanismo que se sitúa entre el mercado de factores (bienes iniciales) y el mercado de productos (bienes finales). Su actuación consiste en combinar los factores para transformarlos en productos.
Contempla la empresa como una “caja negra”.

-- La teoría de la agencia. --

La empresa es un conjunto de relaciones de agencia.
La relación de agencia es un contrato en el cual una o más personas (a quienes se denomina principal) recurren al servicio de otra u otras (el agente) para que cumpla una tarea en su nombre, lo que implica delegar autoridad.

Típicas relación principal-agente:  
    accionistas-directivos.
    empleador-empleado.
    regulador-regulado.
    asegurador-asegurado.

Problemas en las relaciones:
    divergencia de intereses entre principal y agente.
    incertidumbre en la actuación del agente. impide establecer buenos contratos.
    Los agentes tratarán de aprovechar los fallos que tengan los contratos con el principal, por lo cual aparecen los costes de agencia.

Tipos de costes de agencia:
    costes explícitos de vigilancia y control del principal al agente.
    costes explícitos de atención del agente al principal para que este mantenga su confianza.
    costes de oportunidad provocados por las divergencias de interés, entre el principal y agente.

-- La teoría de los costes de transacción --

Plantea la disyuntiva entre la asignación de recursos vía mercado y la realizada por la empresa.

...

-- La teoría de los derechos de propiedad --

Considera a la empresa como un conjunto de contratos bilaterales, y no de relaciones de autoridad.
La empresa se concibe como una “caja transparente”.

-- La teoría de los recursos y capacidades --

Considera a la empresa como un conjunto de recursos y capacidades, que no se pueden comprar y vender libremente en el mercado.
Recursos, stock de factores productivos.
Capacidad organizativa, habilidad de una empresa para llevar a cabo un actividad concreta en grupo.
Rutina organizativa:
    pauta de actuación regulares.
    aprendizaje colectivo de la organización.

UNED - Gestión de empresas informáticas

GESTIÓN DE EMPRESAS INFORMÁTICAS
Parte I - La empresa y la función directiva
Capítulo 1 - Empresa y empresario
Capítulo 2 - El proceso de dirección de la empresa
Capítulo 3 - La dirección de los recursos humanos
Capítulo 4 - Análisis de problemas y toma de decisiones
Capítulo 5 - Técnicas instrumentales de planificación, programación y control.

Parte II – Finanzas
Capítulo 6 - Elementos financieros
Capítulo 7 - Las inversiones y su selección. La rentabilidad de las inversiones
Capítulo 8 - Las fuentes de financiación y su selección. El coste del capital

Parte III - Producción
Capítulo 9 - Elementos productivos. El proceso de producción y el factor humano
Capítulo 10 - La capacidad de producción
Capítulo 11 - La logística

Parte IV – Marketing
Capítulo 12 - Elementos de marketing. El mercado, la demanda y el presupuesto mercadotécnico
Capítulo 13 - Investigación de mercados, segmentación y experimentación comercial
Capítulo 14 - Las variables del marketing