Tutoriales

Entrevista con el creador de curls y desarrollador de software Daniel Stenberg


miIncluso si no usa el comando curl a diario, es muy probable que siga usando curl y no lo sepa. IoT y muchos otros servicios en Internet dependen de libcurl para las operaciones de red. Daniel Stenberg es un desarrollador de software sueco, campeón del Premio Polhem 2017, en cURL. Recientemente hice una rápida sesión de preguntas y respuestas con Daniel sobre cómo iniciar el esquema curl y su flujo de trabajo diario.


¿Quien eres y que haces?

Soy Daniel Stenberg. Desarrollador de software que vive y trabaja en las aledaños de Estocolmo, Suecia. La clan podría reconocerme principalmente como el fundador y desarrollador principal del esquema curl. El esquema de código amplio que comencé que crea una utensilio de segmento de comandos y una biblioteca para realizar transferencias de Internet del costado del cliente. Incluso si, por supuesto, asimismo he participado en muchos otros proyectos de código amplio y he hecho cosas como participar en el IETF para producir especificaciones de protocolo de Internet.

¿Cómo se inició en el avance de software?

En la primera fracción de la plazo de 1980, cuando estaba en mi adolescencia, algunos de mis compañeros de clase y amigos comenzaron con las computadoras y de inmediato me sentí intrigado e interesado. Podríamos sobrevenir horas ingresando líneas de DATOS de las primeras revistas de computación de la época para que apareciera un pequeño diversión tonto o poco. Tenía 64 primaveras de Commodore y, en la primavera de 1985, finalmente pude comprar el mío próximo con mi hermano pequeño, Björn. Inmediatamente aprendimos Basic en la cosa y luego de un tiempo nos sumergimos en la programación en ensamblador y aprendimos a escribir demostraciones y juegos y positivamente exprimir todo lo posible de la pequeña cosa (google «demostraciones de Horizon C64»). Desde esa antigüedad he disfrutado del avance de software.

¿Por qué eligió un maniquí de código amplio para curl?

Nunca hubo ninguna alternativa o duda en mi mente de que ya sería de código amplio cuando comencé a trabajar en el código en los proyectos que usaban otros nombres antaño de que se convirtieran en curl. El término «código amplio» no se acuñó hasta principios de 1998, ajustado antaño del primer emanación de curl. Ayer de eso era solo … código.

En ese momento, ya me había impresionado durante varios la cantidad de código habitable gratis, ya había trabajado un poco en el código amplio y quería formar parte de la comunidad formidable de personas que contribuyen a la riqueza de los disponibles gratis. software. Siquiera tenía ninguna duda en mi comienzo de que para tener éxito en hacer un buen esquema de software a partir de un esquema de hobby hecho solo por mí, tendría que fugarse para que otros pudieran ayudar. Para que se ejecute en plataformas a las que no tengo camino. Para probarlo en entornos a los que no puedo resistir.

Luego de todo, era solo una pequeña utensilio de transferencia de Internet. Nadie singular o particularmente progresista …

¿Puede compartir algún circunstancia interesante y menos conocido sobre el esquema curl?

Mucha clan piensa en el esquema curl como «la utensilio de segmento de comando» o tal vez incluso como «la utensilio de segmento de comando http» y creo que eso lleva a preguntas sobre cómo curl puede tener 170.000 líneas de código o cómo aún podemos corregir errores. diariamente en el esquema luego de 23 primaveras. La verdad es, por supuesto, que la utensilio de segmento de comandos curl funciona con la biblioteca de transferencia libcurl, que admite 26 protocolos de transporte diferentes, se ha ejecutado en 86 sistemas operativos diferentes en 22 arquitecturas de CPU diferentes y se puede construir para usar 14 bibliotecas TLS diferentes, etc. Tiene una API versátil y potente y se ha instalado en diez mil millones de instalaciones en todo el mundo. Y todos los protocolos evolucionan todo el tiempo con nuevas versiones y nuevas prácticas, y hacer transferencias de red a través de Internet significa comunicarse con muchas implementaciones de servidores extrañas en el otro extremo, ¡y curl debe funcionar admisiblemente con todos y con cualquiera de ellos!

La relativa simplicidad de la utensilio de segmento de comandos y el hecho de que no rompemos el comportamiento ayudan a dar a los usuarios la impresión de que curl funciona de la misma guisa hoy que hace diez primaveras, porque en muchos sentidos lo hace. Las líneas de comando que podía ejecutar hace diez o quince primaveras ciertamente todavía funcionan con curl. No significa que no hayamos reescrito casi todo internamente mientras tanto para asegurarnos de que pudiera hacerlo y seguir funcionando con la forma moderna de hacer las cosas de Internet.

¿Cómo se ve un «día en la vida» cuando ejecuta un esquema crítico como curl?

Desde 2019 trabajo para wolfSSL. En wolfSSL ofrecemos soporte comercial de curl a empresas. Esto significa que cuando tengo clientes con deposición o proyectos pagados, paso parte de mi día en ellos para asegurarme de que estén contentos. Pero siempre me aseguro de poder ocuparme de los problemas de soporte más urgentes. Avalar a los clientes me permite trabajar en rizos todo el día, para beneficio de todos.

Empiezo mi día de trabajo aproximadamente de las 8 de la mañana, luego del desayuno y luego de ocurrir tumbado a los niños a sus tareas escolares (que, por supuesto, por último ha sido principalmente desde casa). Respondo a los correos electrónicos de curl, respondo preguntas de soporte de curl, me ocupo de los problemas de curl, reviso las solicitudes de extirpación y los cambios propuestos, y trabajo en nuevas funciones y soluciono errores de curl. Vivo en curl / curl en GitHub, busco y edito mucho código curl con Emacs.

Trabajo desde casa a tiempo completo desde hace muchos primaveras y no tengo ningún compañero cerca físicamente (soy el único empleado sueco de wolfSSL), por lo que mis interacciones sociales se realizan principalmente en Slack, Twitter, listas de correo y en el IRC #curl. canal. Y la videoconferencia ocasional con clientes o compañeros de equipo de wolfSSL.

Por la confusión, cuando el resto de mi grupo se acuesta, dedico un par de horas más al avance de los rizos. Es valentísimo, ya que algunas cosas nuevas a menudo han aterrizado mientras tanto y los trabajos de CI para mis solicitudes de extirpación han tenido tiempo de producir algunos comentarios para reaccionar y dar otro viraje.

No todo lo que hago está relacionado con el rizo, casi todo está al menos relacionado con el rizo de una forma u otra.

Describe la configuración del hardware y software de tu computadora. ¿Qué hardware usas? ¿Y qué distribución de software / Linux (Unix) usas a diario?


Mi máquina de escritorio de avance principal y más confiable para mi rotación diaria es una instalación Debian Linux (sid / inestable) y pantallas duales de 27 ”4K. Ejecuto KDE / plasma y pasé mucho tiempo en Emacs, terminales y gdb. curl sigue siendo un esquema conveniente somero en términos de volúmenes de código fuente, por lo que mis tiempos de compilación y reconstrucción son cortos, aunque mi máquina ya es conveniente antigua. Un core-i7 con 8 núcleos de varios primaveras a espaldas con 32 GB de RAM. Luego de la configuración, la construcción de rizos desde la precisión toma menos de 20 segundos. Una invocación típica del script de configuración de curl me lleva menos de 30 segundos. Aunque, por supuesto, hago ambas cosas con conveniente frecuencia.

Por otra parte, tengo una «computadora portátil para videoconferencias» (que funciona con Windows), una «computadora portátil para viajes / conferencias» (Debian de nuevo) y una mac mini para cuando no puedo evitar depurar problemas de macOS.

Tengo mi casa conectada con fibra y conexión de 1000/1000 mbit.

¿Con qué aplicaciones / software / herramientas de código amplio no puede estar?

Emacs y gdb, supongo. Emacs porque ya lo aprendí en 1991 en mi primer trabajo en IBM y lo he usado a diario durante aproximadamente tres décadas. gdb porque no hay carencia como eso y no puedo olvidar que lldb tenía que no ser compatible con gdb en sus comandos.

Pero en serio. He vivido varios cambios importantes en la edificación de las computadoras en mi vida y, siempre que pueda desarrollar software, soy bueno y siempre puedo adaptarme a nuevas herramientas y formas cuando sea necesario.

¿Cuál es el mejor consejo que ha recibido?

Sinceramente, no puedo decirlo. Ojalá pudiera. Creo que, en militar, mi forma de hacer las cosas está guiada por lo que veo que los proyectos exitosos hacen y con lo que tienen éxito y lo que leo y escucho que los líderes exitosos y los desarrolladores de código amplio comparten con el mundo, como genios colectivos en punto de individuales, pero puedo ‘ t extraer o identificar cualquier consejo independiente o citable que se me haya quedado aguafuerte.

¿Qué consejo le daría a determinado que comienza de cero en el mundo del avance de software de código amplio?

Averigua qué es divertido, hazlo y continúa haciéndolo.

Tiene que ser divertido para afrontar mejor los desafíos y obstáculos en el camino y encontrar la motivación para medrar montañas que al principio pueden parecer demasiado empinadas. Tienes que hacerlo positivamente y no esperar o simplemente pensar en ello como un desafío teórico porque nunca volverá a ser lo mismo. Y no debe pensar que cualquier cosa que haga tendrá una paga instantánea o una historia de éxito. Es posible que deba seguir haciendo esas cosas durante mucho tiempo antaño de que otros vean su magnitud.

Mientras codifica:

  1. ¿Escuchas música de fondo?
    Hago. La música me funciona muy admisiblemente para ayudarme a aislarme del resto del mundo y crear una buena burbuja. Me ayuda a concentrarme en lo que leo y en lo que trabajo y a excluirme del resto del mundo y sus alrededores. Si admisiblemente no estoy solo en la casa, uso buenos auriculares con abolición de ruido.
  2. ¿El mejor momento para escribir código para ti? ¿De día o de confusión?
    No creo que me coste. Si solo tengo un objetivo o una labor claros, puedo enfocarme con láser y superimpulsarme sin importar la hora del día.
  3. ¿Té o café?
    Café. Infausto sin azúcar.
  4. IDE / editor de texto?
    Emacs
  5. ¿Consejo de concha predilecto?
    ¡Mi mejor consejo de shell es mostrar la rama git coetáneo en el indicador de shell!
    Asimismo noté que estaba construyendo curl con tanta frecuencia en mi terminal que terminé creando un mote para ‘B‘que corre «hacer -sj7”En mi directorio curl. ¡Me ahorra muchas pulsaciones de teclas todos los días! (y antaño de que determinado pregunte, uso -j7 para administrar un núcleo, que he notado que ayuda cuando, por ejemplo, hago transmisión en vivo mientras reconstruyo curl)

¿Qué haces cuando no estás pirateando curl?

Me encanta sobrevenir tiempo con mi grupo (esposa y dos hijos), por ejemplo, ir a esquiar en invierno. Asimismo disfruto jugando al floorball, que es mi actividad deportiva recreativa preferida que hago con regularidad o en la fracción más cálida del año me gusta el kayak.

Nota del editor: Puedes seguir a Daniel en Gorjeo/ página de inicio para las aventuras diarias del desarrollador de software de código amplio. Esta entrevista se realizó el 19 de marzo de 2021.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba