Usar máquinas virtuales para desarrollar
9 de enero, 2012 // Etiquetas: desarrollo, Programación, virtual machine // No hay comentarios
Tardaras un rato hasta que lo montes, la primera vez. Creo que es el único inconveniente! Y cuando lo hagas varias veces, será cada vez más rápido.
- Puedes montar un entorno de desarrollo para cada proyecto que necesites, que sea un clon de tus máquinas de preproducción y producción. Así tendrás menos problemas de entorno.
- Puedes mover la máquina donde quieras y montarla en otros servidores si quieres (proveedores en la nube, por ejemplo). O puedes compartirla con tu equipo de desarrollo para que todos trabajéis sobre el mismo entorno, independientemente de si usan linux, windows o mac.
- Puedes trastear todo lo que quieras, sin enmarronar tu máquina fisica, que se queda limpia y sin problemas (no quieres ver un mac con mysql, apache, nginx, tomcat, lucene, nosql, memcached, sendmail, mongrel, xdebug haciendo profiling, etc… todo a la vez).
- Puedes emular entornos reales. Por ejemplo, si tienes una máquina de produccion para BD y busquedas, y otra para frontal, puedes tener dos virtuales, una con cada cosa, y levantarlas o tirarlas a necesidad.
- Si formateas el ordenador, la máquina sigue estando ahi, con sus backups o todo lo que te de la gana

- ¿Se te ocurre alguna mas?
- Virtual box, gratis y molón. Sino, VMWare, u otras opciones comerciales
- Descarga ubuntu server. Si te ves con pelotas, la última debian (aunque ya no es como los viejos tiempos…). Si además quieres dedicarle tiempo, compila tu mismo los paquetes, recompila el kernel y pasa una noche de las divertidas de verdad que tanto nos gustan.
- En principio ya tendrás todo montadito, apache, php, mysql, etc… sino, apt-get y a molar. Monta los entornos de desarrollo dominios que necesites en tu apache, nginx o el que toque.
- Monta una carpeta compartida de tu máquina real a la virtual, donde tengas el código de tu aplicación. Tu programas en tu windows (o tu mac), ejecutas (o compilas) en la virtual. Si haces algún deploy con ant o similares, o maven, en la máquina virtual.
- Desde tu maquina fisica, accedes a la IP de la virtual. pero primero le añades un host (local.midominio.com, o devmidominio.com por ejemplo, el segundo caso es mejor si tu proyecto trabaja con subdominios).
- El resto, igual que siempre. Git parriba, git pabajo (o SVN), no necesitas hacer deploy porque la máquina virtual de DEV coge el código de trabajo actual de tu repositorio, pero es (teoricamente) la misma configuracion que tus servers de preprod y prod
- Si tienes un problema, sabes que al menos tienes coherencia de servers (y no tienes problemas porque en una máquina tienes php5.1 y en otra 5.2 con un parche raro de ubuntu que no hay en redhat, por ejemplo).
- A programar!
Abriendo vías de negocio
6 de abril, 2010 // Etiquetas: desarrollo, paraiso, Programación, trabajo // 2 Comentarios

Interesados, ya saben
Las ocho leyes para contratar gente de IT
19 de noviembre, 2009 // Etiquetas: internet, IT, RRHH // No hay comentarios
1) Always ask a person, “What have you shipped in the last two years?”
That’s all you should really ask. If they haven’t shipped anything in
the last two years, ask, “So what’s your excuse?”
2) The “job-as-life phase” lasts for maybe ten years. Nab ‘em when
they’re young, and make sure they never grow old.
3) You can’t trust a dog that’s bitten you. You wouldn’t want to
employ someone who you could steal away from another company in the
middle of a project.
4) The industry is made up of either gifted techies or smart
generalists – the people who were bored with high school – the sort of
people the teacher was always telling, “Now, Abe, you could get As if
you really wanted to. Why don’t you just apply yourself?” Look for
these people – the talented generalists. They’re good as project and
product managers. They’re the same people who would have gone into
advertising in 1973.
5) One psycho for every nine stable people in the company is a good
ratio. Too many maniacally-driven people can backfire on you. Balanced
people are better for the long-term stability of the company.
6) Start-up companies beware: kids fresh out of school invariably bail
out after a few years and join the big tech monocultures in search of
stability.
7) People are most ripe for pilfering from tech monocultures in their
mid- to late 20s.
The upper age limit of people with instincts for this business is
about 40. People who were over 30 at the beginning of the late 1970s. PC revolution missed the boat; anyone older is like a Delco AM car radio.
Microserfs – Douglas Coupland
Massive high performance – facebook
4 de noviembre, 2009 // Etiquetas: escalabilidad, internet // No hay comentarios
Tengo que recomendar ver el video de la siguiente conferencia, a todos aquellos que trabajen para desarrollos web, o que estén interesados en cómo estos funcionen.
En esta conferencia, Jeff Rothschild nos abre los ojos sobre cómo facebook maneja su ingente cantidad de datos a nivel de escalabilidad. Muchas lecciones que nunca se me habrían ocurrido.
Web seminar for high perfomance facebook.
¿Por qué sois programadores?
6 de agosto, 2009 // Etiquetas: Programación, vida // 1 Comentario
Ocurre de vez en cuando, que uno se pregunta… ¿Cómo he llegado aquí?
En mi vida, parte de mi jornada la dedico a programar. Aunque ahora tienda más al desarrollo de negocio y mi vena “empresario” tire más, quiero mantenerme a pie de cañón. Quiero seguir programando, pero… ¿Por qué? ¿Cómo he llegado a esto?
Haciéndo memoria, recuerdo que de pequeño quería ser paleontólogo. Mucho antes de parque juráisco, de hecho. Sin embargo mi padre apareció un día por casa con un spectrum (supongo que sería un geek de la época). Lo malo (o lo bueno), es que antes de pensar en chicas, programaba mejor que jugaba al fútbol (esto era fácil, la verdad), así que inconscientemente, fui gestando esa profesión en mi interior.
Ahora me pregunto: ¿De verdad es el trabajo de mi vida, o simplemente me autoconvenzo fantásticamente?
Ocurre que más o menos hasta nuestra generación, hemos vivido el nacimiento-crecimiento de la profesión y su “semi-profesionalización”. Hemos vivido carreras de informática (aunque no las hayamos cursado), y hemos sufrido consultoras. Pero la pregunta es: ¿Cómo nos entró el virus inicial?
Algunas ideas de por qué hacerse programador:
- Es una forma de ser artista sin tener ni idea de arte. Puedes CREAR.
- Puedes socializar y conocer a las personas, si llegar a llamarlas tus amigos
- Whenever – Whatever: Movilidad como en ningún trabajo.
- Es relativamente fácil encontrar trabajo pagado decentemente, en comparación con otras profesiones. Ahora, hay trabajo
- No es un trabajo de riesgo: Salvo en contadas excepciones, tu responsabilidad no va más allá de un par de pantallas azules, o de fatal errors en la aplicación.
- No hay barreras de entrada. Cualquiera puede ser programador. Ser un fiasco, o convertirse en una estrella depende de uno mismo.
- Hay retos, pero suelen ser con uno mismo. Impuestos por nuestro ego. “Esto sale por mis narices”.
¿Por qué sois programadores? ¿Si pudiérais ser otra cosa, qué seríais?
El ingeniero y la resolución eficiente de problemas
17 de julio, 2009 // Etiquetas: optimizacion, rentabilidad, travel salesman // 3 Comentarios
Hablemos del problema del vendedor viajero (Travel Salesman problem). Sin entrar demasiado en teoría computacional, digamos que es un problema NP-Completo, que ha dado muchos dolores de cabeza a matemáticos, programadores e ingenerios en general. Veamos por qué.
Supongamos que somos un comercial, que a lo largo de un mes, tiene que recorrer 50 ciudades distintas alrededor del mundo. Cada conexión entre ciudades tiene un coste (ya sea por tiempo, o por coste del billete de avión). ¿Cómo ayudamos al pobre comercial a trazar su ruta de forma óptima? Debería hacer Madrid – Londres – Nueva York – Los Ángeles – Pekin, o quizá Madrid – Nueva York – Los Ángeles – Pekin – Londres?
La solución parece evidente a simple vista, pero en realidad no es nada trivial. Y la solución de fuerza bruta es válida para 4, 5 o 6 combinaciones, pero no más (en combinatoria, sería el factorial del número de ciudades). Se puede interpretar como un problema de grafos, pero cuidado! No son algorítmos de búsqueda del camino más corto! Dijsktra no es válido aquí, ya que nuestro comercial tiene que recorrer TODOS LOS PUNTOS.
Bien, en este tipo de problemas, se suelen utilizar soluciones heurísticas. Es decir, no será la solución óptima algorítmica al 100%, pero si una “válida” que tenga un porcentaje de error probablemente menor del 5%. No será la óptima en cuanto a resultado, pero si en cuanto a otros factores, como tiempo de computación, coste para generar la respuesta, y dolores de cabeza del ingeniero.
¿A qué viene esto?
En la empresa nos encontramos todos los días con problemas del viajero comercial. Y no me refiero a que los comerciales estén todo el día de parranda (que lo están), sino a que muchos de los problemas que nos encontramos no requieren nunca la solución perfecta. La respuesta óptima. Sino que dedicando menos tiempo, se puede llegar a una solución más rentable e igualmente válida. Muchos programadores pecan de esto. De ser extremadamente puristas, tener el algoritmo perfecto, la solución infinita, cuando en realidad, el objetivo estaba mucho más abajo que todo eso.
Así que recuerden: No busquen solo lo óptimo, sino también lo rentable y lo eficiente.
Algunos recursos:
¿Eres un programador demasiado geek?
7 de mayo, 2009 // Etiquetas: geek, programadores // 6 Comentarios
Maravilloso artículo – recopilación en devtopics. How to tell if you are a programmer geek. Que como vengo haciéndo en algunas ocasiones, resumo, traduzco y amplío.
- 256 es un precioso número redondo
- 10K no siempre significó 10.000.
- Empiezo a contar en 0, y termino siempre con uno antes que los demás.
- Termino las frases siempre con punto y coma.
SG: Y tiendo a hacer sangrías e indetar cuando no hace falta. - Escribo “igual” como ==, distinto !=.
SG: Y no me asusto con === - Puedo teclear { llaves } si mirar al teclado.
SG: Y el $ de mi teclado está muy gastado. Por suerte, más que el % - A las frases las llamo “strings”.
SG: Si te encuentras hablando de tu array de cromos panini, entonces tienes un problema. - Uso habitualmente palabras como iteración, contiguo, trivial, versión, array, polimorfismo, parsear y WTF en conversaciones.
SG: Los programadores no “hacemos”. “implementamos”. - ¿Qué idiomas hablo? C#, Java, PHP, Python…
- Uso camelCase para los nombres.
SG: Aunque algunos_prefieren_asi - Leyendo un libro, me frustro cuando no puedo pulsar Ctrl + F para encontrar lo que estoy buscando.
- Me dan ataques de nostalgia cuando pienso en mi antiguo commodore 64, sinclair ZX-81, spectrum o amiga.
SG: Y a pesar de tener un pepino de equipo para los mejores juegos del momento, aún tengo el ejecutable del Wolfenstein - Asumo que la mayoría de la gente ama su trabajo tanto como yo.
- Creo que xkcd es el mejor webcomic que ha existido nunca.
- Tengo más de 1 monitor
SG: Y uno de ellos está en posición vertical. - Tengo más direcciones de correo que pares de zapatos
- Tengo un servidor web en casa
SG: Y descargando 24h - Me envío mails a mi mismo para recordarme cosas.
SG: Y mi bandeja de entrada es una implementación propia de GTD
¿Alguna otra sugerencia?
Jerarquía de los programadores
31 de marzo, 2009 // Etiquetas: jerarquia, programadores // 1 Comentario
Manual 2009 para reconocer consultores – actualizado!
17 de marzo, 2009 // Etiquetas: consultor, consultoria, empresas, matriz 2x2 // 1 Comentario
Si amigos, los consultores, esas personas que llegan a nuestra empresa y sueltan su sabiduría acumulada a lo largo de los años, y que multiplican por números inconsistentes los beneficios de nuestro negocio. Hay muchos tipos, claro. Los consultores de empresa, de marketing, tecnológicos, los pseudo consultores, los gurús, etc. Pero al final todos se pueden dividir en el mismo grado.
Claro, como estamos hablando de consultores, utilizaremos el archiconocido e infalible método de la matriz 2×2, conviértase en guru en 7 minutos. Click en la imágen para ampliar.
Procedamos a describir un poco mejor a los actores del sistema, nuestros distintos tipos de consultores:
- El Pepito grillo: Es la voz de tu conciencia. Te dice lo que deberías hacer pero que él sabe que no puedes. Típico caso: “Deberías comprar esta máquina tan cara y buena, aunque ya se que no tienes presupuesto”.
- El pirata cojo: En homenaje a la canción de Sabina. Solo sabe hablar de sus otras vidas y de lo mucho que ha hecho y la experiencia que tiene. Ejemplo: “Recuerdo cuando fuí crupier en Las Vegas, que tuve un caso similar al tuyo”.
- El experto: Solo sabe de una cosa. Sabe mucho, pero de nada más. Caso: “Para mejorar este proceso tienes que cambiar esto de aquí, no se si te cargarás otros procesos críticos de la empresa, pero lo mío, funcionará”. O también… “a alguien le suena SAP?”
- El Steve Urkel: Cuando algo sale mal, él no la ha cagado. Habrá sido un problema de la implementación, seguro.
- El bibliotecario: Su know-how se basa en una gran colección de libros que no para de recomendar. Probablemente varias veces. Hará referencia a su amistad personal con los autores y lo mucho que le han ayudado en la vida esos libros.
- El bricomanía: Cuando te explica algo parece muy fácil, pero una vez ya no está ahí todo es mucho más complicado.
- El auditor tocacojones: Solo sabe decir lo que tienes mal, pero rara vez aporta una solución práctica. Caso: “Uy uy uy, esto es imposible, no puede ser así, tenéis que cambiarlo”.
Así que ya sabéis amigos. A la hora de gastar el presupuesto de 5 trabajadores en el salario de un consultor que os resuelva la vida, pensáos muy bien si vosotros mismos no podéis hacerlo, y sino, aseguráos de qué tipo lo contratáis.
¿Alguna clasificación más al sistema?
La selección natural del siglo XXI
3 de marzo, 2009 // Etiquetas: darwin, Felicidad, morralla, Negocios // 4 Comentarios
Darwin se está revolviendo en su tumba. Resulta que las especies ya no sobreviven según su capacidad para sobrevivir tal y como se había pensado, sino según su capacidad para evadir la estupidez. Y es que después de cierto tiempo, uno piensa que las personas nacemos estúpidas, y poco a poco, algunos nos quitamos la lacra que supone llevarlo.
Resulta que nos quejamos de lo mal que funciona la sociedad, la hipocresía de la gente, de sus gobiernos, etc. Por ejemplo, los engañabobos de mandar SMSs para conseguir suculentos premios o hacerse rico, o los concursos donde si llamas a un 905 y respondes al color del caballo blanco de san pedro, conseguirás dinerín fresco y sin esfuerzo.
Ya no me meto en si el dinero fácil te dará o no la felicidad, sino en lo fácil que resulta engañar a alguien hoy en día.
La cuestión es, que al fin y al cabo, estos engañabobos son negocios, y como tales no se harían si no fueran rentables. Un programa de mierda, que ocupa 45 minutos entre las 9 y las 10 de la mañana de un día laborable cuesta dinero e infraestructura de montar. Lógicamente no se haría si no tuviera una rentabilidad bien elevada. Por tanto, como dicen en algunos sitios… si me engañas una vez es culpa tuya, si me engañas 11, bueno… igual sigue siendo culpa tuya.
Dialers, SMSs para suscripciónes, príncipes nigerianos que necesitan sacar el dinero de su país, hazte rico con tu móvil, ganáste un coche, eres el visitante 1 millón, conoce chicas calientes cerca de tu casa… La oferta de esta morralla nunca ha faltado, y aunque la prohiban, surgirán nuevos modos, porque siempre hay primos a los que engañar.
Yo he decidido dejar de quejarme sobre esto y, comprender, que, al final, se trata de selección natural. Ellos existirán siempre que los alimenten. Tenemos lo que nos merecemos. Nuestros políticos, nuestra televisión basura, nuestros cotilleos, nuestros timos, etc. ¿Puedes hacer tú algo para cambiarlo?


¡Saludos!. Soy Sergio Gago, aprendiz de todo que da vueltas por Internet, consultor, geek, y viajero. Me gusta internet, los ordenadores, viajar, bucear y tu. Si quieres saber dónde estoy, mira arriba, o contacta conmigo.
Sígueme!