miércoles, 24 de marzo de 2010

Cómo generar un jar de json

1. Download http://www.json.org/java/json.zip from json.org. Save it in a some directory, which I'll call %DOWNLOAD_HOME%.

2. Unzip it. Be sure you preserve the archive's directory structure (/org/json/) when you unzip the file.

3. Change directory into %DOWNLOAD_HOME%\org\json

4. Compile the files by running “javac *.java”. At least, this worked for me. There is no build.xml or anything, and it just seemed to compile into classes nicely.

5. CD back into %DOWNLOAD_HOME%

6. Create a jar file called json.jar. The syntax is something like:

jar -cvf json.jar org\json\*.class

Ref: http://processing.org/discourse/yabb2/YaBB.pl?board=Integrate;action=display;num=1163101573

miércoles, 10 de marzo de 2010

SQL - cómo separar las condiciones de join de las condiciones de negocio

Típica consulta:

SELECT r.nombre, c.nombre
FROM Region r, Ciudad c
WHERE r.idregion=c.idregion AND c.fechafundacion>='1810-01-01'


En ella, el where mezcla condiciones de join (r.idregion=c.idregion) y de negocio (c.fechafundacion>='1810-01-01'):


En la sgte consulta, en el join+using aislamos las condiciones de join. En el where aislamos las condiciones de negocio:


SELECT r.nombre, c.nombre
FROM Region r JOIN Ciudad c USING (idregion)
WHERE c.fechafundacion>='1810-01-01'

martes, 2 de febrero de 2010

Buscador de texto tipo google en MySQL

Se puede usar el feature de FULLTEXT Indexing and Searching de mysql:

http://www.petefreitag.com/item/477.cfm

Pool de threads nativo en java

LinkedBlockingQueue queue = new LinkedBlockingQueue();
pool = new ThreadPoolExecutor(corePoolSize,maximumPoolSize,keepAliveTimeMs,TimeUnit.MILLISECONDS,queue);

CandidateFetcher fetcher = new CandidateFetcher(candidate); //implements Runnable
pool.execute(fetcher);

while(pool.getActiveCount()>0){
log.info("pool.getActiveCount(): "+pool.getActiveCount()+", waitUntilAllFetchesAreDone, go to sleep");
Thread.sleep(5000);
}
log.info("pool.getActiveCount(): 0, terminaron todos");

jueves, 28 de enero de 2010

Cómo no olvidar implementar un método en java

Usar UnsupportedOperationException, ej:


private String fetchHtmlDePagina(int pagina) {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("TODO");
//return null;
}

martes, 19 de enero de 2010

Zend Class Type Hints

Usar comentarios de la sgte manera:

/* @var $myVar Test */

$myVar = getClass();

$myVar->

martes, 12 de enero de 2010

Bash - Aliases within a script

#!/bin/bash
# alias.sh

shopt -s expand_aliases
# Must set this option, else script will not expand aliases.


# First, some fun.
alias Jesse_James='echo "\"Alias Jesse James\" was a 1959 comedy starring Bob Hope."'
Jesse_James

Ref: http://tldp.org/LDP/abs/html/aliases.html