Gastón Ramos

"La mayoría de las gaviotas no se molesta en aprender sino las normas de vuelo más elementales: como ir y volver entre playa y comida. Para la mayoría de las gaviotas, no es volar lo que importa, sino comer. Para esta gaviota, sin embargo, no era comer lo que le importaba, sino volar. Más que nada en el mundo, Juan Salvador Gaviota amaba volar".

Git tip: Deshacer un “git add”

Siguiendo con la traducción del man de git-reset:

$ edit                                     (1)
$ git add frotz.c filfre.c
$ mailx                                    (2)
$ git reset                                (3)
$ git pull git://info.example.com/ nitfol  (4)

1. Estás felizmente trabajando en algo, y vez que los cambios en esos archivos están bien. No querés seguir viéndolos cuando hacés “git diff”, por que planeás trabajar en otros archivos y cambios mientras que estos archivos te distraen.

2. Alguien te pide que hagas “git pull” y los cambios son dignos de ser mergeados.

3. Sin emargo ya ensuciaste el índice (tu índice ya no apunta al HEAD commit). Y sabes que el pull no va a afectar a frotz.c o filfre.c, entonces reviertes el índice para estos dos archivos. Los cambios en el directorio de trabajao siguen ahí.

4. Entonces podés hacer pull y merge, dejando que los cambios de frotz.c y filfre.c sigan en el directorio de trabajo.

Nota del traductor:
La verdad excelente, no sabía esta forma de usar reset :).

Git tip: Deshacer un merge o pull

Lo que sigue es una traducción hecha por mí de una parte de “man git-reset”, es útil por ejemplo cuando estamos en una rama local
y hacemos git pull y tenemos un conflicto y en el caso de que nuestros cambios locales no nos interesen:

               $ git pull                         (1)
               Auto-merging nitfol
               CONFLICT (content): Merge conflict in nitfol
               Automatic merge failed; fix conflicts and then commit the result.
               $ git reset --hard                 (2)
               $ git pull . topic/branch          (3)
               Updating from 41223... to 13134...
               Fast-forward
               $ git reset --hard ORIG_HEAD       (4)

1. Intentar actualizar desde el upstream resultó en montón de conflictos; vos no estás listo para perder un montón de tiempo en mergear ahora, entonces decides hacer esto más tarde.

2. “pull” no ha hecho el merge commit, entonces “git reset –hard” que es sinónimo de: “git reset –hard HEAD” limpia el desorden desde el índice en el working tree.

3. Mergear el topic-branch en el branch actual resultó en un fast-fordward.

4. Pero decidiste que el topic- branch no está listo para abrirlo al público aún. “pull” o “merge” siempre dejan el tip original del branch actual en ORIG_HEAD, entonces haciendo reset hard hacia este va a dejar tu archivo de índice y el working tree de nuevo en ese estado, reseteando el tip del branch a ese commit.

Qué es el archivo índice de git?


fast-forward-git-merge

Pasión, el mundo de los hackers

Hace un tiempo bastante considerable tuve que ir a trabajar a las oficinas de una empresa de desarrollo bastante conocida de USA, era mi primer viaje fuera del país. Acortando todos los trámites del viaje Santa Fe – Bs As – Bs As – Estados Unidos, en realidad fué mucho más complicado dado que mi vuelo tenía 3 combinaciones. Al llegar a la empresa en cuestión me presenté y me llevaron con dos tipos, no importa los nombres, pero eran dos tipos con cargos mas o menos altos ahí adentro, ellos me preguntaron que era lo que yo hacía, mi experiencia, entonces les conté un poco lo que me acordé y lo que pude explicarles en el idioma de ellos (inglés) que en ese momento creo que era bastante peor que mi nive actual que ya es bastante malo.
Luego me llevaron al lugar dónde se trabajaba, que era una oficina gigante con más de 50 personas trajando juntas (primer punto en contra). La cuestión que después de que estos dos grandes genios de la programación decidieran cual era el equipo más adecuado, yo ya estaba laburando ahí. Fueron pasando los días y yo pasaba mi tiempo adentro de una oficina muy lujosa, dónde podías desayunar una comida espectacular si llegabas a las 8:30, dónde había heladeras con frutas, snacks y gaseosas gratis todo el tiempo, programando con tipos que no conocía.
La forma de trabajo era la siguiente: Llegábamos y teníamos una reunión stand up general que terminaba con un aplauso único motivador, en esta reunión se comentaban las cosas que de interés para todos los equipos, cosas nuevas, problemas solucionados, etc. luego de esta reunión cada equipo se iba la reunión stand up particular, con la típica estructura (qué hice ayer, que voy hacer hoy, que problemas tuve) luego de la stand up se armaban los pares, a… no les dije? en esta empresa se trabajaba de a pares siempre, y trabajar solo en algo era algo raro y hasta te diría no muy bien visto. Luego de estas reuniones
existían otras, de las que me acuerdo: IPM, Retro, Post-Mortem, Charlas de mediodia (durante el almuerzo), seguramente me estoy olvidano varias.
Continuando covenciendo-hackers-600x310n las prácticas, que eran: Test Driven Development (No tan test driven), poco y nada de refactoring, diría más nada que poco, miedo a cambiar, jugar al ping pong (esta es la que sí me gustó) etc.
Ahora bien, pese a todas estas prácticas de desarrollo “ágil” y todas las cosas extras, comida, ping pong, guitarra, charlas, etc, etc.
Hay algo que no pude encontrar en ninguna de las personas que trabajaba ahí y es Pasión, podemos hacer todas las prácticas que se nos antoje pero si no estamos entusiasmados y en consecuencia motivados con lo que estamos haciendo es muy difícil que las cosas salgan bien, el código que escribían ahí era un código de mierda, nadie estaba entusiasmado por mejorar nada y ni que hablar de cambiar una gema o intentar un refactoring.
Parece que esta empresa tiene buen marketing, hay otras empresas que intentan hacer el mismo proceso con la misma cantidad absurda de reuniones, con horarios extremadamente duros, estructuras, jefes, cosas que no se pueden tocar. Amigo, el mundo de los hackers no funciona así y eso se ve claramente reflejado en el código.

Pinocha

Hoy no estoy muy inspirado para escribir, debe ser por que estoy perdiendo un poco la frecuencia, y como todos sabemos, la práctica hace al maestro. Esta semana fue un poco distinta a las anteriores, un poco distinta por que a Martina le regalaron un cordero de aproximadamente 2 meses, es realmente un animal muy lindo y extremadamente bueno, me dijeron que se domestican como un perro y parece que es verdad por que ya al 2do día de estar en casa, el animal viene conmigo cuando lo llamo y “llora” cuando me alejo, le construí un lugarcito al lado del gallinero para que duerma y de paso no sienta sola.
Cuando le preguntamos a Martina como se iba a llamar la cabra me dijo: “Pinocha”… medio raro el nombre pero bueno es el nombre que ella eligió. Los corderos toman la leche hasta que tienen mas o menos 10kg, eso es lo que leí buscando un poquito, pero Pinocha no quiso agarrar la mamadera, intentamos varias veces pero nunca la agarró, eso sí, come pasto fresco todo el día, cada vez que la dejamos afuera (atada en un árbol con una soga larga) come y come, me pregunto cuanto puede vivir una oveja y cuanto puede llegar a pesar, supongo debe depender de la raza, que todavía no sé cual es y no sé como podría llegar a detectar.
Estoy pensando que en futuro probablemente que prepare un lugar un poco más grande dónde pueda tener más gallinas y dónde Pinocha pueda pastorear tranquila, a lo mejor poniendo un cerco bien copado en la parte sur-este de casa, este lugar además del cerco tendría que tener una parte techada para duerman las gallinas y para Pinocha.

Pinocha y Yo

Mi galería

Mi galería mide aproximadamente 10×3, tiene grandes ventanales con vidrios transparentes y de colores, dan hacia el oeste la construimos para que no de tanto el sol a la casa a la tarde en verano fué como el paso siguiente después de construimos algo más o menos habitable para poder venirnos a vivir acá. En realidad es un poquito más que una galería por que de a poco la fuimos cerrando, le agregamos un asador, una mesada y una piletita, entonces podemos usar ese espacio como quincho. Hoy mientras estaba sentado mirando a Pinocha, el cordero que nos regalaron hace un par de días, pensaba: – “Qué bueno que hicimos esta galeria con tantas ventas, puedo ver el patio completo desde la galería. “En invierno a veces prendo el fuego del asador y nos quedamos ahí, está buenísimo por que el calor que da es espectacular.

Ahora bien. según wikipedia una galeria es una habitacion generalmente larga que comunica varias áreas, mi galería actualmente no comunica muchas áreas, así que esto es algo a mejorar, quizás para un futuro no muy lejano, comunicando la puerta trasera de mi cocina con el frente de la casa con lo cual podría ir desde el quincho (galería) hasta el living por afuera sin mojarme cuando llueve o sin tocar la tierra/pasto, puede ser importante por ejemplo si queremos hacer un asado y comer en el living, entonces si alguien quiere estar tranquilo en la cocina podría hacerlo.

Mi Galería

This is what I do

Cuando era chico tenía gustos musicales bastante variados, podía escuchar Rata Blanca, Soda Stereo, Phill Colins, etc pero me acuerdo hubo un tema que me gustó muchisimo y ese tema es “Karma Chameleon” de Culture Club, me acordé de este por que ayer leía un artículo en una revista y recomendaban el último disco que se llama “This is What I do”. Acá les dejo un link dónde hay dos temas en vivo de Cuture Club:

Y acá les dejo el link del torrent de dónde pueden descargar el último disco “This is what I do”

Descargar Torrent

Mentalidad fija o mentalidad en creciemiento

Anoche terminé de escuchar el podcast de Satori Time acerca de este tema de la mentalidad fija o mentalidad en crecimiento, la verdad que me encantó y voy a explicar esto de forma muy breve: en el podcast da un ejemplo y es el siguiente: Suponte que vas a la facultad a rendir un exámen y estando en el mismo te vas sin hacer nada, después llegás a dónde dejaste tu auto estacionado y ves que tenés una multa por estar mal estacionado, si tu pensamiento es: “- El mundo está contra mío” entonces tienes una mentalidad fija; En cambio el pensamiento de una persona con mentalidad en crecimiento sería: “Tengo que estudiar más para el próximo exámen y tengo prestar más atención a dónde estaciono el auto”.
Desde hace un tiempo, probablemente unos años atrás, vengo intentando tener pensamientos más positivos acerca de las cosas “negativas” que me pasan y vez de renegar, intento hacer algo para que eso negativo cambie les digo no es para nada fácil, pero es una muy buena forma de administrar la energía, por que renegar y ser negativo produce un desgaste de energía totalmente innecesario. Un ejemplo que me viene a la mente acerca de mí mismo es: desde hace varios años que vengo teniendo pensamientos negativos acerca de mi vida “musical” por que hace mucho tiempo que no toco en una banda y por que cada vez que intenté formar parte de alguna siempre se pinchaba por algo generalmente ajeno a mí, entonces ahora cambié ese pensamiento y empecé a tocar más la guitarra, sacar temas que me gustan y cantar, por más que no tenga una banda igual estoy en movimiento.
Sorprendentemente hace poco menos de dos meses un amigo que toca la batería me llamó para que toque con él, y después se sumó un bajista, además ya aprendí 4 o 5 temas de los que vine sacando sólo, así que la mentalidad en crecimiento y el pensamiento positivo dan frutos!
Acá les dejo el link al podcast de Satori Time, que me encanta:

http://satoritime.com/

Este es el episodio que habla de la mentalidad fija o mentalidad en crecimiento:

http://satoritime.com/10/

El perro y la gallina

La otra vez pasé las gallinas de la jaula en donde crecieron desde pollitos al gallinero más grande, por que ya no entraban, en su nuevo lugar iban a estar más cómodas. Agarré primero una y después otra y una vez dentro de su nuevo hogar noté que estaban terriblemente asustadas las dos y al rato ví que las otras gallinas empezaron a atacarlas, le daban picotazos y las increpaban de la forma que podían, en el momento pensé “ya se van a acostumbrar los dos bandos” y las dejé, nos fuimos a hacer las cosas del día a día… Cuando volvimos a la tardecita había una gallina de las que estaban en la jaula (las foráneas) afuera del gallinero, las otras la increparon tanto que hiceron un hueco y lograron escaparse, el problema es que afuera de la jaula había alguien esperandolás…

marrow

Herramientas del día a día

Durante mi jornada de trabajo de programador, uso varias herramientas, algunas las uso desde hace mucho otras no tanto, por ejemplo, para abrir y editar archivos uso emacs, que todavía no lo sé manejar como quisiera, pero es altamente poderoso.
Otra cosa que uso es screen para multiplexar sesiones de bash en una misma terminal.
Además de estas dos cosas uso mucho git, y en particular estoy aprendiendo a usar Magit que es un modo de emacs para git.
Acá dejo unos links útiles más que nada para tenerlos para mí, todos en un sólo lugar.

Emacs card reference:

http://www.gnu.org/software/emacs/refcards/pdf/refcard.pdf

Screen:

http://aperiodic.net/screen/quick_reference

Magit:

http://magit.github.io/documentation.html

Guard:

https://github.com/guard/guard

Chau facebook por una semana…

Esta semana voy a probar hacer un pequeño experimento, es muy simple, no voy a usar facebook por una semana, para absolutamente nada, lo voy a desinstalar del celular y no lo voy a usar en la compu. Tengo permitido postear los artículos de mi blog, por que esto se hace forma automática y no hace falta abrir facebook para esto, el experimento comienza hoy… me voy a desinstalar facebook chau :)

 

4532958301_8cbb417996_m

Follow

Get every new post delivered to your Inbox.

Join 465 other followers