Pregunta

Casus:

¿Cómo editar y avanzar con el mismo código, desde varias ubicaciones y computadoras distantes tan fácilmente como sea posible?

Tengo este pensamiento desde hace algún tiempo. Regularmente tengo problemas cuando tengo que trabajar en un proyecto desde diferentes computadoras, ya que no he tomado ninguna medida ni nada para aliviarme en esta situación. Esto se debe en parte al hecho de que rara vez hago proyectos independientes y normalmente son sitios web pequeños.

Imagina que necesitas trabajar en un proyecto en casa, donde tienes una base de datos de configuración, un servidor web, phpmyadmin y todo lo que necesitas para que tu aplicación se ejecute. Luego vas a la casa de tu novia para el fin de semana, pero necesitas avanzar con el proyecto y durante ese tiempo quieres hacer algo de codificación.

Lo que estoy haciendo actualmente es que estoy archivando todo mi proyecto, junto con un volcado de DB normalmente y lo coloco en un host ftp, para que pueda acceder a él más tarde cuando lo necesite. Probablemente no tenga que explicar lo tedioso que puede ser esto, especialmente si necesita configurar todo el entorno en la PC en la que se encuentra actualmente.

Consideraciones:

  • Convierta mi PC doméstica en un servidor de desarrollo con Remote Desktop habilitado; el problema es que la conexión remota no siempre es rápida y enganchada como se necesita para hacer RAD. Además, eso implica que la PC debe estar siempre encendida en casa, independientemente de que quizás ni siquiera la necesite. Si digo, hay mejores cosas que hacer durante el fin de semana. Puede que tenga que comprar un UPS, ya que de vez en cuando se producen cortes de energía por aquí ... ya no me gusta esta solución.

  • Cree bases de datos y repositorios SVN en el servicio de hospedaje público y el código de pago. Esto sigue teniendo algunos de los problemas, ya que es posible que necesite instalar el software, el cliente SVN y eventualmente editar alguna configuración cada vez que cambie la computadora. Ah, y al igual que con la "solución" anterior, usted depende totalmente del acceso a Internet.

  • Compre una Eee PC y llévela con usted, de esa manera puede tener todo su entorno con usted. No se requiere red también. Tienes que arrastrar la maldita cosa alrededor de Tho, y aunque sea pequeña, no es algo que puedas meter en tu bolsillo. También considero que estas PC EEE no son muy adecuadas para la codificación normal (teclado pequeño, pantalla, etc.).

  • Y finalmente, he estado pensando en un escenario ideal, donde tengo una de esas distribuciones de Linux que van a lo largo de un solo CD o incluso un flashdrive . En lo último, puede tener todo su entorno siempre con usted junto con todos los proyectos. Puedes guardarlo en tu bolsillo. Todos los equipos tienen puertos USB incorporados, al contrario, no todos los equipos tienen un CD ROM instalado.

Pensando en ello, considero que la última solución es óptima y completamente satisfactoria. El problema es que no tengo mucha experiencia con Linux y no he estado jugando con eso tanto. Especialmente con flashdrive OS.

Preguntas clave :

  1. ¿Está de acuerdo en que una unidad flash es una solución óptima? ¿Hay alguna mejor práctica que pueda poner en el trabajo? ¿Quizás debería reconsiderar esta forma de trabajar? :)
  2. ¿Cree que un sistema operativo flashdrive como http://www.pendrivelinux.com/ es adecuado? para tal entorno de desarrollo web en absoluto; ¿Hay mejores candidatos para un sistema operativo?
  3. ¿Hay algún problema con el arranque desde USB en general? Naturalmente, supongo que esto no debería ser un problema en la mayoría de las PC's.
  4. ¿Cuál es su experiencia personal al trabajar desde varias ubicaciones en el mismo proyecto?
¿Fue útil?

Solución

Aquí hay una solución alternativa: lleve un disco duro portátil que tenga una instalación portátil de un reproductor de máquina virtual y una máquina virtual con todas las herramientas de desarrollo que necesita. Simplemente conecte esto a las computadoras disponibles, encienda la máquina virtual, póngala en modo de pantalla completa y estará listo. Tiene la ventaja de no tener que meterse con la configuración de Live-cd o live-usb de Linux, especialmente porque dijo que no está muy familiarizado con Linux.

EDITAR: también puede ejecutar su máquina virtual desde una unidad flash, aunque el rendimiento sería abismal.

Otros consejos

Realmente deberías conseguir una computadora portátil y hacer toda la codificación en esa máquina. Jugar con netbooks y / o unidades de disco no es una solución a largo plazo. Tengo un MacBook que utilizo para hacer toda mi codificación. Cuando estoy en casa, está conectado a un monitor de 21 pulgadas y un teclado y mouse completos. Cuando necesito viajar, desenchufe todos los cables y los guardo en mi bolsa. Dado que uso la misma máquina, no tengo que preocuparme por migrar archivos o configuraciones de un lado a otro, y aunque la pantalla es algo pequeña, no está mal hacer un poco de trabajo sobre la marcha.

Si no podía llevar mi computadora portátil, configuraría un entorno de desarrollo en un servidor Linux. Sin embargo, esta solución depende en gran medida del tipo de desarrollo que esté realizando y de su familiaridad con Linux y la línea de comandos. Definitivamente no lo recomiendo para aquellos que están empezando. Sin embargo, con Screen y Emacs (o vim si se mueve de esa manera) puede tener un entorno de desarrollo completo en cualquier lugar con acceso a Internet.

Computadora portátil: Demasiado caro, teclado demasiado pequeño, molesto para codificar.

Control remoto de un escritorio: sentirás el retraso, incluso una fracción de segundos, y te volverás loco después de un día.

SVN: demasiados problemas que requieren la instalación de los mismos softwares (cliente de repositorio, FTP, editor de texto, mysql, etc.) en todas partes.

Mi solución es una que uso personalmente ... ¡Unidad flash USB!

Instala la versión portátil de todos tus softwares. He logrado encontrar una versión portátil de todo lo que necesitaba:

Kitty (SSH)

Filezilla (SFTP)

Servidor web USB (Apache 2, PHP 5, Mysql 5, PHPMyAdmin)

Notepad ++ 5, Eclipse PDT (PHP IDE)

SNES9X (emulador de snes);)

Keepass (cosa de base de datos de encriptador de contraseñas)

HeidiSQL (similar a PHPMyAdmin)

Menú (un poco del menú de la bandeja del sistema)

Directorio de todos mis proyectos / música / notas

Aquí hay un buen enlace donde he encontrado la mayoría de mis programas.

P.S. Funciona en windows y linux (via vino). También puse un archivo ini de ejecución automática en él, así que cuando lo conecto, mi programa de menú de la bandeja del sistema se ejecuta y se inicia apache / mysql.

Creo que SSH es la respuesta a todo. Me da el control total de mi servidor, independientemente de mi ubicación, y me permite no solo acceder a un shell, sino también cargar y descargar archivos, así como usar el reenvío de puertos.

Si solo necesito hacer algunos ajustes rápidos, generalmente solo SSH al servidor y uso nano o algo similar para realizar la edición. Combinado con la pantalla, en realidad puede ser un entorno sorprendentemente productivo.

Cuando tenga que hacer un trabajo más serio, descargaré notepad ++ (gratis) y expandrive (ventanas equivalentes para sshfs, demo de 30 días disponible). Esto me permite editar de forma remota los archivos como si existieran en mi disco duro local (aunque requiere una buena conexión). Muy productivo. :)

¿Qué tal un netbook? Escuché que Scott Hanselman utilizó uno con buen efecto para ejecutar Visual Studio y SQL Server para el desarrollo de ASP.NET, así que estoy seguro de que serían lo suficientemente poderosos para sus demandas.

El tamaño de la pantalla puede ser una limitación pero con la gran ventaja de una unidad más pequeña y liviana. El Asus Eee 901 ha sido recomendado por un par de personas con las que trabajo.

Uso Dropbox para proyectos de código que no dependen de la seguridad.

En cuanto a un entorno de desarrollo, mis necesidades son mínimas, por lo que una copia de Notepad ++ suele ser suficiente. Actualmente, esto se instala localmente en cada máquina que uso, pero he jugado con la idea de usar una instalación portátil en una unidad USB.

Sin embargo, sus necesidades son bastante más complejas que las mías, y me parece que una computadora portátil como la sugerida puede ser su mejor opción

Creo que una computadora de los desarrolladores es como un traje de baño. Eres muy consciente de que el que estás usando no es tuyo. Además, como todos sabemos, existe un alto grado de probabilidad de que cualquier computadora que encontremos tenga uno de los mil problemas que afectarán nuestras suposiciones y el éxito constante de nuestras opciones de USB / VM. Creo que la mayoría estaría de acuerdo en que dependerá de la prioridad de nuestros proyectos y de nuestra tolerancia ante la posibilidad de que no funcione en un momento dado.

Respuesta simple: una laptop. Sí, no es tan pequeño como un teléfono celular ... pero hace que tu codificación sea mucho más fácil.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top