24 cosas que aprendí como desarrollador de software viviendo en Ubuntu durante una semana

He sido desarrollador de web y software por más de 15 años. En esos años, he utilizado todas las distribuciones de Windows desde 95 y todos los Mac OS X. He ejecutado configuraciones de escritorio, configuraciones de portátiles portátiles, configuraciones de computadoras portátiles de reemplazo de escritorio y hasta cuatro pantallas externas a la vez que se ejecutan en varias máquinas con conmutadores KVM, VNC, RDP y SSH. Utilicé cada pieza de hardware de un AlphaSmart a un Palm Pilot, a un Raspberry Pi al iPad 1 y esperé en línea 12 horas para el día del lanzamiento. Sin mencionar los Gateways, Dells, VAIOs, Macbooks, plataformas personalizadas o mi brillante nuevo Alienware 15 R3 🙂

Cortesía de mi iPhone y iluminación realmente pobre

En todos estos dispositivos, escribí software, desarrollé contenido o los pirateé de alguna forma u otra. También he jugado en casi todos, estoy recordando las cientos de horas de Snake que inicié sesión en mi TI-83 en la escuela secundaria. Por supuesto, como jugador, nada se acercará nunca a Windows. La brecha es tan amplia que pasarán muchas eras antes de que alguien se ponga al día (aunque esto no es ABSOLUTAMENTE cierto, lo cual entraré más adelante). Esta pieza no se trata de eso sin embargo. Solo quiero que sepas de dónde vengo.

Esta pieza trata sobre la transición de los sistemas operativos principales (Windows, Mac) a Linux como desarrollador de software.

Como desarrollador, tuve que aprender a trabajar en casi todos los entornos solo para sobrevivir. Entre esos entornos, Linux ha sido realmente inevitable. No es que me gustaría evitarlo. Es realmente una pieza notable de tecnología. Uno que siempre he considerado como quizás el proyecto de código abierto más importante de todos los tiempos. Lo que me sorprendió, sin embargo, es que nunca había trabajado y vivido realmente dentro de un entorno Linux. Sí, podría tener SSHed en una máquina Linux alojada en la nube todos los días durante años o tenía Ubuntu 16.04 corriendo en VirtualBox o Parallels, o un poco de Raspberry Pi balanceando Ubuntu debajo de mi escritorio, pero nunca usé más que Apache, MySQL, PHP , Node, SSH, VNC … cosas de la terminal.

La CLI.

Pensé que sabía Linux …

Así que cuando decidí que ya era hora de que hiciera el cambio y ejecutara el completo entorno de escritorio de Linux (también conocido como Ubuntu 16.04 con Unity), dije "No hay problema". Mi esposa dijo: "Ya sabes. ¿Qué va a pasar, verdad?

Hice una mueca …

Y yo ya estaba hasta las rodillas de todos modos. Desarrollar en Node & Docker en una VM o WSL es tremendamente lento (literalmente, alrededor del 30% en el mejor de las operaciones de E / S frente a Linux nativo). Entonces, continué resucitando mi Master Boot Record cada vez que lo arruiné con una instalación fallida de Ubuntu (gracias a Dios por las copias de seguridad). Eso sí, estoy instalando una configuración de arranque dual con Windows 10 en el otro lado y una combinación de unidades NVMe y SATA. Así que, aunque culpé a mi esposa por hacerme mal, esto era claramente inevitable.

Barra lateral : si está intentando una configuración como esta, asegúrese de verificar su UEFI y la configuración segura de arranque (recomiendo Google para esto) o reparará ese MBR más de unas pocas veces.

De todos modos, una o dos noches sin dormir más tarde, finalmente tuve Windows 10 y Ubuntu 16.04 arranque dual con éxito! Luego tomé la decisión inteligente de dormir un poco antes de configurar mi sistema (instalar aplicaciones, configurar accesos directos y hacer que todo fuera tan cómodo como lo fueron siempre mis entornos Windows y Mac). Una decisión inteligente porque esto probaría ser una tarea no pequeña …

Al escribir esto, tengo alrededor de 7-10 días en este momento. Sigo modificando mi sistema operativo … Continúo sucumbiendo a noches sin dormir … Y realmente no sé cuándo terminará …

Y sin embargo, sonrío.

Cortesía de AMC / Gene Page

Verá, sabiendo lo poco que sabía sobre Linux, todavía sabía que podría hacer casi cualquier cosa que necesitara con un poco de trabajo práctico. Soy un programador y, por lo tanto, tener la ventaja de tener acceso a secuencias de comandos rápidas y fáciles para el sistema parecía un concepto glorioso.

Y esto ha probado ser completamente cierto.

Como desarrollador de Nodo, ya lo he usado para escribir un gestor de mosaico de ventanas simple que funciona en muchos sabores de Linux dadas algunas dependencias comunes (wmctrl, xprops). He configurado accesos directos personalizados para iniciar inteligentemente mi entorno de desarrollo de aplicaciones múltiples con un clic de una tecla o tiro el puntero del mouse desde un escritorio al otro con un clic del mouse. ¡Y finalmente tomé el control total del uso de recursos de mi sistema!

Bueno, todo esto se puede hacer en Windows y Mac, ¿no? Puede. Y lo sé porque lo he hecho. Pero hay una diferencia. Linux es inmersivo. Debes conocer tu máquina. La terminal literalmente te hace mirar fijamente las entrañas de tu sistema operativo en todo momento. Tu vives dentro de eso. Debe haber un vínculo.

Tienes que hacer Tsaheylu.

Tsaheylu: Na'vi palabra que significa 'El Bond'; Crédito de la foto james-camerons-avatar.wikia.com

Y para eso, eres uno con la máquina.

Lo entiendes? Porque no lo hice Ni siquiera cerca. Una semana después y todavía no estoy seguro de hacerlo. Pero cuando decidí comenzar a anotar algunas ideas sobre esto en Evernote ( que también tuve que hackear porque Linux … ), me di cuenta de que se me ocurrieron más de 20 ideas en, por ejemplo, 5 minutos. Y entonces, aquí tienes.

24 cosas que aprendí (y / o recuerdo) como desarrollador de software (¡y jugador!) Viviendo en Ubuntu durante una semana:

1. Puedes hacer cualquier cosa …

Sí, lo he dudado constantemente. Pero es verdad. Si intentas personalizar algo, crear un tema, automatizar algo, controlar algo, simplificar algo o, de alguna forma, hackear tu sistema operativo, ¡probablemente puedas! Y otras personas probablemente ya lo hayan hecho, ¡lo cual es aún mejor! Hay tantos proyectos de Linux alojados en GitHub; es abrumador AskUbuntu.com es un recurso aún más valioso que ha respondido casi cualquier pregunta que se te ocurra. No te dejes engañar como yo tampoco y crea que un recurso que estás viendo es obsoleto solo porque tiene una década de antigüedad. Linux ha resistido la prueba del tiempo, y muchos de estos recursos antiguos siguen siendo minas de oro de consejos, trucos y conocimientos técnicos.

2. Es REALMENTE fácil de romper

Aquí es donde entra Tsaheylu. Necesitas conocer tu sistema por dentro y por fuera porque es fácil romper tu instalación desde la terminal. Verá una gran cantidad de tutoriales, o respuestas de AskUbuntu por ahí que le dicen que:

 sudo esto y esa cosa 

¡No confíes en ellos a ciegas! sudo otorga un comando de privilegios de "superusuario". En otras palabras, el comando puede modificar cualquier cosa en su sistema una vez que le otorga acceso. Por lo tanto, no sudo nada antes de saber exactamente qué está haciendo el comando y qué partes de su sistema operativo dependen de los archivos afectados. Linux es extremadamente poderoso, extremadamente seguro y extremadamente fácil de monitorear y mantener, pero con gran poder viene una gran responsabilidad. Puedes igual de fácil:

 sudo rm -rf / 

Y como … * que * … todo su sistema de archivos se ha ido … * poof * … Así que cuide su sistema de archivos como si fuera su bebé. Porque tan pronto como ingresas esa contraseña para sudo algo, no hay vuelta atrás. En esa nota:

3. ¡Todo es un archivo!

Casi todo lo responsable de ejecutar el sistema operativo Linux es solo un archivo en el sistema de archivos (siempre mirando hacia usted desde la terminal). Esto es, en gran parte, por qué es tan importante saber cómo se usa su sistema de archivos. Sus discos, sus dispositivos de hardware, su memoria, sus aplicaciones, configuraciones, tareas, ¡todo! Son todos archivos. Todos pueden ser falsificados, transformados, movidos, vinculados y sincronizados. Lo que usted hace con este conocimiento puede ser una incógnita, pero ya he encontrado innumerables escenarios en los que esto puede ser un desastre o una bendición. En todos los sentidos, sin embargo, los pros superan a los contras. Reduce significativamente la complejidad de un sistema operativo y hace que el usuario sea extremadamente directo con la relación de sistema operativo. ¿Y deberíamos esperar menos de una computadora personal ? Yo creo que no.

4. ¡Todo está expuesto para ti!

Del mismo modo, todo lo que no es un archivo todavía está completamente expuesto a usted (y probablemente se encuentre en un archivo que todavía no he encontrado). Estoy hablando de cosas más efímeras, como procesos en ejecución, actividad de red y otros tipos de uso de recursos. Todos son accesibles de la manera más fácil, con el comando necesario solo un google o un apt-get install distancia (o ver # 10 ).

5. ~ ¿Dónde está el corazón?

Este es un concepto tan simple que voy a tener que ser muy prolijo aquí solo para estar absolutamente seguro de que refuerzo este párrafo lo suficiente como para hacer justicia a la importancia real de este concepto crucialmente crítico.

~ (aka tilde ; aka shift + ` ) es el caracter usado por Linux para denotar la carpeta de inicio del usuario actual. Es usual:

 / inicio / <nombre de usuario> 

también conocido como Home

Casi TODO lo que haces en tu sistema operativo se almacena aquí. Configuraciones y configuraciones, cachés, datos de aplicaciones, descargas, documentos, imágenes y mucho más. Este es también el único directorio en su máquina que de forma predeterminada concede derechos explícitos al usuario que ha iniciado sesión. No es necesario sudo , aquí. Por lo tanto, tenga mucho cuidado con estos archivos. Enredar estos archivos no necesariamente romperá su sistema, pero le hará la vida más difícil.

Ahora, también hay varias otras carpetas en su sistema de archivos con las que debe familiarizarse. Lugares como /usr/bin , /etc , /var , etc. Sin embargo, estos lugares tienden a estar un poco más orientados al sistema. Son lugares que deberá conocer para supervisar los registros de su sistema, realizar cambios en la configuración o servicios del servidor o administrar dispositivos de hardware. Todavía no estoy íntimamente familiarizado con todo esto, aún así, pero me estoy acostumbrando.

6. ¡Administra tus terminales!

Dado que la terminal es tan integral para todo lo que hace en Linux (y tan letal para su sistema operativo si se utiliza mal), es importante administrar esos pequeños agujeros con extrema precisión. Descubrí Terminator en mi Ubuntu en días de VirtualBox, y continúa sirviendo como una fantástica pieza de software para administrar terminales Linux en Ubuntu nativo. Actualmente lo tengo configurado para cargar nueve terminales en una sola ventana, por lo que mantener mis tareas organizadas y aisladas es muy sencillo. Si le gusta jugar como yo, también es completamente personalizable, hasta el fondo o la paleta de colores utilizada para colorear cada terminal.

También tenga en cuenta que puede abandonar totalmente el entorno de su escritorio en cualquier momento presionando CTRL + ALT + una de las teclas de función para saltar directamente a un terminal dedicado como cualquier usuario.

7. Accesos directos, alias, y / usr / bin

Los accesos directos son esenciales para una deliciosa experiencia de Linux. Y deliciosamente, Linux obliga en más de un sentido. Las dos formas más sencillas de crear accesos directos son agregar alias (o funciones) al archivo bash de tu usuario (generalmente ~/.bashrc o ~/.bash_profile ) o agregar scripts de shell personalizados a /usr/bin . Además de poder asociar rápidamente comandos personalizados con cualquier acción que desee realizar, también puede vincular fácilmente teclas y combinaciones de teclas para ejecutar esos comandos. Personalícelos a su gusto, y eliminará todo el pensamiento de su flujo de trabajo y le permitirá concentrarse en su trabajo.

EDITAR : Debido a las numerosas respuestas que he tenido (tanto aquí como en Reddit), me siento obligado a mencionar que /usr/bin no es el directorio que desea utilizar. Todavía tengo que explorar esta opción, pero la mayoría de las recomendaciones parecen estar creando su propio directorio bin en el hogar y luego vincularlo en su variable $PATH .

8. Tener un buen teclado

Con toda esa mención de terminales, comandos, accesos directos y alias, probablemente estés pensando: "¡Golly, eso suena como un montón de tipeo!"

Es.

Y es imperativo que tengas un excelente teclado para machacar. No puedo enfatizar esto lo suficiente. Con la frecuencia necesaria para ingresar un comando sudo y escribir su contraseña, querrá hacerlo bien la primera vez. La mayoría de los sabores de Linux exhiben un retraso obligatorio de tres segundos después de ingresar una contraseña incorrectamente. Tener que hacer eso solo tres veces te llevará más de 10 segundos … Si eres un programador, ¡sabes lo devastador que puede ser ese tipo de tiempo! Y enloquecedor, también … Y todos sabemos que un programador en inclinación no es un buen programador en absoluto.

9. ¡No te rindas!

Mientras que tener que ingresar su contraseña, se espera que once veces cause una gran crisis, ¡no se desespere! Encontrarás el camino.

Vivir en Linux requiere agallas.

Se necesita perseverancia. A veces, solo tienes que dejar de lado un problema para otro día. La próxima vez que se convierta en una molestia, dale otro google. Eventualmente, juntarás solo las palabras correctas y esa respuesta AskUbuntu vendrá para salvar el día. Mamá dijo que habría días como este, y ella tenía razón. Linux está plagado de idiosincrasias, inconsistencias e imposibilidades aparentes. Pero la comunidad es masiva, y el sistema operativo realmente es tan versátil (y hackable) como cabría esperar que sea el software de código abierto perfecto.

10. Tener una hoja de trucos

Para ahorrarte muchos dolores de cabeza y desperdicio de ancho de banda en google, mantén una hoja de trucos. Todavía estoy trabajando en el mío, pero te recomiendo que tengas en cuenta todos los comandos regulares que usas. Alias ??todos los comandos más largos y complicados y elimina el pensamiento. Imprima esta hoja de trucos si es necesario y péguela en su pared. Hay tantos comandos, carpetas y trucos que debes tener en cuenta cuando trabajas en Linux, que es una locura intentar recordar todo. Claro, eventualmente (aunque probablemente no lo harás …), pero mientras tanto, guarda el problema.

11. Es una utopía de Tinner

Si le gusta jugar, LE ENCANTARÁ Linux. Casi todo es personalizable. Si está ejecutando un entorno de escritorio como Unity o Gnome, hay varias herramientas diferentes para esto, como unity-tweak-tool y gnome-tweak-tool, además de las configuraciones de sistema incluidas que obtiene con esos entornos de escritorio. Como mencioné antes, casi todo en Linux se puede reducir a un archivo. Por lo tanto, profundice en el sistema operativo y verá que puede modificar prácticamente todo, incluidas las pantallas de inicio, las decoraciones de las ventanas, las tareas automatizadas y las configuraciones o comportamientos de las aplicaciones. También hay toneladas de recursos con temas personalizados para muchas distribuciones populares de Linux. En ese sentido, ¡también existen innumerables distros y sabores de Linux que puedes probar! Cada uno viene con su propio giro único sobre lo que debería ser un sistema operativo. Esto es algo que no obtienes con Windows o Mac.

Sin embargo…

12. Nunca probarás cada Distro / Sabor …

Dicho esto, no hay suficiente tiempo en una vida para probar cada distro y sabor de Linux. Haga su tarea e investigue las diferentes distribuciones antes de elegir la suya. Como mencioné anteriormente, cada uno es único, y cada uno tiene una curva de aprendizaje asociada. Si bien algunos entornos de escritorio pueden instalarse fácilmente sobre una distribución existente, Ubuntu, por ejemplo, funciona particularmente bien con entornos Unity o Gnome, muchos no y muchas distros deben instalarse desde cero para obtener realmente la experiencia auténtica. Además, estas son aguas fangosas. Jugar con una distribución ya establecida como esta es una de las formas más fáciles de poner a funcionar su sistema.

Carrusel de Google cuando busca "distros de Linux"

13. Te sentirás como si estuvieras viviendo en los 90

Un ejemplo de una página de manual de Linux; que leerás con frecuencia.

A veces vivir en Linux puede generar una especie de sensación nostálgica. Si bien el sistema operativo en sí se ha mantenido al día con las últimas tendencias e incluso empujó sobres en muchas áreas, la comunidad todavía está llena de programadores y desarrolladores. Una gran cantidad de personas que ya saben cómo solucionar inconvenientes menores y un público aún más amplio que lleva décadas viviendo en interfaces totalmente basadas en terminales. Como resultado, los recursos disponibles para Linux en la web son muy antiguos. La documentación, incluso la oficial, parece algo ensamblado en los años 90 y será difícil encontrar capturas de pantalla en tutoriales o páginas de aplicaciones. Ahora, esto no debería ser una sorpresa, ya que gran parte de este contenido en realidad se desarrolló en los años 90. Recuerde, como mencioné anteriormente, Linux ha resistido la prueba del tiempo y también tiene este contenido. Si puede superar las deficiencias estéticas, no tendrá problemas para encontrar lo que está buscando.

14. Te sentirás como si fueras del futuro

Simultáneamente, Linux también te hará sentir que eres del futuro. Esto se debe a que la misma comunidad de programadores y desarrolladores que no se preocupan por las páginas de documentos brillantes es la misma comunidad que está detrás de escena desarrollando toda la última y mejor tecnología. Entonces, de muchas maneras, Linux está a la vanguardia.

También ha sido rediseñado y personalizado para trabajar en innumerables formas de hardware y ya es el líder mundial indiscutible en computación no de escritorio.

A medida que modifica el sistema operativo a su gusto también, comienza a cobrar vida propia. A diferencia de Windows o Mac, el sistema operativo no se alimenta de forma forzada. Es una criatura viviente que llevas con tus propias manos. Esta combinación de hombre y tecnología es indicativa de un mundo al que nos acercamos rápidamente y que está siendo posible gracias a los esfuerzos de Linus Torvalds (¡Feliz cumpleaños!) Y la notablemente innovadora comunidad Linux.

15. Ubuntu 17.10 + Gnome 3 es impresionante!

14 puntos y he mencionado la terminal unas 100 veces y el entorno de escritorio no una vez. Sin embargo, es el entorno de escritorio lo que realmente hace que la experiencia sea completa. Obtengo toda la cosa de vim y xmonad , pero soy un desarrollador de UI …

Me gusta un verdadero entorno de escritorio.

Y si Linux no pudiera entregarme eso, habría sido un factor decisivo .

Afortunadamente, después de algunos dolores de crecimiento con Ubuntu 16.04 + Unity, me actualicé a Ubuntu 17.10 para darle una oportunidad al Gnome 3, ¡y vaya que es increíble! Gnome 3 es rápido, fácil de usar, ¡y se ve GENIAL!

También coloca correctamente las ventanas en el escritorio, lo que es una gran ventaja. Los cálculos de la posición de la ventana de Unity son realmente poco fiables, lo que es una pesadilla para cualquier administrador de alicatado de ventanas.

Huelga decir que no he probado todas las distribuciones o sabores (por las razones que mencioné anteriormente), pero Ubuntu 17.10 + Gnome 3 es ciertamente mi favorito hasta ahora. Revela un tema oscuro y lanza Redshift arriba y listo:

16. Puede hacer (principalmente) todo lo que puede hacer

Sí, es verdad. Linux puede hacerlo todo! No dejes que nadie te engañe. Si Windows o Mac pueden hacerlo, Linux también puede hacerlo. Linux incluso ejecuta muchas aplicaciones de Windows con la ayuda de un programa llamado Wine. No es que realmente necesites hacerlo. Yo no. Suele haber un análogo de Linux bastante sólido para cualquier aplicación que necesite, y con la llegada de frameworks como Electron, las dificultades del desarrollo de sistemas operativos cruzados se están convirtiendo en algo del pasado. Slack, por ejemplo, es una coincidencia directa de 1 a 1 entre Windows, Mac y Linux.

Por supuesto, algunas cosas son un poco más complicadas, pero entraré en ellas después de alabar a Linux un poco más primero:

17. Hay un apto para eso

Si ejecuta Ubuntu, tendrá acceso a esta pequeña y ordenada herramienta llamada Aptitude (también conocida como apt ). Es un programa invisible que puede convocar para volar al mundo de la web y obtener cerca del 90% de todas las aplicaciones que necesitará para hacer que Linux haga lo que quiera. Gestiona todas estas aplicaciones de forma inteligente y las mantiene actualizadas (según lo solicite, lo que debe hacer con frecuencia). Si aprende a usar bien esta herramienta, no tendrá problemas para que Linux haga exactamente lo que usted desea. Solo tenga cuidado al eliminar paquetes usando Aptitude … Montones y montones de cosas dependen de los paquetes administrados por este tipo. Por lo tanto, si elimina la cosa incorrecta, las cosas tienden a ir * boom *.

18. ¡PUEDES jugar en Linux!

A pesar de lo que dice la gente, puedes jugar en Linux. En realidad, mejor que tú en Mac, en mi opinión. Steam incluso se ejecuta de forma nativa en Linux ahora, lo que es notable. Ejecuto Rocket League en la configuración completa (menos 4K) y obtengo FPS máximo y ocho ping … (el ping es probablemente un crédito para mi gigabit internet, pero aún así … es bueno saber que Linux está maximizando mi ethernet). Lamentablemente, los juegos 4K todavía no están tan bien como en Windows, pero espero que los controladores de Linux Nvidia se pongan al día pronto en esa área.

19. Automatización

La automatización es FÁCIL en Linux. Escribir un intérprete de comandos, Python o incluso un script de nodo para ejecutar alguna tarea utilizada con frecuencia es tan fácil como escribir el guión. No hay sobrecarga en Linux y crontab (programador de tareas principal de Linux) toma alrededor de cinco segundos para aprender. Entonces, solo codifica tu tarea, agrégala a crontab y ¡listo!

20. Los paquetes faltantes son un PITA

Como mencioné anteriormente, eliminar los paquetes incorrectos realmente puede arruinar su sistema rápidamente. Pero, incluso peor que tener las cosas en * boom *, es cuando falta un paquete no esencial. Estos tienden a romper algunas características sutiles en su sistema y puede ser imposible rastrearlos. Esta es una de esas cosas de las que hablé cuando dije

No te rindas

Mientras que puedes terminar rompiendo algo y no tienes ni idea de cómo encontrar la solución o para qué buscar, ¡triunfarás! Viva con el problema por un día o dos y la respuesta lo encontrará. Esta es otra parte del vínculo que debe tener con su sistema operativo. Ten un poco de fe en Linux, y las cosas funcionarán.

21. El hardware es difícil … (¡Pero el software es FÁCIL!)

En Linuxland, Plug & Play está muerto. No espere que ningún dispositivo que adquiera funcione a menos que sea el teclado de 1990 (vea el n . ° 8 y n . ° 13 ) que agarró en la parte inferior del estante de Best Buy para conectarlo a su Raspberry Pi. No, pantallas, ratones, teclados, auriculares … todos necesitarán un pequeño TLC. Sí, solo son los conductores, lo que puede parecer fácil, ¿verdad? Mal . La mayoría de estos controladores están desarrollados como FOSS (software libre y de código abierto) y por pequeñas comunidades de personas que son lo suficientemente tercos como para confiar en el hardware que fue diseñado exclusivamente para máquinas Windows (* tos * Razer). Esto significa que hay un millón de permutaciones de hardware que no se han tenido en cuenta. Entonces, con frecuencia, tendrá que buscar una amalgama de soluciones para que su hardware funcione como esperaba al comprarlo.

Dicho esto, ¡el software es fácil! Bastante curioso, en realidad tiende a ser más fácil falsificar hardware usando el sistema de archivos Linux que conseguir que el hardware real funcione. Esto, sin embargo, termina por dejarnos idear algunos hacks bastante geniales:

22. Hack de intercambio de pantalla de WebEx

Si usa WebEx for Desktop en Windows, le decepcionará saber que las versiones de Linux no son compatibles con la presentación (uso compartido de pantalla). Afortunadamente, Linux es fácil de hackear. Con acceso directo al sistema de archivos, que en realidad usa el sistema operativo para representar nuestro hardware, y un programa poderoso llamado ffmpeg , podemos resolver este problema con un comando (y algunas dependencias instaladas):

 sudo modprobe v4l2loopback && sudo ffmpeg -f x11grab -r 15 -s 1920x1080 -i: 0.0 + 0,623 -vcodec rawvideo -hebras 0 -pix_fmt yuv420p -f v4l2 / dev / video0 

¿Qué hace esto? Utiliza ffmpeg para capturar una de mis pantallas y muestra la transmisión como v412loopback (que se instala fácilmente desde Aptitude) a un archivo en /dev/video0 , que es la representación del sistema de archivos de mi cámara web. v412loopback utiliza el mismo códec que mi cámara web, por lo que al ejecutar esta línea de código, efectivamente convierto mi cámara web en una herramienta para compartir pantalla, con o sin soporte de WebEx. Si unimos esto con una aplicación de difusión de código abierto de clase mundial como OBS (todavía no lo he descifrado por completo, pero estoy descubriendo algo, si tiene alguna idea, por favor, compártala en los comentarios) y usted tener una herramienta para compartir pantalla más poderosa que cualquier cosa que WebEx pudiera ofrecer de todos modos.

23. PERDERÁS TUS APLICACIONES PARA Windows / Mac SOLO

Sí lo harás. Si escucho a un adicto a Linux más alimentarme con esa basura de "Pero, GIMP!", Voy a tener un ataque.

GIMP NO es Photoshop.

Nunca lo será. Echo de menos a Photoshop. Y aunque es solo un reinicio, todavía se siente tan lejos (recuerde, tengo arranque dual con Windows 10 y por esta razón, y los juegos, por supuesto, nunca podré usar el 100% de Linux). Además de Photoshop, también puede pasar por alto:

Office 365 . Libre Office es bastante impresionante, todo en todos. Pero en realidad, no es lo suficientemente bueno. Sin embargo, si eres como yo, haces la mayoría de tus cosas en Google Docs / Spreadsheets / Slides de todos modos, por lo que ya te has deshecho del M $ pezón. Sin embargo, Office 365 es una fantástica suite de productos, y es un poco doloroso saber que está acumulando polvo en mi lado de Windows.

Evernote . Yo uso mucho Evernote. Y el cliente de escritorio de Windows Evernote es increíble. Es muy ágil, bien diseñado y liviano. Desafortunadamente, después de toneladas de excavación y experimentación, no pude encontrar un solo cliente comparable de Evernote para Linux. Afortunadamente, sin embargo, el cliente web es bastante increíble y con un poco de pirateo, funciona casi igual de bien para mí.

La plétora de otros que no tienen un buen análogo de Linux 🙁

Para nombrar unos pocos:

Windows Mail … Sí, si no lo ha usado. Intentalo. Es realmente uno de los mejores clientes de correo y calendario hasta la fecha, IMO.

Panel de control de Nvidia . Hay un pseudo-análogo para esto (nvidia-settings) que viene con los controladores de Linux, pero no es tan poderoso como su homólogo de Windows.

Ableton . Si produces música o efectos de sonido, probablemente te decepcionará saber que la última palabra de un Ableton compatible con Linux fue en 2014. Si bien es posible hacer que funcione con herramientas como Wine, obtener el máximo rendimiento no será tarea fácil.

Puedo editar esto más tarde ya que pienso en más, pero probablemente no. Acabo de estar tan atrincherado en el mundo de Linux, estoy empezando a olvidar cómo era en otros lugares. Y creo que entiendes la idea de todos modos. No siempre puedes tener lo mejor de ambos mundos. Sin embargo, como desarrollador, en solo una semana puedo decir que Linux es probablemente el paquete más completo de un sistema operativo de escritorio. Como jugador, digo asegúrate de tener Windows listo para cualquier cosa seria, pero no dudes en probar las aguas con un juego menos exigente como Rocket League o la mayoría de la biblioteca de Steam ya disponible.

24. Las aplicaciones hacen que un sistema operativo sea un hogar

Por supuesto, cualquier SO es tan bueno como las aplicaciones y programas que admite. Y Linux no es diferente. Si bien echo de menos mis aplicaciones de Windows mencionadas anteriormente, la comunidad Linux fue más que complaciente. En el último fin de semana, he encadenado el siguiente conjunto de aplicaciones para optimizar mi flujo de trabajo:

Evolution Mail . Después de probar varios clientes de correo en Linux, encontré que Evolution Mail es el más completo. Admite calendarios, tareas, notas y contactos. Tiene vistas, búsquedas, firmas personalizables y todo lo demás que necesita de un cliente de correo completo.

Terminator . Terminator es, sin dudas, el mejor administrador de terminales para Ubuntu. Tiene perfiles personalizados, ventanas con terminales con pestañas, ventanas con terminales de mosaico y tematización completamente personalizable. Es un deber-tener absoluto.

Terminator

Google Chrome . Si eres humano y no vives debajo de una roca, probablemente navegues por la web. Si bien las distribuciones de Ubuntu vienen con Firefox preinstalado, creo que todos sabemos que Google Chrome lo hace mejor que nadie. Y si necesita mantener abierta otra sesión completamente aislada en todo momento, como yo, y no me gusta usar extensiones para esto, también puede instalar el proyecto principal de Google Chrome, Chromium , y ejecutarlos uno al lado del otro.

gnome-system-monitor . El monitoreo del uso de los recursos del sistema es una parte fundamental para mantener una máquina que funcione de manera saludable. gnome-system-monitor viene preinstalado con distribuciones basadas en Gnome y hace un gran trabajo ofreciéndole una visión general del uso de los recursos.

Desplazamiento al rojo . ¡DEJA de mirar las pantallas de tonos fríos! Se ha demostrado que la sobreexposición a la luz azul tiene efectos devastadores en nuestro ritmo circadiano. El corrimiento al rojo calienta inteligentemente su pantalla más tarde en el día para reducir la fatiga visual y prevenir el insomnio desencadenado por la pantalla.

Cerebro . Si vienes del mundo Mac, probablemente te guste Spotlight. Si amas Spotlight y te mudas al mundo de Windows, probablemente te encante Launchy. Puede que incluso le guste Quicksilver (Mac) o simplemente el buen menú de inicio (Windows). Si te gusta cualquiera de estas cosas y no te ENCANTAN los diversos intentos en un lanzador para distribuciones de Linux, ¡prueba Cerebro! Se basa en Electron, por lo que realmente funciona en Windows, Mac y Linux. También cuenta con una comunidad de rápido crecimiento detrás y una completa arquitectura de complementos que se ha utilizado de manera realmente genial.

WebStorm (JetBrains) . Si usted es un desarrollador web que trabaja con JavaScript, WebStorm es de lejos el mejor IDE que existe. Si bien hay alternativas como Atom, Eclipse o Sublime Text (aunque no es realmente un IDE), JetBrains ha creado posiblemente el mejor conjunto de software para Python, Java, JavaScript, Go y muchos más idiomas. Además, cada uno de ellos funciona exactamente de la misma manera. Entonces, la curva de aprendizaje es algo único.

Texto sublime Brevemente mencionado anteriormente como una alternativa a WebStorm, también es un acompañante esencial para él. IDEs pesados ??como WebStorm pueden ser excesivos para muchas tareas de edición de texto más pequeñas. Sublime Text es una aplicación genial y liviana que debe abrirse cuando necesite modificar archivos de configuración, scripts de shell u otros elementos no orientados a proyectos.

Si conoces otras aplicaciones o alternativas geniales a las que he enumerado, por favor, compártelas en los comentarios.

Para concluir

Si aún no le has dado una oportunidad a Linux como un sistema operativo real y cotidiano, lo recomiendo encarecidamente. Solo prepárate para los obstáculos y la curva de aprendizaje. No será fácil, pero será gratificante. Linux ha ganado tremenda tracción en el último año. Lo he notado en todas partes. En todos los sitios temáticos, paneles de discusión, preguntas y respuestas, etc., existe el mismo patrón. Mucha charla hace 5-10 años. Entonces silencio. Y ahora un resurgimiento en los últimos dos años. Y por lo que veo, no es una coincidencia. Linux, como proyecto de código abierto, se encuentra en una posición perfecta en el mundo de hoy para despegar.

Ya estoy en el carro, y me gusta a dónde va.

Si ya ha saltado, me gustaría escuchar su opinión sobre esto en los comentarios. De lo contrario, siéntase libre de preguntar o comentar cualquier cosa que quiera. Todavía soy muy nuevo en este lado de la informática, así que soy todo oídos.

Texto original em inglês.