Tutoriales

Entrevista con Abhinav Upadhyay, desarrollador de NetBSD y FOSS

Abhinav Upadhyay es un desarrollador de software indio, colaborador del esquema NetBSD y trabaja con el apasionante campo del enseñanza forzoso (ML). Recientemente hice una rápida Q y A con Abhinav sobre su delirio que le cambió la vida con NetBSD, comenzando con la comunidad ML y FLOSS, y su flujo de trabajo diario.


¿Quien eres y que haces?

Soy Abhinav Upadhyay, un ser humano establecido en Hyderabad, India. Paso la viejo parte de mis horas de vela leyendo / escribiendo código, o poco en esa proximidad, así que supongo que califico como desarrollador de software (aunque tengo un robusto síndrome del impostor cuando digo esto). Tengo una estudios en informática y he trabajado profesionalmente como programador durante aproximadamente una decenio. Soy un firme defensor y partidario del software de código campechano y he estado involucrado en el esquema NetBSD durante varios abriles como desarrollador. Actualmente formo parte de una puesta en marcha temprana, trabajando como ingeniero senior.

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

Comenzó cuando estaba en noveno límite en la escuela. Mi hermana estaba haciendo su estudios en Ciencias de la Computación en ese momento. Todavía obtuvimos nuestra primera PC en nuestra casa en esa época. Empecé leyendo algunos de los libros de mi hermana y empecé a programar a partir de ahí. Las primeras cosas con las que experimenté fueron HTML, JavaScript y luego Visual Basic. El hecho de que pudiera ver los resultados de mi software visualmente me intrigó mucho, me emocionó y me enganchó de por vida. Efectivamente creo que una vez que te emocionas con una idea o concepto, pondrás toda tu energía en eso y eso es lo que pasó conmigo. Desde entonces he pasado a cosas más serias en mi delirio, pero ese fue el punto de partida.

¿Por qué eligió trabajar con el maniquí de código campechano y NetBSD?

Comencé a usar software de código campechano como Linux, Firefox, GCC, etc. desde mis días de estudios. No sabía mucho sobre código campechano, pero comencé a deletrear sobre ellos y entendí cómo se desarrollan. Lo más sorprendente para mí fue que todo el código estaba adecuado en campechano y que podía cambiarlo. El hecho de que pudiera contribuir con un cambio en estos proyectos que estaba usando y que existía la posibilidad de que millones de usuarios usaran mi código fue muy emocionante. Este fue el viejo número de motivación para mí por ser parte de la comunidad de código campechano. A distancia de eso, hubo un sensación secundario de una inmensa experiencia de enseñanza al estar en compañía de algunos de los piratas informáticos más inteligentes del mundo.

Mis primeros pasos fueron en las comunidades de Ubuntu y GNOME. Comencé arreglando errores y contribuyendo con algunas características pequeñas en Ubuntu y los proyectos marimachos de GNOME. Mi billete en el esquema NetBSD comenzó en 2011 como estudiante de incremento como parte del software Google Summer of Code. Joerg Sonnenberger me guió en la reescritura de la utilidad apropos (1) para implementar la búsqueda de texto completo en las páginas de manual. Continué contribuyendo con parches a NetBSD de forma intermitente mucho posteriormente de que terminara el verano del código, lo que finalmente los llevó a darme golpe de confirmación al esquema. Mi asociación con el esquema NetBSD y las personas asociadas con él ha sido una experiencia muy fructífera, hay algunas personas muy excepcionales y amables de las que he recibido asesoramiento y orientación. Esto todavía me ha regalado la oportunidad de recorrer a conferencias, en lugares como Tokio, París y Belgrado para presentar mi trabajo y socializar con otros desarrolladores del mundo BSD. Esta ha sido una experiencia única en la vida.

¿Puede compartir algún nota interesante y menos conocido sobre el esquema NetBSD?

Hay muchos datos interesantes sobre NetBSD que son poco conocidos fuera de la comunidad. Mencionaré algunos de ellos:

  1. A principios de este año, la NASA aterrizó con éxito el rover en Marte y hubo mucho entusiasmo por su ejecución en Linux. Varios abriles ayer, la NASA utilizó el sistema operante NetBSD para evaluar el entorno de microgravedad en la Tiempo Espacial Internacional y para investigar el uso de TCP en redes de satélites.
  2. NetBSD todavía ha sido parte de un récord mundial. La Red de Universidades Suecas (SUNET) utilizó NetBSD para registrar el récord de velocidad terrenal de Internet2 más rápido. Se las arreglaron para transferir en torno a de 840 GB de datos en menos de 30 minutos, utilizando un único flujo TCP IPv4 entre un host de la Universidad Tecnológica de Luleå y un host en San José, CA, EE. UU. La velocidad alcanzada fue de 69,073 Petabit-metros / segundo.
  3. NetBSD es perfectamente conocido por su portabilidad y código modular que permite una manejable migración a nuevas plataformas de hardware. Hay varias arquitecturas de hardware que durante mucho tiempo se han considerado no compatibles con la mayoría de los sistemas operativos, como la tribu VAX, Amiga, Sparc y Sun, etc. NetBSD todavía se ejecuta en ellos hasta la vencimiento. Curiosamente, todavía puede coleccionar software para VAX con GCC en NetBSD.
  4. Un sistema de compilación portátil: NetBSD tiene una utensilio de compilación positivamente flexible y sofisticada. Puede coleccionar NetBSD para un hardware diferente en su máquina y no solo eso, todavía lo compila en un sistema operante diferente. Por ejemplo, podría coleccionar NetBSD para aarch64 en una computadora portátil amd64 con Linux o Mac OSX. Esto es muy poderoso.

¿Cómo se ve un «día en la vida» cuando trabaja en un esquema de incremento de software?

Un día representativo para mí incluye viajes diarios a la oficina, reuniones, discusiones y programación. Desde que comenzó la pandemia el año pasado, hemos estado trabajando de forma remota y he disfrutado del cambio, me deja mucho tiempo y flexibilidad para hacer el trabajo.

Una vez que termina el día, por lo caudillo me tomo un refrigerio y luego me dedico a algunos de mis intereses personales. Estos pueden incluir piratería en un esquema paralelo, o quizás algún trabajo relacionado con NetBSD (aunque no lo he hecho por un tiempo). A veces todavía paso la tarde estudiando, por ejemplo, matemáticas, enseñanza forzoso o compiladores.

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


A pesar de ser parte del montón NetBSD donde la gentío se enorgullece de tener un zoológico de hardware, no soy demasiado sofisticado en esa dominio. Me gusta tener una máquina principal poderosa en la que pueda hacer la viejo parte de mi trabajo diario y tal vez una máquina de respaldo en caso de que surjan problemas. En la presente tengo tres computadoras portátiles: mi computadora portátil principal es una Intel core i9 octa core, con 64 gigas de RAM, ejecuto Ubtuntu 20.04 exclusivamente en ella. Mi portátil secundario más antiguo es un Intel core i7 con 16 gigas de RAM, lo tengo con comienzo dual con Ubuntu 20.04 pegado con NetBSD 8. Mi portátil más antiguo es un Intel core i3 con 4 GB de RAM. Ejecuto NetBSD 8 en él.

¿Con qué aplicaciones / software / herramientas de código campechano no puede morar?

Hay demasiados: tmux, fish, vim, curl, clang, gdb y más.

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

El mejor consejo que recibí fue al principio de mis días universitarios y fue dominar el lengua de programación C y deletrear el obra “Programación descubierta en el entorno Unix” de Richard Stevens. Cambió mi vida, esencialmente me expuso al mundo Unix y me dio la capacidad de deletrear y comprender una gran cantidad de código fuente campechano. Si ese consejo no hubiera llegado a mi modo, podría activo estado en un camino totalmente diferente al que tengo hoy.

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

Hay varias formas de comenzar a contribuir a proyectos de código campechano. Se vuelve muy manejable si eres un gran usufructuario del esquema, porque eso significa que positivamente tienes motivación para arreglar cosas y unir funciones. Lo subsiguiente es volverse activo interiormente de la comunidad, ya sea acechando en los canales de IRC del esquema o suscribiéndose a sus listas de correo. Esto lo familiariza con el proceso de incremento y le permite conocer los problemas que es importante que la comunidad aborde y solucione. Luego, puede solicitar ayuda con la corrección de errores, mejoras en la documentación o pruebas. Por lo caudillo, hay personas agradables en cada comunidad que son generosas con su tiempo y que pueden asesorarlo en la realización de esas tareas y, en el proceso, convertirse en un colaborador activo. Aparecer es la secreto.

¿Cuáles son los requisitos previos para comenzar a formarse el enseñanza forzoso? ¿Qué herramientas de código campechano le recomienda a determinado nuevo en ML?

El enseñanza forzoso es un campo harto interesante, pero todavía requiere una gran cantidad de requisitos previos para comenzar en él, lo que puede parecer abrumador. Soy principalmente autodidacta en esta dominio, mi punto de partida fue el primer MOOC de Andrew Ng sobre enseñanza forzoso en 2011.

Necesita conocimientos de álgebra rectilíneo, cálculo y probabilidad. No necesitamos cursos avanzados en ninguna de estas áreas, la viejo parte de lo que aprendimos en la escuela o en el primer año de la universidad es suficiente. Si esto se siente abrumador o tedioso, recomiendo adoptar un enfoque de hacia lo alto cerca de debajo y comenzar un curso de enseñanza forzoso y poner al día los requisitos de matemáticas a medida que avanza en el curso.

La otra parte del enseñanza ML es el conocimiento de programación. Debe poder codificar los modelos o tomar una implementación de maniquí existente y usarla. Otro aspecto implica compendiar, erradicar y preparar conjuntos de datos para entrenar los modelos, lo que requiere familiarizarse con las herramientas y bibliotecas utilizadas para realizar estas tareas. Python es el lengua de opción para esto. Adicionalmente de conocer el lengua Python, todavía es bueno familiarizarse con las bibliotecas de programación científica comunes en Python, como numpy, scipy, pandas, scikit-learn, matplotlib, etc. El trabajo de enseñanza forzoso más innovador puede incluir bibliotecas de enseñanza profundo así como TensorFlow y PyTorch.

Esta es una tono harto amplia de cosas para formarse y puede parecer abrumador, pero en sinceridad no hay un tropel para evitar la curva de enseñanza. Designar un problema para resolver, decidir un conjunto de datos para resolverlo y luego construir un maniquí le dará una exposición completa de todo lo necesario para ejecutar un esquema de ML.

No puedo resistirme a citar uno de los episodios de Bojack Horseman, donde Bojack comenzó a pasar como una forma de ponerse en forma para un papel en su próxima película y, posteriormente de unos pocos pasos, se queda sin aliento y se cae al pavimento. diciendo “Odio esto, pasar es terrible, todo es terrible” y un corredor experimentado viene por el camino y dice “Se vuelve más manejable, cada día se vuelve un poco más manejable pero tienes que hacerlo todos los días y esa es la parte difícil”. Es lo mismo con formarse cualquier cosa, tenemos que destinar horas.

Mientras codifica:

  • ¿Escuchas música de fondo?
    Hago. Eso es positivamente una parte del encanto de la codificación: cuando estás en la zona, escribiendo el código, la música te pone en trance. A veces espero con ansias el tiempo de codificación para poder sentirme así de detención.
  • ¿El mejor momento para escribir código para ti? ¿De día o de tenebrosidad?
    Me divierto más codificando durante la tenebrosidad. Soy determinado que se distrae fácilmente con el más imperceptible sonido o cualquier cosa que suceda a mi en torno a. Durante la tenebrosidad, cuando las cosas están tranquilas, me resulta mucho más manejable concentrarme.
  • ¿Té o café?
    Una taza de té robusto por la mañana.
  • IDE / editor de texto?
    empuje
  • ¿Consejo de concha protegido?
    Usar fish como mi shell predeterminado y tmux ha sido excelente para mí. Fish tiene una gran integración de autocompletado con la mayoría de las herramientas y tmux me permite hacer todo interiormente de la terminal sin siquiera tocar el mouse.

¿Qué haces cuando no estás pirateando y escribiendo código?

Me gusta poner al tenis de mesa. Todavía me gusta meditar. Al deletrear libros (pero me distraigo fácilmente, así que necesito estar positivamente interesado en el tema), algunos de los temas que me interesan incluyen Astrofísica, finanzas / inversión, historia, matemáticas. A veces, si estoy de humor, me gusta preparar un buen tentempié.

Nota del editor: Puedes seguir a Abhinav en Gorjeo para las aventuras diarias del desarrollador de software y enseñanza forzoso. Esta entrevista se realizó el 27 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