Ves que cada vez hay más y más gente que gana dinero por internet y tú todavía no. Te preguntas cómo hacen para tener ese ingreso extra que tan bien viene pero nadie atina a darte la respuesta completa. El motivo es que en internet hay mucha competencia y a nadie le gusta develar sus secretos. Eso es así y dudo que cambie.
Para comenzar a ganar por internet te recomiendo que veas los diversos servicios que puedes ofrecer. No te digo crear una web y ganar con ello sino que lo mejor en tu caso puede ser que consigas vender tu propio servicio a alguna web o empresa. Generalmente, los primeros son más fáciles de conseguir y lleva menos papelerío.
Ahora estarás pensando… ¿Qué puedo ofrecer? ¿No sé hacer muchas cosas por internet? Y yo te pregunto, ¿Sabes usar redes sociales, publicar textos y subir fotos en ellas? Seguramente, me dirás obviamente que sé hacer eso. Aunque no lo creas acabas de hallar una buena forma de ganar dinero y es ser community manager.
Ahora la idea es buscar algo como Curso de Community Manager Gratis Online. ¡Sí, existe! Aunque no creas hay cosas gratis todavía dentro de internet. Cada vez cuesta más encontrarlas pero si buscas bien e investigas un buen tiempo lograrás hallar cosas que te parecerán excelentes y además Gratis.
Antes que vayas al curso de community manager te aconsejo que tomes ese trabajo como algo serio. De hecho, te pagarán dinero por la labor que desempeñas así que preocúpate por realizar bien las cosas. Muchas veces, el hecho de estar en internet hace que las personas pierdan un poco de responsabilidad y hacen cosas que no harían en un trabajo físico. Ser community manager es un trabajo como cualquier otro por lo tanto requiere que seas cumplidor y además buen empleado.

Git es un sistema de gestión de versiones, como SVN o CVS, con algunas características que lo diferencian

Es distribuido. Mientras SVN o CVS, están orientados a tener un repositorio central sobre el que todos modifican, Git esta orientado a que cada cliente tiene su propio repositorio y sincroniza con uno central, o con alguno intermedio o con otro usuario. Esto da mucha flexibilidad a tu flujo de trabajo.
SVN o CVS son sistemas mas maduros que Git, con lo que existen mas clientes para todos los sistemas, y es mas fácil encontrar información concreta sobre estos. Sin embargo gracias al uso de Git para el desarrollo del kernel de Linux, ahora esta empezando a tener cierto auge.

Lo primero es o primero, y en este caso es instalar todas las herramientas necesarias para trabajar con Git, en mi caso trabajo exclusivamente desde la terminal, así que solo tengo que descargar los paquetes principales de la página de Git, dependiendo del sistema operativo en el que trabajemos.

Iniciando el repositorio:

La estructura general de un árbol de repositorios de Git, suele estar compuesta por un numero indeterminado de clientes que gestionan cada uno su propio repositorio, y que en algún momento ponen en común su trabajo con otro repositorio superior y común de Git. Para empezar a trabajar con ese repositorio superior y común, si ya existiera, deberíamos ejecutar algo como:

git clone protocolo://rutadelservidor/rutadelrepositorio

Pongo “protocolo://” por que git puede trabajar tanto con FTP, como con FTTP, como con RSYNC, o con el que yo trabajo normalmente SSH. Una vez ejecutado este comando, tendremos una copia del repositorio superior, o común en nuestro sistema, en la carpeta donde lo hayamos ejecutado, es decir, en nuestro repositorio privado. Se generaran todos los archivos necesarios, tanto los propios del servidor Git, como los archivos del proyecto en el que estemos trabajando.

Modificando el proyecto:

Una vez tenemos los archivos a nuestra disposición, podemos añadir nuevos archivos al proyecto, podemos eliminarlos del proyecto, o bien, cambiar los existentes. Para añadir nuevos ficheros al repositorio debemos ejecutar:

git add nombredelfichero-o-directorio

Para eliminar los archivos, es algo similar:

git rm nombredelfichero-o-directorio

Una vez hemos añadido, eliminado, o modificado un fichero ya existente en el proyecto, podemos ejecutar el comando:

git status

Este comando nos mostrará cuales son los archivos que se han modificado, añadido o eliminado en la carpeta del proyecto, pero que están pendientes de ser grabados en el repositorio privado. Es decir, para guardar en el repositorio privado los cambios, debemos ejecutar algo como:

git commit -a -m “mensaje descriptivo de esta versión que se esta subiendo”

Una vez ejecutado este comando, nuestro repositorio privado debe tener la ultima versión que existe en nuestro sistema de los archivos. Pero siempre hablando de nuestro repositorio privado. Si ahora ejecutáramos un “git status” deberíamos comprobar que no queda nada por actualizar o añadir.

Sincronizando con el repositorio público:

Una vez que tenemos una versión que queremos compartir con el resto de los usuarios del sistema debemos sincronizar con el repositorio público. Ya que es un repositorio público, pueden darse errores, como por ejemplo que dos personas hayan modificado la misma linea del mismo archivo, y Git no sepa con exactitud cual es la correcta. Para evitar esto, el flujo de sincronización es invertido con respecto a lo que seria lo “natural”. Es decir, seria algo como:

Obtengo versión pública -> Soluciono errores de mezclado -> Actualizo versión pública

Para obtener la versión pública, debemos ejecutar algo como:

git pull [alias del repositorio] [nombre de la rama]

Pues eso, podemos configurar para obtener de varios repositorios diferentes, aunque no es lo común. Ademas de obtener de varios repositorios, podemos obtener de varias ramas, dentro de cada repositorio. El tema de las ramas no lo voy a tratar hoy, así que simplemente pensaremos que existe una sola rama que se llama “master”. La rama “master” se crea por defecto en Git. Tanto, la rama por defecto, como el repositorio por defecto pueden configurarse en el archivo de configuración del repositorio de git, de forma que podríamos trabajar simplemente con un “git pull” a secas si lo tenemos todo bien configurado.

Una vez obtenida la información del repositorio público, Git nos alertará en el caso de existir discordancias entre las versiones, y no nos dejara publicar hacia el servidor público hasta que las resolvamos. Una vez resueltas las discordancias, debemos hacer un commit, tal y como explicamos antes, y para terminar y subirlo al servidor público, debemos ejecutar un:

git push [alias del repositorio][nombre de la rama]

Si todo ha ido bien, el servidor público de Git debe tener nuestra versión del proyecto como la ultima versión.

Resumiendo:

El flujo natural de trabajo que yo sigo es el siguiente:

Al iniciar a trabajar: git pull para obtener la ultima versión de todas.
Editas, añades(git add) o eliminas(git rm) los archivos que sean.
Comprobación de que se ha cambiado con un git status, si falta algo por cambiar, volvemos al paso anterior.
Sincronizas con tu servidor privado con un: git commit -a -m “mensaje”
En el caso de querer actualizar el servidor público:
Obtenemos la ultima version de nuevo: git pull
Resolvemos las incoherencias entre las versiones
Comprobación de que se ha cambiado con un git status, si falta algo por cambiar, volvemos al paso anterior.
Hacemos un commit a nuestro repositorio local
Sincronizamos hacia el servidor público con: git push.

No soy ningún experto en Git, y he obviado muchas cosas, como las ramas (branchs) o mas información sobre la configuración de los repositorios remotos (origenes). Puedes consultar muchísima mas información, y mucho mas correcta y precisa en las páginas de información de Git. Y si observas que cualquier cosa es incorrecta o puede ser explicada de mejor forma, no te cortes y compártelo en los comentarios.

Ya os he comentado en alguna ocasión que es el SSH, y por que es tremendamente útil para comunicarse entre los diferentes dispositivos. Hoy toca aprender a configurar SSH en nuestro iPhone una vez hecho el Jailbreak. Aunque pueda parecer complicado, nada mas lejos de la realidad:

Instalando lo necesario:

Para poder acceder a nuestro teléfono mediante SSH necesitamos un servidor instalado. En Cydia podemos encontrar OpenSSH, uno de los servidores mas populares para todas las plataformas, tanto Windows, como Mac OS X o Linux. Ademas, OpenSSH, viene en los repositorios por defecto de Cydia, así que solo tendremos que buscarlo e instalarlo.

Recopilando la información necesaria:

Para conectarnos por SSH necesitamos conocer la dirección a la que realizar la conexión. La podemos obtener de múltiples formas, podemos consultarla en Ajustes->Wifi->Datos de configuración de la red wifi a la que estemos conectados (flecha azul). Debemos apuntar la dirección IP. También podemos consultarla si tenemos instalada la aplicación SBSettings (disponible en Cydia también), simplemente accediendo a ella. Si nos gusta el mundo de la linea de comandos, también podemos instalar el paquete network-cmds del repositorio Telesphoro Tangelo, y si tenemos alguna aplicación de terminal, podremos ejecutar ifconfig y similares.

Conectarnos via SSH con nuestro iPhone:

Para ello necesitaremos un cliente de SSH, en el dispositivo desde el que queramos conectarnos con nuestro iPhone (servidor). Dependiendo de la plataforma en la que trabajamos tenemos diferentes alternativas:

Windows: Los mas populares son Putty, para acceso a una terminal, y Winscp para acceder al sistema de ficheros.

Mac OS X: Trae por defecto un cliente ssh que puede ser ejecutado desde terminal simplemente escribiendo ssh nombreusuario@host. Para acceder al sistema de ficheros del servidor ssh, podemos utilizar clientes para SCP o SFTP como Cyberduck. Una gran alternativa gratuita.

Linux: Al igual que en Mac OS X, podemos utilizar la terminal para acceder mediante ssh a nuestro telefono. Para acceder al sistema de ficheros podemos utilzar cualquier cliente que nos proporcione soporte para SFTP, como Filezilla, o cualquier otro.

Una vez hemos elegido como conectarnos, debemos saber cuales son nuestro nombre de usuario y contraseña. Esto puede variar dependiendo del sistema mediante hayamos hecho Jailbreak, pero lo normal es que el Jailbreak nos haya dado acceso como “root” con la contraseña “alpine”.

Seguridad:

Como es evidente, una muy buena medida a tomar en cuanto configuremos nuestro servidor SSH en el teléfono es cambiar la contraseña del usuario root, ya que si mantenemos el SSH activado cualquier usuario podría acceder a nuestro teléfono con privilegios de super usuario.