jueves, 20 de noviembre de 2014

Crear un arbol en json desde lista en Java

Directo al punto!
Tenemos una lista en Java en forma de árbol y queremos convertirla a json para usarla en el front-end

List<Especialidad> treeEspecialidades = new ArrayList<Especialidad>();

El objeto Especialidad vendría siendo el nodo del árbol, y dentro tiene una lista de hijos (de tipo Especialidad también), y la lista de treeEspecialidades es la lista de los nodos raíz.
Podemos usar el modo rápido, y convertir el árbol a json con alguna librería que convierta el java a json

 String json = JSONFactoryUtil.serialize(treeEspecialidades);  

(en este caso JSONFactoryUtil esta en las librerías core de Liferay)
Lo malo de este método es que al ser una lista de objetos, crea mucha basura en el json, que no va a ser usada nunca.

Para crear el objeto json con los datos que se quieren y el formato que se requiera para usarlo en el front-end, se crea un método recursivo. Éste recorre todo el árbol y lo convierte a json:

 private String convertTreeToJson(List<Especialidad> treeEspecialidades){  
           if(treeEspecialidades==null){  
                return "";  
           }  
           StringBuffer sb = new StringBuffer();  
           for(Especialidad especialidad: treeEspecialidades){  
                sb.append("{");  
                sb.append("id:\""+especialidad.getEspecialidadId()+"\",");  
                if(especialidad.getParent()!=null){  
                     sb.append("parent:\""+especialidad.getParent().getEspecialidadId()+"\",");  
                }else{  
                     sb.append("parent:\"#\",");  
                }  
                sb.append("text:\""+especialidad.getEspecialidad()+"\",");  
                if(especialidad.getHijos()!=null){  
                     sb.append(convertTreeToJson(especialidad.getHijos()));  
                }  
                sb.append("}");  
     }  
           return sb.toString();  
}  

Éste método devuelve un json a manera de árbol, por ejemplo:

 {  
   id: "1",  
   parent: "#",  
   text: "Energética",  
   {  
     id: "2",  
     parent: "1",  
     text: "Petróleo y Gas",  
   } {  
     id: "10",  
     parent: "1",  
     text: "Luz y Fuerza",  
     {  
       id: "11",  
       parent: "10",  
       text: "Luz",  
       {  
         id: "12",  
         parent: "11",  
         text: "Luz calle",  
         {  
           id: "13",  
           parent: "12",  
           text: "Luz de luces",  
         }  
       }  
     }  
   }  
 } {  
   id: "3",  
   parent: "#",  
   text: "Tecnología",  
   {  
     id: "5",  
     parent: "3",  
     text: "Desarrollo de sismtemas",  
     {  
       id: "6",  
       parent: "5",  
       text: "Programador Java",  
     } {  
       id: "9",  
       parent: "5",  
       text: "Programador .Net ligeramente mucho texto de prueba",  
     }  
   }  
 } {  
   id: "4",  
   parent: "#",  
   text: "Mercadotécnia",  
   {  
     id: "7",  
     parent: "4",  
     text: "Merca 2",  
     {  
       id: "8",  
       parent: "7",  
       text: "Hoja Merca",  
     }  
   }  
 }  

Espero le sirva a alguien!

viernes, 7 de noviembre de 2014

La Forma.

Todo lo que conocemos lo conocemos en FORMA. Por ejemplo, una flor tiene la forma de una flor, una palabra la forma de una palabra, una imagen mental la forma de una imagen mental, un sonido la forma de un sonido, un pensamiento la forma de un pensamiento, y el silencio la forma del silencio. 

La oscuridad forma de oscuridad, el amor forma de amor, la envidia forma de envidia, el dolor forma de dolor y la felicidad forma de felicidad. El dinero en forma de dinero, el calor en forma de calor, las galaxias en formas de galaxias, los números en forma de números, y Justin Bieber en forma de Justin Bieber.

Todo lo que se puede conocer se puede conocer sólo en FORMA. 

El problema es que en realidad las formas no nos interesan. Siempre nos preguntamos, ¿de dónde vienen las formas? más comúnmente, ¿de dónde viene todo? ¿por qué existe ALGO en vez de NADA?

Y la respuesta tradicional, por supuesto es, "todo viene de Dios." "Ajá! y de dónde viene Dios?" Y aquí es dónde comienza el debate. Unos dicen, "Dios es Dios y siempre ha existido", otros dicen "a! y por qué ALGO no puede venir de NADA y Dios si?? eso es trampa!"

Queridos hermanos, hay sólo 3 alternativas relevantes. O las FORMAS vienen de la NADA y aparecieron por sí solas, o las FORMAS siempre han existido y existirán desde infinito hasta infinito, o las FORMAS vienen de DIOS.

La primera nadie realmente la toma en serio, aunque los "intelectuales" famosos modernos han adoptado una versión que combina la primera y la segunda (Un Universo de la Nada).

Puede ser expresada algo así, ALGO es NADA, (o las FORMAS son NADA). Si ellos hubieran escrito la Biblia, Génesis 1:1 sería algo así,  "En el principio no había NADA y después ALGO pasó. aunque en realidad ALGO y NADA son lo mismo (aunque antes no había NADA Y después ALGO pasó)". (versión coloquial)

La segunda (las FORMAS siempre han existido y existirán desde infinito hasta infinito) es tentadora, pero quien se sienta a meditar profundamente sobre esto jamás podrá aceptarlo. "Osea, una flor existe no más por que sí? así no más porque NO se le ocurrió a nadie?"

La única opción que nos queda es la tercera. Las FORMAS vienen de DIOS. 

La definición de Dios es, "aquel que está más allá de las FORMAS, el SIN FORMA, EL AMO DE LAS FORMAS, DE DONDE LAS FORMAS VIENEN, EL CREADOR DE LAS FORMAS, EL QUE UNA VEZ QUE QUITAS LAS FORMAS SIGUE QUEDANDO, EL ESENCIAL, EL YO SOY, EL QUE NO TIENEN LIMITES, EL INFINITO, EL QUE NO PUEDE SER CONTENIDO, EL VERDADERO, EL REAL, EL ALFA Y EL OMEGA, EL QUE ES ANTES DE ALFA Y SIGUE SIENDO DESPUÉS DE OMEGA, THE ONE, "EL FORMADOR" (para ver 99 nombres más usados en el ISLAM más ver wikipedia Nombres de Dios)

EL PROBLEMA es que nuestras definiciones siguen siendo FORMAS!!!! 

"aquel que está más allá de las FORMAS" es como decir la FORMA que está más allá de las FORMAS!!! 

No hay palabras para expresar la REALIDAD que está detrás de las FORMAS. Porque en el momento que le das un nombre le estás dando una FORMA. Unos pueden decir que la palabra NADA es lo mismo, pero NADA implica ausencia de realidad. DIOS implica realidad

Por eso decimos que todo lo que podemos conocer sólo lo podemos conocer en forma.

Jesús es Dios hecho Forma. Dios tomo Forma en Jesús por que nosotros sólo podemos conocer en forma. Para que através de la forma de Jesús y sus enseñanzas pudieramos conocer aunque sea un poco al SIN FORMA. 



lunes, 20 de octubre de 2014

El Gran Examen

La vida humana es un examen.

Los que lo pasen van a ir al cielo y conocerán a Dios.

No hay excusas, las reglas del examen están escritas en nuestra misma naturaleza.

No se ocupan libros sagrados, aunque Dios nos dejó libros sagrados por si eso de que se nos va la onda.

Nadie puede decir yo no sabía. El deseo más grande de todo ser humano es conocer a la Realidad Absoluta. Se puede también expresar como deseo de entender todo, o deseo de ver a Dios, o deseo de ser Dios.

Todo ser humano sabe que no está haciendo bien las cosas y que debe cambiar su vida. Por eso cuando nuestra vida peligra dejamos a un lado las cosas que sabíamos que eran pérdida de tiempo, y hacemos las que sabemos debíamos haber estado haciendo.

Los que no pasen el examen muy probablemente desaparecerán para siempre o reencarnarán como creaturas salvajes, llenas de anciedad y desesperación. O peligro se van al infierno donde será el llanto y crujir de dientes.

Sigue a tu consciencia hasta las últimas consecuencias y vivirás ANIMOOO!!!FUAAAA!!!

sábado, 6 de septiembre de 2014

La Realidad

No todos estan de acuerdo si existe Dios o no.
Pero casi todos están de acuerdo que existe una Realidad.
Por alguna razón suponemos que es sólo una y no dos o muchas. 
Algunos le llaman a esta Realidad "el Cosmos". 
El Cosmos es todo lo que es, lo que fue y lo que será. 
El Cosmos es descrito como la suma total de las leyes naturales.
Generalmente se entiende que está compuesto de lo que podemos ver,
y si hay algo que todavía no conocemos de él, seguramente en el futuro
lo averigüaremos. Esta posición se le conoce como Materialismo. Se puede
resumir en la frase, "el Universo está ciego". En otras palabras, la Realidad 
no se conoce a sí misma..

Pero una Realidad que esté ciega es inconcebible. 
Si le quitaramos la hermosura al universo que conocemos,
si le quitaramos el perfecto orden,
si le quitaramos el majestuoso balance,
si le quitarmas su inmensa complejidad,
una complejidad paradójicamente simple,
si le quitaramos el hecho de que es relativamente comprensible,
si le quitaramos sus leyes,
si sólo reinara el caos,
y de lo unico que estuvieramos conscientes fuera una cuchara,
o una piedra, o un rayo de luz, o simplemente oscuridad o vacío,
aún así diríamos que la Realidad es maravillosa, que no puede estar
ciega y de que es infinitamente superior a mí.

En algún momento la Nada fue conquistada, y Algo emergió.
O tal vez, mejor dicho, Algo siempre ha sido, Algo es, Algo será.
Esto es más grande que nuestro pequeño Cosmos. Nuestro pequeño
Cosmos es sólo un átomo de una de Sus flatulencias. 
Lo mas grande que podamos imaginar sigue siendo nada al lado del Infinito.

Hay muchas palabras con las que describimos esta Realidad. Pero la mejor sigue
siendo Dios. La tradición sigue ganando.



sábado, 30 de agosto de 2014

Esfuerzo

Se requiere de un gran esfuerzo.
Un esfuerzo formidable.
Un esfuerzo supra-humano.
El Reino no es para los flojos.

El esfuerzo precede la atención inquebrantable.
Por lo tanto el esfuerzo es la madre de todas las virtudes.

Es muy fácil ser cool.
Pero ser esforzado es sólo par los valientes.

                    *              *

Quien no sabe estar solo, no sabe estar con compañía.
Quien no sabe estar con compañía, no sabe estar solo.

La Realidad es, y tu no puedes añadirle ni quitarle nada.

Quien abandone sus busquedas intelectuales encontrará la inteligencia.

Entre más largo un libro, menos exacto.
El libro más exacto nunca ha sido escrito.

jueves, 28 de agosto de 2014

CoronaLabs y base de datos Sqlite3

Corona Labs y Sqlite3

Siempre que empiezo una app, nunca la termino! :@
Por eso decidí tener un cliente, que me presionara, que me dijera ¿Y mi app?, ¡Ya la quiero!. Desafortunadamente mi "cliente" no me paga. Pero ya veo mas progreso!, así que, Gracias Cliente!, ya casi termino tu app!.

 Pasando a la aplicación
-El cliente pidió una app de frases.
-Ok, ¿en donde guardo las frases?
-Esta bien fácil!, una base de datos.
-¿Como hago eso?

 Sqlite3 funciona de manera sencilla, es una base de datos sin instalación, ya que corona cuenta con esta base de datos en su repertorio.
 Para poder crear la base de datos, primero mandamos llamar la base de datos.

 require "sqlite3"  

Después creamos un directorio en donde se guardara la base de datos.

 local pathDB = system.pathForFile("data.db", system.DocumentsDirectory)  

El nombre en este caso, es data.db, y el otro parámetro que pasamos contiene el directorio de la aplicación.
Después de tener esto, abrimos la base de datos.

 local db = sqlite3.open(pathDB)  

Ya solo queda crear las tablas. Un ejemplo de creación de tabla y agregar datos, sería.
 local tablesetup = [[CREATE TABLE IF NOT EXISTS ejemplo (id INTEGER PRIMARY KEY autoincrement, ejemplo, );]]  
           db:exec(tablesetup)  
 local insertQuery = [[INSERT INTO ejemplo VALUES (NULL, 'Hola Mundo'); ]]  
                     db:exec( insertQuery )  

Si queremos ver que contiene nuestra base de datos, les recomiendo el plugin de firefox, y si lo quieren ver en consola, les dejo una pequeña función.

 local function showDB()  
      local showDataBase = {}   
      for row in db:nrows("SELECT * FROM ejemplo") do  
      print("Row " .. row.id .. row.ejemplo )  
           showDataBase[#showDataBase +1] =  
           {  
           showDataBase = row.ejemplo  
      }  
      end  
 end  

Espero les sirva de algo, Saludos!




viernes, 1 de agosto de 2014

Efectos de cambiar escena en Corona Labs

Hola

El día 31 de Julio, Corona liberó su nuevo SDK, con la cual es posible usar Admob v2, ya que las llamadas para mostrar los anuncios de AdMob v1, dejarán de funcionar (creo el 1 de agosto).

Si desean bajar el nuevo SDK de corona, lo pueden encontrar en la página de su úlltima versión pública.

Pasando al tema de los efectos que ofrece corona, les dejo un video que muestra los diferentes efectos que tiene corona para cambiar de escena.



Para ver el código utilizado entrar a la siguiente liga.
Código fuente