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í

Anuncios

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 XD

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

Instalar Tomcat Debian Wheezy

Para el siguiente truco necesitaremos:

El tomcat lo pueden bajar desde mi sitio, o van a al sitio oficial y lo descargan.

Abrimos nuestra terminal, pa’ sentirnos bien pro. XD

(Nos ubicamos en el directorio donde tenemos el .tar.gz)

$ tar -zxvf tomcat742.tar.gz

(de aquí en adelante como super vacas)

$ mv tomcat742/ /usr/local/tomcat

$ groupadd tomcat

$ useradd -g tomcat -d /usr/local/tomcat tomcat

$ usermod -G www-data tomcat

(luego agregamos un usario y pass)

$ nano /usr/local/tomcat/conf/tomcat-users.xml (descomentamos las ultimas lineas)

<tomcat-users>
<role rolename="manager"/>
<role rolename="manager-gui"/>
<rolerolename="admin"/>
<user username="jok3r" password="tomcat" roles="admin,manager,manager-gui,admin-gui"/>
</tomcat-users>

Ahora crearemos un archivo INIT para iniciar, y detener Tomcat

$ nano /etc/init.d/tomcat

#Tomcat auto-start
#Cambiar el JAVA_HOME por el suyo
export JAVA_HOME=/usr/lib/jvm/java-6-sun
case $1 in
start)
  sh /usr/local/tomcat/bin/startup.sh
  ;;
stop)  
  sh /usr/local/tomcat/bin/shutdown.sh
  ;;
restart)
  sh /usr/local/tomcat/bin/shutdown.sh
  sh /usr/local/tomcat/bin/startup.sh
  ;;
esac
exit 0
Le damos permisos y probamos
$ chmod 755 /etc/init.d/tomcat
$ /etc/init.d/tomcat start
Si todo salio bien vamos a
Happy Coding! :3

Plugin Java Chrome Debian Wheezy

Así es.

Hasta mi saber yo tenia java al puro pex, pero todo cambio cuando al tratar de entrar a una página del SAT quise.

“Vamos a darle que es Mole de olla” dice un amigo. (@pekchan30).

Primero editamos los sources.list (sobra decir que hay que estar como super cow)

# ~ nano  /etc/apt/sources.list

(agregamos estas lineas)

deb http://ppa.launchpad.net/webupd8team/java/ubuntu lucid main 

deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu lucid main

#~ apt-key adv –keyserver keyserver.ubuntu.com –recv-keys EEA14886

#~ apt-get update

#~  apt-get install oracle-java7-installer

Y una vez terminado, solo para que todo funcione bien agregamos esto:

Creamos, si no existe la carpeta plugins

#~ cd /opt/google/chrome/

#~ mkdir plugins

Creamos un enlace con los plugins.

#~ ln -s /usr/lib/mozilla/plugins/* /opt/google/chrome/plugins

y ahora ya sin ser super vacas.

~ /opt/google/chrome/google-chrome %U –enable-extensions –enable-plugins

Si todo sale bien que la fuerza los acompañe.

Funtes: Instalar Java 7

Crack Sublime Text II

No lo hagan :c A menos que en un futuro no muy lejano vayan a comprar la licencia.

Una vez que ya tengan instalado su Sublime Text. (si no lo has echo aquí puedes ver como).

Ahora vamos a donde lo tengamos.

Ejemplo:

     $  cd  /opt/sublime-text

Agregamos esto en la consola (como supervaca).

    $ sed ‘s/\x33\x42/\x32\x42/g’ sublime_text > sbm

    $ rm sublime_text && mv sbm sublime_text

> Le damos permisos

    $ chmod 777 sublime_text

Listo Ahora abrimos Sublime Text y damos en Help/Enter Licence Code

y pegamos :

—–BEGIN LICENSE—–
Patrick Carey
Unlimited User License
EA7E-18848
4982D83B6313800EBD801600D7E3CC13
F2CD59825E2B4C4A18490C5815DF68D6
A5EFCC8698CFE589E105EA829C5273C0
C5744F0857FAD2169C88620898C3845A
1F4521CFC160EEC7A9B382DE605C2E6D
DE84CD0160666D30AA8A0C5492D90BB2
75DEFB9FD0275389F74A59BB0CA2B4EF
EA91E646C7F2A688276BCF18E971E372
—–END LICENSE—–

Ref: MenteLeal