Joaquín

Syndicate content
Updated: 5 hours 55 min ago

Crear un nuevo proyecto compartido en git

9 December, 2008 - 21:23

Aquí en la oficina hemos estado utilizando git desde hace ya algunos meses. Una de las cosas que nos daba más flojera hacer era crear repositorios públicos que pudiéramos compartir varios compañeros aquí en la oficina. Los pasos que vienen en el Manual de git para crear un repositorio público son algo tediosos, porque involucran clonar tu repositorio localmente y después copiarlo a la ubicación pública, lo que puede ser muy pero muy tardado si tu repositorio es grande y tu ubicación pública está en otro servidor.

Hace poco, en github encontramos una alternativa diferente para hacer esto, en donde primero creas el repositorio vacío en tu ubicación pública y después "empujas" tu proyecto desde git.

  1. Crear una carpeta vacía para tu proyecto en la ubicación pública

    tu@public:$ cd /var/cache/git tu@public:$ mkdir my-new-repo.git
  2. En esa carpeta creas un repositorio vacío (bare) de git

    tu@public:$ cd my-new-repo.git tu@public:$ git --bare init
  3. Y finalmente, desde tu repositorio local creas un canal remoto para git y empujas tu proyecto:

    tu@local:$ cd existing_git_repo tu@local:$ git remote add origin tu@publico:/var/cache/git/my-new-repo.git tu@local:$ git push origin master

Y eso es todo, ahora git copiará todos tus archivos a través de la red de manera más eficiente que si utilizaras ftp o scp. Enjoy!

Categories: Planeta Axai

Usando wget para bajar canciones o imágenes

5 December, 2008 - 15:24

Un cliente me tiene que mandar varias imágenes (logotipos, fotos) para poner en el sitio web que les estamos haciendo y lo que se le hizo más fácil fue subirlo todo a una carpeta en el servidor web que tienen contratado. Me dice que tiene más cosas y que las va a ir subiendo durante la semana.

Yo quiero bajarlo todo, pero que flojera hacerlo archivo por archivo. Y luego queda el problema de estar revisando la página por archivos nuevos. Tanto trabajo manual va a reducir mi productividad y no podré estar checando mi Google Reader. Por suerte estamos en linux ;-)

GNU/Linux tiene una herramienta que queda como anillo al dedo para este tipo de tareas y se llama wget. Sirve para bajar archivos de Internet y soporta HTTP, HTTPS y FTP. Como dice en su documentación, sus principales ventajas son:

  • que no es interactivo, lo que permite utilizarlo sin necesidad de intervención por el usuario ;-)
  • te permite continuar descargas canceladas (para cuando se te cae la conexión por usar la wifi)
  • sabe distinguir entre archivos que ya bajaste y los nuevos de la página
  • es recursivo (te podrías bajar todo un sitio web completito con un solo comando)

Entonces, manos a la obra.

wget -r -l1 -np -nd -A.jpg,.png,.gif -N http://dominiodelcliente.com/folder_de_imagenes/

Este comando lo que hace es:

  • -r. bajar todo lo que este en la dirección recursivamente, es decir, seguir todas las ligas que aparezcan en la página (recursive)
  • -l1. pero sólo hasta un nivel de recursividad, es decir, sin seguir las ligas que aparezcan en las otras páginas que se baje (level 1)
  • -np. Sin bajarse los archivos de carpetas en niveles superiores (no parent)
  • -nd. Bajandolo todo en un sólo directorio (no directories)
  • -A. Bajando solamente los archivos que terminen en .gif o .png o .jpg. (Accept)
  • -N. Y bajando solamente los archivos nuevos que no existan ya en la carpeta a menos que el del servidor sea más nuevo

Este archivo lo puedo correr una vez al día, o ponerlo en el cron y me bajara cada vez los archivos nuevos que vaya encontrando. Chido.

Todo esto fue fácil de averiguar gracias al poder de google, este buen tutorial escrito en inglés y el man page de wget.

Categories: Planeta Axai

Me robaron mi bicicleta

2 December, 2008 - 19:36

Me robaron mi bicicleta hace unas cuantas semanas, de hecho hace algunos meses ya. Es muy triste porque realmente me gustaba poder venirme en bici a la oficina, ahorita no hago mucho ejercicio que digamos.

Normalmente metía la bicicleta a un patio que tenemos en el departamento (estamos en el primer piso ;-), pero ese día la dejé afuera de la oficina. Ya la había dejado ahí otras veces, y no me preocupaba demasiado porque para entrar a los departamentos hay una reja que normalmente esta cerrada, pero no siempre. Y al parecer, ocurrió lo que dice ese viejo adagio: la ocasión hace al ladrón. Y alguna persona que pasó por ahí, vio la bicicleta sin cadena, la reja abierta, y lo demás es historia...

No creo que este sea motivo para que mi confianza en la humanidad se vea disminuida, sino más bien un fuerte recordatorio de que los tiempos que vivimos son muy gachos, y la mucha gente siente que tiene que aprovechar cualquier oportunidad que se le presente (sea esta buena o mala). ¿O al final será que ambas cosas son lo mismo?

leer más

Categories: Planeta Axai

Free Geek

20 November, 2008 - 11:19

Este es un refrito de un email que mande hace algún tiempo. De hecho estoy publicando en este blog varios de esos correos que solía mandar para no perderles el rastro.

Hace poco me tocó ver un video de una organización muy chida llamada Free Geek. Es una organizaciones de fines no-lucrativos que básicamente reciben computadoras viejitas de gente que ya no las va a usar, y las venden a precios bajos, o las dan a quien las necesite de a grapa, o las reciclan, además dando cursos y otras cosillas. En realidad creo que el video lo dice mejor que yo:

En mi grupo de FEFUs ya lo vieron, y a varios de los que vamos de misiones al cerro del 4 nos latió mucho la idea. A muchos nos gustaría poner algo así (a mi me encantaría). Sólo que ciertamente requiere que le dediques tiempo y algo de lana.

Me he puesto a investigar y estos compas de free geek ayudan a formar nuevos free geeks. Al que le interese aqui les pongo las ligas (en inglés) de free geek donde hablan más acerca de cómo formar tu propio free geek:

http://wiki.freegeek.org/index.php/Free_Geek_Startups
http://wiki.freegeek.org/index.php/Free_Geek_Startup_Franchise_Application
http://wiki.freegeek.org/index.php/Final_Application_for_Ongoing_Status_as_a_Free_Geek_Franchise

Esta última es una liga del cuestionario final que se espera que llenes para hacer oficial a tu nuevo free geek, claro que para llenarlo pues hay un proceso en el que ellos mismos te pueden ayudar.

Si a alguien le interesa poner algo así en Guadalajara, por favor escríbanme un correo porque me gustaría ayudar =P. Yo lo tengo como proyecto en espera desde hace algún tiempo jeje.

leer más

Categories: Planeta Axai

Omitir archivos de svn al buscar con grep

29 October, 2008 - 12:32

Usar linux es una maravilla para un programador. Existen muchos comandos que te facilitan muchas cosas de la vida diaria. Uno de ellos es grep, que te permite buscar alguna cadena o patrón en los archivos de tus proyectos. El uso normal se ve así:

grep -r 'function setFormatName' lib/widget

Para buscar recursivamente (-r) en todos los archivos dentro de lib/widget donde esta definida la funcion setFormatName.

Lamentablemente, cuando usas subversion para algún proyecto, terminas con un montón de carpetas .svn con cadenas similares a la que buscas....

Ahora, en internet hay varias maneras sugeridas para evitar buscar en estas odiosas carpetas de svn (una de las razones por las que prefiero mil veces git, que solo tiene una carpeta .git en el root de tu proyecto.... pero me estoy desviando). La que más me gustó, porque no involucra opciones confusas que tienes que recordar cada que escribes el comando, es agregar unas opciones a tu archivo .bashrc y listo ;-).

GREP_OPTIONS="--exclude=\*.svn\*" export GREP_OPTIONS

Después de agregar eso a tu .bashrc sólo corre el comando source .bashrc para que tomen efecto (o reinicia tu sesión). También puedes leer las instrucciones en inglés aquí.

Otra opción es mejor usar ack, funciona en windows y linux por igual... pero eso lo dejaré para otra ocasión.

leer más

Categories: Planeta Axai

¿Cómo explicar la recursión?

19 September, 2008 - 12:59

Encontré navegando por reddit un muy buen post definiendo la recursión que les comparto por aquí, traducido al español:

Un profesor de ciencias computacionales una vez explicó la recursión así:

Había un niño que no podía dormir, así que su mamá le contó la historia de una ranita, que no podía dormir, así que la mamá de la ranita le contó la historia historia de un oso, que no podía dormir, así que la mamá del oso le contó una historia de una comadreja... que se durmió. ...y el osito cayó dormido; ...y la ranita cayó dormida; ...y el niño cayó dormido.
Categories: Planeta Axai

Crear un calendario de grupo con drupal

10 September, 2008 - 15:03

Este tutorial es para sitios en drupal que utilizan el módulo de organic groups para crear comunidades virtuales. Al terminar el módulo tendrás una página donde se mostrarán únicamente las actividades específicas a tu grupo en forma de calendario.

leer más

Categories: Planeta Axai