vivencias de un java developer

Just another java fan developer!

Vivencias de un C# developer

Posted by jquantdeveloper on September 4, 2009

Saludos Colegas

Hace tiempo tenia en revisar mi blog pero algunos post me hicieron reflexionar y volver a plasmar mis experiencias como developer y compartir conocimiento.

De manera repentina ahora estoy programando C# y java a quedado relegado. Asi que, aunque este programando en C#, tratare de volver a mis raices.

No se extrañen ahora que ponga comentarios sobre C# y WPF. Deberia ahora llamar a este blog: Vivencias de un C# developer, pero no hare el cambio (sigo siendo fiel al lenguaje Java, aunque sea algo lento comparado a C#).

Posted in Uncategorized | Leave a Comment »

GNUPlot: Libreria para hacer graficas 3D

Posted by jquantdeveloper on February 6, 2008

Muy encantado yo estaba con JFreeChart, hasta que me toco hacer una grafica de tres dimensiones. Lamentablemente, JFreeChart solo soporta graficos de dos dimensiones, asi que tuve que navegar por la internet para buscar una libreria que me permita realizar graficas 3D a traves de C++.

GNUPlot ha sido la libreria que seleccione para hacer graficas en tres dimensiones. Esta libreria esta disponible para windows y linux, y con ella podras hacer cualquier tipo de graficas (2D, 3D, barras, etc.).

La pagina principal de la libreria es: http://www.gnuplot.info/ . Esta te brinda una gran cantidad de ejemplos y direcciones externas que te permitiran manejar al 100% esta libreria.

¿Como conectarse a gnuplot a traves de C++?

Solo consta de llamar al ejecutable a traves del metodo fopen(direccion de origen del ejecutable,”w”), y despues enviar los comandos gnuplots utilizando fputs(comando gnuplot,variable fopen).

Posted in Graphics | 6 Comments »

Eclipse for Java = Good, Eclipse for C++ (CDT) = Sucks

Posted by jquantdeveloper on February 6, 2008

Hace rato que no me aparezco por aca, por asuntos de no separar tiempo para escribir algo en el blog.

Desde hace buen rato que no utilizo java en el trabajo, ya que ahora nos dedicamos a desarrollar en C++ , debido a asuntos de velocidad.

El IDE de desarrollo por default que utilizo para programar en java es eclipse. Existen otros IDE’s para programar en java, tal como lo es el famoso Netbeans, pero me siento bien trabajando java con eclipse ya que es user friendly y liviano comparado con Netbeans.

Pero, a la hora de programar en c++ utilizando eclipse como interfaz de desarrollo, es un total dolor de cabeza. Para programar en c++ utilizando eclipse, deberas bajar un plugin llamado CDT.

Entre las cosas que detesto podria mencionar:

Si tengo varios proyectos en un workspace (ProyA, ProyB), y necesito utilizar una clase que esta en el otro proyecto (ProyB necesita utilizar un objeto que esta en el ProyA), ¿Por qué tengo que ir al build path del proyecto para setear el objecto en especifico (Clase.o), en lugar de solo setear en que proyecto se encuentra tal objeto (tal como se hace cuando usas eclipse con Java)?. Ademas de que tienes que setear el objeto en especifico, deberas añadir las clases que son utilizadas por dicha clase.

El debugger: Si quieres ver el contenido de un objeto, cuando estas en el Debugger, veras valores hexadecimales en lugar de contenido legible. El unico uso que le doy actualmente es para buscar variables que estan nulas.

Informacion de errores de compilacion: La informacion que brinda el CDT cuando existe un error de compilacion, carece de contenido explicito. (Al menos uno se salva si tiene internet disponible).

Al fin al cabo, no todo lo opensource es agradable!

Si conocen de algun IDE para programar en C++ sobre Linux, no duden en comunicarmelo!

Posted in Vivencias | Leave a Comment »

Graficas de tiempo en JFreeChart

Posted by jquantdeveloper on June 14, 2007

Vamos a crear un programa que muestre la evolución del precio de un instrumento durante un tiempo atrás. La información consta básicamente de estos parámetros: precio de apertura, precio más bajo, precio más alto, precio de cierre, volumen de transacciones y el día de trading. Todos los parámetros antes mencionados podemos definirlo en una clase llamada HistoricalQuote.
En la clase principal (donde arranca la aplicación), las clases que debemos importar son las siguientes:

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.xy.XYDataset;

Lo primero que tendrás que hacer es crear un frame en donde se colocaran los componentes de jfreechart.
En el frame se agregara una instancia de la clase ChartPanel. Esta clase viene a jugar la función de contenedor de objetos de tipo JFreeChart.

ChartPanel chartContainer = new ChartPanel(getTimeSeriesChart());

En este ejemplo se declara una variable chartContainer de tipo ChartPanel al cual se le envía a su constructor un objeto de tipo JFreeChart ,que se obtiene a través del método llamado getTimeSeriesChart().

public JFreeChart getTimeSeriesChart()
{
if (data != null)
jfreechart = ChartFactory.createTimeSeriesChart(“Price Chart – ” + Symbol, “Time”, “Value”, createDataset(), true, true, false);
else
jfreechart = ChartFactory.createTimeSeriesChart(“Price Chart”, “Time”, “Value”, null, true, true, false);

return jfreechart;
}

Aquí arriba se muestra el cuerpo del método getTimeSeriesChart(), en cual debo señalar que la variable data representa la información que se va a desplegar. En este caso data es una lista de objetos de tipo HistoricalQuote.

La variable jfreechart obtiene valor mediante la llamada al método createTimeSeriesChart() de la clase ChartFactory. Este metodo se le debe mandar:
El titulo del grafico: “Price Chart”
El titulo del y axis: “Time”
El titulo del x axis: “Value”
El objeto que representa la información del chart : createDataset().

El método createDataset() retornara un objeto de tipo XYDataset, que representa graficas de coordenadas x, y
private XYDataset createDataset()
{
timeseries = new TimeSeries(“Close Price”, org.jfree.data.time.Day.class);
for (int i = 0; i < data.size(); i++)
{
SimpleDate time = new SimpleDate(getData().get(i).getSampleDate());
timeseries.add(new org.jfree.data.time.Day(time.getDayNumber(), time.getMonthNumber(), time.getYearNumber()), getData().get(i).getClosePrice());
}
timeseriescollection = new TimeSeriesCollection();
timeseriescollection.addSeries(timeseries);
return timeseriescollection;
}

Para representar una serie de puntos de coordenadas x, y crearemos una instancia de la clase TimeSeries que recibirá el nombre de la serie y la unidad de tiempo a utilizar (Day, Time, etc).
Si pueden observar, dentro del ciclo he declarado una variable time de tipo SimpleDate que me permitirá obtener el día, mes y año de la fecha que tiene el objeto de tipo HistoricalQuote (pueden crear su versión personal de SimpleDate).

timeseries.add(new org.jfree.data.time.Day(time.getDayNumber(), time.getMonthNumber(), time.getYearNumber());

Se puede dar el caso que se quieran agregar más de una serie de tiempo, así que se debe crear una instancia de la clase TimeSeriesCollection para soportar múltiples series de tiempo.

Espero haber sido lo mas explicito posible y tratare de enviarles el código completo en caso de haber alguna duda.
Hay que señalar que antes de todo lo señalado, se debe obtener una fuente que nos provea HistoricalQuotes, así que el próximo post les hablare algo de base de datos!

Posted in Graphics | 3 Comments »

Librerias para graficas estadisticas en Java

Posted by jquantdeveloper on June 6, 2007

Para los developers que desarrollan aplicaciones con graficas de barras, gannt y otros tipos de grafico estadistico, existe un paquete llamado JFreeChart. Este paquete es open source y cuenta con una amplia variedad de tipos de graficos.

Para mi concepto es una buena opcion, solo que esta carente los tutoriales sobre esta herramienta. Para que puedas aprender sobre la misma, al momento de bajar los archivos comprimidos estos traen una demo que muestra ejemplos de lo que puedes hacer con este paquete. Muy bien puedes tomar el jar de la demo y decompilar los ejemplos que quieras utilizar para practicar (jad es un ejemplo de decompilador).

Para bajarlo pueden buscarlo en su pagina web: http://www.jfree.org/jfreechart/ o pueden buscarlo en sourceforge.com!

Espero en el siguiente post describir algunos ejemplos. Si conocen de algo sobre esta herramienta o conocen otro paquete seria bueno que lo comentaran!

Posted in Graphics | 1 Comment »

Migrando de un lenguaje a otro

Posted by jquantdeveloper on May 30, 2007

Ya han pasado casi tres semanas que no se nada de java debido a que la nueva asignacion que tengo que desarrollar tiene que ser en C++. Soy el de los que piensa que no hay que preocuparse mucho de manejar otro lenguaje, ya que lo que cambia es la sintaxis y los recursos que brinde el lenguaje. En mi caso, pasar de Java a C++ no seria tan complicado ya que ambos comparten muchas cosas entre si,  pero eso si: siempre se me olvida colocar los scopes!

Creo que java no tendria nada que envidiarle a C++, pero podria mencionar que lo unico bueno que le hayo a C++ es que es mas rapido (java necesita pasar por un JVM, C++ no) y puedo manejar punteros (es peligroso manejar inadecuadamente punteros, por eso JAVA no implementa punteros).

Si de migrar de Java a C++ podria ser algo easy, de visual basic a C++ si podria ser algo tedioso. Por que? Tanto que te acostumbrastes a no usar punto y coma al final de una instruccion y ademas de eso visual basic no es case sensitive.

Posted in Vivencias | Leave a Comment »

Hello world!

Posted by jquantdeveloper on May 23, 2007

Saludos a todos los developers! Esta es mi primera vez que creo un blog y espero que el mismo sea un punto para compartir conocimiento y mantenernos siempre al dia de las buenas nuevas que hay en el mundo Tech.

Basicamente me centrare en temas relacionados al open source y a java, que es mi lenguaje de programacion por default. (Aunque actualmente estoy trabajando con C++, no se extrañen si ubico info acerca del mismo). No estaria mal tambien comentar sobre .Net y otras herramientas de Microsoft, pero en realidad no es mi fuerte.

Bienvenidos sean todos!

Posted in Uncategorized | Leave a Comment »