WTF es Sphinx y como se come?

Hoy en una emocionante aventura el mundo de los pokémon les vengo presentando a Sphinx, y ustedes me dirán pero que Pirules es  Sphinx.  Y pues así a descripción de Wiki es:

Sphinx es un motor de búsqueda abierto diseñado con el fin de indexar contenidos de bases de datos”

Actualmente soporta de manera nativa MySQL, PostgreSQL y bases de datos ODBC. Otras fuentes de datos pueden ser indexadas mediante el apropiado filtro XML.

Creo que ustedes pueden adivinar para que podríamos usar Sphinx, no sé proyectos con bases de datos bien gigantes con esa información regada en toda la matrix…😛

Y ahora como se come? (Instala pues)

Pues en este caso la instalación que hare es en MacOs y la haremos con MacPorts (si usted no tiene o no sabe com usarlo😉 aquí te dicen como)

λ eva ~ sudo port install py27-sphinx <-  instala

λ eva ~ → sudo port select –set python python27 <- pone a python 2.7 como el default

λ eva ~ → sudo port select –set sphinx py27-sphinx

y Comprobamos que todo este bien…

λ eva ~ → which sphinx-quickstart

Si quiere instalar en GNU\Linux o Windows aquí

Borrado recursivo en consola

Algo tip rápido, ayer tuve que pasar un repo viejito que tenia con subversion y ahora lo pase a git.. aún que esto creo no afectaría no quería tener un monton de .svn en directorios que ya no me sevirian de nada así que …

#Shell
λ eva ~ → cd mi_directorio/
λ eva ~ → find . -name .svn -print0 | xargs -0 rm -rf

También una solución con la que me tope que es con el mismo comando svn pero este solo sirve obvio si es svn, y con find podriamos aplicarle más usos …

λ eva ~ → svn export repositorio directorio_detino

Recursos: λ eva ~ → man  find

Mal proyecto O Mal jefe?

Hoy quiero expresar mi opinión acerca de lo que pienso es el talento mal aplicado en profesionales de diferentes areas.

Con mi poca o mucha o media  experiencia laboral y mi visión muy probablemente infantil, pero que trata de expresar que por lo menos en sociedades como la que se vivimos muchos de  “Yo soy grande, tu pequeño, Yo estoy bien, tu estas mal” nos lleva a una degradación del trabajo y habilidades de muchas personas.

Algunos ayeres tuve la oportunidad de trabajar para un pequeño intento de proyecto con una diseñadora, era para la creación de un bonito logo, fue algo horrible, el logo, tiempos de entrega, incluso nos dejamos de hablar por un tiempo … y a que fue todo eso?. Hoy puedo decir que la culpa fue mía ya que yo, decidí buscar un diseñador aceptando que mis habilidades no están en el diseño, pero por que entonces si en mi subconsciente acepte esta verdad, al momento de empezar el proyecto me aferre a que se plasmará lo que yo decía y me negaba a aceptar las opiniones del profesional de esa área (la diseñadora), por que?

Y alguno de ustedes al igual que yo en su momento dirá, posiblemente fue una mala experiencia y te topaste con un mal diseñador(a). Pero la realidad es que no fue así, hace poco tiempo tuve la oportunidad de volver a trabajar con esta misma diseñadora para la creación de unas pantallas de una app, esta vez solo le envíe mis bocetos más feos que mis pies y una simple petición: que te quede bonito😛, dije algo así como. “Tu eres la diseñadora, tienes la libertad creativa”

Cuando me envío las pantallas confieso que me encantaron.

A que quiero llegar con esta bonita historia, creo que en México hay mucho el problema que mencionaba al principio la empresas contratan a profesionales, a gente dedicada a cierta rama y la mayoría de las veces quieren decirnos que hacer y desde mi muy humilde punto de vista esto esta terriblemente mal, para que contratas a expertos en X cosa si tu que obviamente no eres experto en esa rama le va a decir como debería de hacer las cosas y aún pero decirle…

Has esto, o aquello es bien fácil no? cuanto tiempo te tardas? 1 semana dale … si lo sacas antes mejor.

Dudes neta WTF ?? si van a contratar a alguien para un proyecto X o Y denle la liberta de hacer su trabajo Y si no haces no lo culpes cuando las cosas no hayan salido como querías, por que después de todo fuiste tu el que dijo como hacerlas.

steve-jobs-frase

PD: No estoy seguro si en verdad lo dijo Steve, pero la frase de al imagen es muy cierta.

Manejando Dependencias en PHP D:

Pues nada con la buena nueva, de que hoy en día si eres programador php ahora puedes gestionar tus dependencias como en node js o python …

wild professional appear: “No pero pos eso se puede hacer con pear pa’ php”

me: “Osea si pero eso a un nivel más de sistema, este peo viene más a nivel de aplicación”

wild: ” pero pos pa que?”

me: ” Bueno pues resulta que cuando trabajamos un proyecto grande o de forma más profesional, la mayoría de las ocaciones trabajamos en equipo de más de 1 ‘developer‘, por esta razón es bueno entre otras cosas poder tener un control en las dependencias de una aplicación .. ”

JUAT???😛

Bueno pongamos un ejemplo:

“Supongamos que trabajamos 2 programadores en un proyecto X, pero el programador 1 esta en México y el programador 2 en Japón entonces nuestra aplicación tiene varios modulos y resulta que el p1 (programador 1) para terminar el Z módulo necesita un paquete para gener pdf’s, al día siguiente el p2 empieza a escribir el módulo P, donde necesita igual un paquete para generar pdf’s, pero antes se actualiza en el repositorio del proyecto, entonces se da cuenta que el p1 ya tienen un paquete para eso entonces solo lo actualiza y el ya tiene ese paquete, esto nos ahorra muchas cosas, como tiempos, escritura de código y blah blah .. Pero sobre todo si nuestra aplicación se la delegamos o por ‘any’ razón se la tenemos qu edar a nuevos programadores solo tendriamos que pasar nuestro archivo de dependencias y la estructura de la app así ellos solo tendran que instalar el archivo de dependencias … : D”

@_@ si no entendieron no importa, instalen Composer , así es pequeños padawuanes hablamos de composer en simples palabras un .json que almacena los paquetes de los que depende nuestra aplicación, si han usado nodejs / python ya sabran como funciona el baile.

==Instalación==

Si usan linux / Mac

curl -sS https://getcomposer.org/installer | php

sudo mv composer.phar /usr/local/bin/composer

Listo ahora podremos usar composer de forma global.

En lo personal creo que es una buena herramienta para mantener el control de las dependencias en nuestras aplicaciones php.

Recursividad

he estado leyendo el libro de ‘Java Script: The Good Parts’ , y me tome con una técnica interesante …

Por esta ocasión vamos a poner un pequeño ejemplo, después trataré de explicarlo, al menos lo que yo entendí.

Código [JavaScript]:

//resolver la torre de hanoi :]
var hanoi = function hanoi(disco, origen, auxiliar, destino){
     if(disco > 0){
          hanoi(disco - 1 , origen, destino, auxiliar);
          document.writeln('Mover disco '+ disco + ' de ' + origen + ' a ' + destino + '<br />');
          hanoi(disco - 1, auxiliar, origen, destino);
     }
};
hanoi(4, 'Origen', 'Auxiliar', 'Destino');

Bien al ejecutar la función en este caso con discos = 4, nos mostraría los 15 movimientos para poder resolver la torre. Ahora que ya vimos la magia vayamos a explicar.

Una función recursiva, es una función que se llama a si misma, ya sea directa o indirectamente. La recursividad es una poderosa técnica de programación en el que un problema se divide en un conjunto de subproblema similares, cada uno resuelto con una solución trivial. En general, una función recursiva se llama a sí misma para resolver sus subproblemas.

Y el riesgo apa? .. Bueno pues en realidad todo se reduce al uso de memoria, ya que lo que esta haciendo es crear n numero de ‘referencias’ a si misma, y en que se traduce esto en reservar memoria por cada referencia, haciendo algunos ejemplos según yo no es infinita en algún momento hay un buffer overflow, así que habrá que tener mucho cuidado al momento de usar este jutsu😄

Dudas, criticas y correcciones en buen pedo! al los comentarios.. en mal pedo pos también xD

RMP a Deb?

Para poder instalar paquetes rpm, de distros como Red Hat o Fedora, etc. en Debian o alguna de sus derivadas que use paquetes .deb solo hay que instalar Alien D:

# su

# apt-get install allien

Ahora igual como super usuarios ejecutamos

# alien paquet.rpm

Y listo tras unos segundos nos creara un paquete.deb😀. De esta forma podemos instalarlo como cualquier paquete :

# dpkg -i paquete.deb

http://joeyh.name/code/alien/