Cómo codificar un algoritmo satelital y cocinar paella desde cero

Hola lector La versión actualizada de este artículo (y todos mis artículos) está disponible de forma gratuita en mi sitio web: victoria.dev - ¡Gracias por leer!

¿Qué pasaría si te dijera que al final de este artículo, serías capaz de calcular el período orbital de los satélites alrededor de la Tierra usando sus altitudes promedio y ... Ya te desconectaste, verdad?

Bien, ¿qué tal esto: te voy a enseñar cómo hacer paella!

Verdadero hecho: es mucho más probable que las personas acepten la complejidad si se trata de la promesa de la comida.

Y aprenderá cómo escribir una función que haga las cosas que mencioné anteriormente, tal como lo hice para este desafío freeCodeCamp.

Prometo que hay una lección moral general que te beneficiará todos los días por el resto de tu vida. O, al menos, darte de comer por una noche. Empecemos.

Lo único que sé sobre la paella es que es un emoticón.

A menos que esté leyendo esto en un teléfono Samsung, en cuyo caso está viendo un hotpot coreano.

Una de mis cosas favoritas sobre vivir en el mundo hoy es que está muy bien saber casi nada sobre algo. Hace cien años, podría haber pasado toda su vida sin saber nada más sobre la paella, aparte de eso, es un emoticón. * ¿Pero hoy? Simplemente puedes buscarlo.

*Fue un chiste.

Como con todas las cosas en la vida, cuando no estamos seguros, recurrimos a Internet. En este caso, la entrada para paella en Wikipedia, que dice:

“Paella ... es un plato de arroz valenciano. La paella tiene raíces antiguas, pero su forma moderna se originó a mediados del siglo XIX cerca de la laguna de la Albufera, en la costa este de España, adyacente a la ciudad de Valencia. Muchos no españoles ven la paella como el plato nacional de España, pero la mayoría de los españoles considera que es un plato regional valenciano. Los valencianos, a su vez, consideran la paella como uno de sus símbolos identificativos.
Los tipos de paella incluyen paella valenciana, paella vegetariana / vegana (español: paella de verduras), paella de mariscos (español: paella de marisco) y paella mixta (español: paella mixta), entre muchos otros. ”- Wikipedia

En este punto, probablemente estés lleno de preguntas. ¿Necesito hablar con un valenciano? ¿Debo tomar un curso en línea sobre la historia de España? ¿Qué tipo de paella debo intentar hacer? ¿Cuál es la opinión común de los chefs modernos cuando se trata de tipos de paella?

Si se propone responder a todas estas preguntas, una cosa es segura: nunca terminará haciendo paella. Pasarás horas y horas escribiendo preguntas en los motores de búsqueda, y años después te despertarás con un Máster en Cocina Valenciana.

El método de la "pregunta más importante"

Cuando me hablo en voz alta en público (¿no todos?) Me refiero a esto como "MIQ" (rima con "Nick"). También imagino que MIQ es un chip de tortilla antropomorfizado bastante crujiente y bastante adorable. No podría decirte por qué.

MIQ balancea su crujiente cuerpo triangular para señalarme en la dirección correcta. La dirección correcta siempre toma la forma de la pregunta más importante que debe hacerse en cualquier etapa de la resolución de problemas. La primera pregunta más importante es siempre esta:

¿Cuál es el alcance del objetivo que quiero lograr?

Bueno, quieres hacer paella.

El próximo MIQ se convierte en: ¿cuánto necesito saber realmente sobre la paella para comenzar a prepararla?

Ya has escuchado este consejo antes: cualquier gran problema se puede dividir en múltiples, pero más manejables, problemas de tamaño de bocado. En esta pequeña constelación de problemas de tamaño de bocado, solo hay uno que necesita resolver para llegar a una solución completa.

En el caso de hacer paella, necesitamos una receta. Ese es un problema del tamaño de un bocado que un motor de búsqueda puede resolver por nosotros:

Receta simple de paella
En un tazón mediano, mezcle 2 cucharadas de aceite de oliva, pimentón, orégano y sal y pimienta. Agregue los trozos de pollo para cubrir. Cubra y refrigere.
Caliente 2 cucharadas de aceite de oliva en una sartén grande o paellera a fuego medio. Agregue ajo, hojuelas de pimiento rojo y arroz. Cocine, revolviendo, para cubrir el arroz con aceite, aproximadamente 3 minutos. Agregue hilos de azafrán, laurel, perejil, caldo de pollo y ralladura de limón. Llevar a ebullición, tapar y reducir el fuego a medio bajo. Cocine a fuego lento 20 minutos.
Mientras tanto, caliente 2 cucharadas de aceite de oliva en una sartén separada a fuego medio. Agregue el pollo marinado y la cebolla; cocine 5 minutos. Agregue el pimiento y la salchicha; cocine 5 minutos. Agregue los camarones; cocine, girando los camarones, hasta que ambos lados estén rosados.
Extienda la mezcla de arroz en una bandeja para servir. Cubra con la mezcla de carne y mariscos. (allrecipes.com)

¡Y voilá! Lo creas o no, ya estamos en la mayor parte del camino.

Tener un conjunto de instrucciones paso a paso que sean fáciles de entender es realmente la mayor parte del trabajo. Todo lo que queda es seguir los movimientos de reunir los ingredientes y luego hacer paella. A partir de este momento, sus MIQ pueden volverse menos y más distantes, y pueden disminuir lentamente en importancia en relación con el problema general. (¿Dónde compro pimentón? ¿Cómo sé cuándo se cocina la salchicha? ¿Cómo configuro el temporizador en mi teléfono durante 20 minutos? ¿Cómo dejo de pensar en este delicioso olor? ¿Qué filtro de Instagram captura mejor el éxtasis de esta paella?) ¿ahora?)

La respuesta a esa última es

Todavía no sé nada sobre el cálculo de los períodos orbitales de los satélites.

Bueno. Examinemos el problema:

Devuelve una nueva matriz que transforma la altitud media del elemento en sus períodos orbitales.
La matriz contendrá objetos en el formato {nombre: ‘nombre’, avgAlt: avgAlt}.
Puedes leer sobre los períodos orbitales en wikipedia.
Los valores deben redondearse al número entero más cercano. El cuerpo en órbita es la Tierra.
El radio de la tierra es 6367.4447 kilómetros, y el valor de la masa gravitacional (GM) de la tierra es 398600.4418 km3s-2.
orbitalPeriod ([{name: "sputnik", avgAlt: 35873.5553}]) debe devolver [{name: "sputnik", orbitalPeriod: 86400}].

Bueno, resulta que, para calcular el período orbital de los satélites, también necesitamos una receta. Increíble, las cosas que puedes encontrar en Internet en estos días.

Cortesía de dummies.com (sí! #Noshame), aquí está nuestra receta:

Es un poco lindo, en cierto modo.

Eso puede parecer bastante complicado. Pero como ya hemos visto, solo necesitamos responder el próximo MIQ: ¿cuánto necesito saber sobre esta fórmula para comenzar a usarla?

En el caso de este desafío, no demasiado. Ya hemos recibido earthRadius, y avgAlt es parte de nuestro objeto de argumentos. Juntos, forman el radio, r. Con un par de consultas de búsqueda y algunos viajes mentales en el tiempo a su clase de matemáticas de primaria, podemos describir esta fórmula en un poco de inglés:

T, el período orbital, es igual a 2 multiplicado por Pi, a su vez multiplicado por la raíz cuadrada del radio, r al cubo, dividido por la masa gravitacional, GM.

JavaScript tiene una propiedad Math.PI, así como la función Math.sqrt () y la función Math.pow (). Utilizando los combinados con un cálculo simple, podemos representar esta ecuación en una sola línea asignada a una variable:

var orbitalPeriod = 2 * Math.PI * (Math.sqrt (Math.pow ((earthRadius + avgAlt), 3) / GM));

De adentro hacia afuera:

  1. Agregue earthRadius y avgAlt
  2. Cubica el resultado del paso 1
  3. Divide el resultado del paso 2 por GM
  4. Saca la raíz cuadrada del resultado del paso 3
  5. Multiplica 2 veces Pi por el resultado del paso 4
  6. Asigne el valor devuelto a orbitalPeriod

Lo creas o no, ya estamos casi todo el camino allí.

El próximo MIQ para este desafío es tomar el objeto de argumentos, extraer la información que necesitamos y devolver el resultado de nuestra ecuación en el formato requerido. Hay varias formas de hacer esto, pero estoy contento con un ciclo for simple:

función orbitalPeriod (arr) {
   var resultArr = [];
   for (tetera var = 0; tetera 
   return resultArr;
}

Si necesita una actualización sobre la iteración a través de las matrices, eche un vistazo a mi artículo sobre iteración, que incluye matrices de desayuno. (5 minutos de lectura)

No mire ahora, pero acaba de obtener la capacidad de calcular el período orbital de los satélites. Incluso podrías hacerlo mientras preparas paella, si quisieras. Seriamente. Ponlo en tu currículum.

Tl; dr: la lección moral general

Ya sea para cocinar, codificar o cualquier otra cosa, los problemas pueden parecer al principio confusos, insuperables o francamente aburridos. Si se enfrenta a tal desafío, solo recuerde: son mucho más digeribles con un lado de chips MIQ del tamaño de un bocado.

¡Gracias por leer!

Si te gustó este artículo, ¡me encantaría saberlo! Deja una respuesta o twittea sobre eso. Si quieres que otros también lean esto, ¡haz clic para aplaudir!

Puede encontrar este y otros artículos que explican los conceptos de codificación con alimentos en mi blog.