style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

blog de jali

Afinador/Reproductor de instrumentos en java

Este programa fue desrrollado debido a que comenzaron a monitorear la red de mi chamba y pues nos regañan si estamos navegando en sitios "sin fines productivos" y ya que algunas veces traigo mi guitarra a la oficina... pues aqui tenia un afinador online.
Pues ahora lo tengo en mi propia maquina.

Aqui dejo el codigo que utilice para reproducir sonidos con Java.
La variable listaNotas tiene la afinacion estandar(los numeros para afinar se peuden ver aqui

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package sound;

import java.util.Scanner;
import javax.sound.midi.Instrument;
import javax.sound.midi.MidiChannel;
import javax.sound.midi.MidiSystem;
import javax.sound.midi.Patch;
import javax.sound.midi.Soundbank;
import javax.sound.midi.Synthesizer;

/**
 *
 * @author ACASARRU
 */

public class SonidoTest {

    private void pintaMenu() {
        imprimeInstrumentos();
    }
    Synthesizer sintetizador;
    MidiChannel canales;
    Soundbank bancoSonidos;
    Instrument listaInstrumentos[];
    Patch patch;
    int[] listaNotas;

Mensajería en las aplicaciones(Parte 2)

Primer entrega aquí
Modelos de envío en JMS

La diferencia entre un Topic y una Queue es que en el caso de de los Topic todos sus subscriptores reciben el mismo mensajes cuando el mensaje es publicado y en el caso de las Queue es que solo un receptor recibe el mensaje cuando este es depositado en la cola.

Diagramas

Topic:
Este término es utilizado para enviar mensajes de uno a varios destinatarios (sistemas) y utiliza el modelo publish-subscribe

Queue:
Este termino es utilizado cuando se planea que el mensaje sea enviado únicamente a un receptor cuando un “Sender” envía un mensaje a la cola.

Casos prácticos

Ahora definiré un par de casos prácticos donde se utilizan este tipo de modelos.

Topic:

Mensajería en las aplicaciones(Parte 1)

Como trabaja un sistema de mensajería?
Para comprender esto tomemos por ejemplo un envío de juguetes DHL

1) Santa lleva 100 juguetes a la paquetería DHL en el polo norte, estos serán enviados niños diferentes.
2) Entrega los paquetes al reno encargado y le declara una prioridad de envío.
3) El reno (para evitar confusiones, lo llamaremos Fecal)toma los juguetes y le da una nota con su guía mientras su compañera Foxy coloca los datos de entrega en cada uno de estos.
4) El camión llega por los paquetes y los lleva al aeropuerto.
5) En el punto de entrega del aeropuerto, los paquetes son separados por País. En este caso se toman los paquetes enviados a Mongolia.
6) Los paquetes son enviados y al llegar a Mongolia son separados por prioridad. Esto es para saber que paquetes se entregan primero.
Para este punto pongamos un ejemplo:

multiprocesadores con ExecutorService

Que onda chavos, como estan? espero que bien...
Haciendo el analisis de una aplicacion me encontre con una duda un poco rara y puede que este divagando demasiado, pero se me hizo interesante.

Voy a tener N colas con activeMQ. Esto implica que tengo los listeners para atender cada mensaje que me llegue. Cada listener tiene que abrir un thread(los cuales tengo pensado manejarlos con el ExecutorService) y este realizar debe realizar su chamba.

El problema es este...
Se tendran N servidores con M procesadores cada uno.
Es Logico que debo tener un Listener en cada servidor( se me ocurre dejar que cada uno escuche una cola diferente)
Ahora... Cada listener debe estar escuchando y cada que llegue un mensaje lanzar un hilo que sera despachado por el ExecutorService

Pregunta 1)
Si el ExecutorService se lanza en un procesador... este puede decir que se utilicen los N procesadores restantes del server para asi balancear la carga de chamba??

Pregunta 2)
Si no lo hace... acaso debo manejar el manejo de concurrencia como se indica aquí

LiveMesh

Wow, debo admitir que esta propuesta de microsoft es bastante interesante.
Es principalmente para compartir contenido digital.

***
En Live Mesh, cuando una carpeta es puesta en sincronización, esta se copia a todos los dispositivos que tienen habilitado Mesh, y todos los cambios que se hagan en esa carpeta o en los archivos que contiene serán reflejados en los dispositivos sincronizados. LiveMesh usa FeedSync para transmitir los cambios hechos en cada dispositivo para que estos puedan ser sincronizados.
***
Wikipedia

Les dejo la liga para que le echen un lente
https://www.mesh.com/welcome/default.aspx

Saludos

Lista Twitter

Que hongos alucinogenos

Ps aqui podemos ir haciendo la lista de twitters, y ps nos vamos haciendo de seguidores jajaja.
el mio es

@jaliSkellington

Saludos

Acelerando una peticion Http por UrlConnection

Hola!
Estoy desarrollando una aplicacion que necesita hacer peticiones Http mediante post en una clase.
Ahora... yo (me imagino, mas ahora me doy cuenta que es lo contrario; al menos en mi caso) que leer linea por linea la respuesta de un UrlConnection es mas lento que leer un buffer... Haciendo pruebas, me dicuenta de lo contrario.

Mis metodos son:

Leyendo del buffer:

public void getPostResponse1(String pUrl, String params) throws MalformedURLException, IOException {
        URL url = new URL(pUrl);
        long ini = new Date().getTime();
        long fin = 0;
        Logger.getLogger(this.getClass().getName()).log(Level.SEVERE, "time: " + ini);
        URLConnection urlConnection = url.openConnection();
        urlConnection.setDoOutput(true);
       
        OutputStreamWriter out = new OutputStreamWriter(
        urlConnection.getOutputStream());

        out.write(params);
        out.flush();

        final InputStream is = urlConnection.getInputStream();
        final Reader reader = new InputStreamReader(is);
        final char[] buf = new char[16384];
        int read;
        final StringBuffer sb = new StringBuffer();

excelente web para prepararse


Que ondas!
Pues esta es una comunidad que me parece bastante interesante, la habia checado hace algunos meses pero no la recordaba hasta que revise una cuenta de email vieja jajaja.
Pero bueno, este es el sitio.

http://www.javablackbelt.com/Home.wwa

Hay examenes de Hibernate, java5, spring y cosas asi de locos como uds. xD

Saludos

Las mejores 50 webs??

Hola!
Pues se dio a conocer una lista con las 50 websites mas chidas. A mi la verdad me encanta esto del diseño y pues los sitios estan muuuuuuuuy chidos.
Je, espero les gusten. Para ver la lista click en este

link

Aspectos a tomar en cuenta para JSTL en Websphere

Hola!
Pues me gustaria comentar que el websphere tiene cosas raras en el manejo de jstl.
De entrada..

En un c:when EXPR > 0 (donde EXPR = fn:length ) no podemos utilizar el fn:length... no la reconoce
tenemos que declarar una variable con el valor del length

Para recorrer una lista no podemos utilizar el status.count, se tiene que utlilizar el status.index.

Al menos esto en la version 6.0.1

para poder manejar correctamente el JSTL tengan al dia su WAS :P <$#$%$ WAS>

Saludos...

Distribuir contenido

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">