Open Source: Cómo podemos monitorizar nuestras aplicaciones con JAMon???

Java, Open Source, Programación 31 de December del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading ... Loading ...

JAMon: ¨The Java Application Monitor (JAMon) is a free, simple, high performance, thread safe, Java API that allows developers to easily monitor production applications.¨

Nos ayuda a monitorizar nuestras aplicaciones, para poder saber que recurso se manda ejecutar con mayor concurrencia, monitorización del jdbc proxi, etc. tanto en aplicaciones web como Stand-alone, en su página esta el software y la documentación necesaria para poderlo implementar de una manera fácil y en pocos pasos.
Cuando hice el un main() todo me funciono correctamente pero he tenido problemas para que muestre las estadísticas dentro de una aplicación web, así que les dejo el main que prácticamente es el que esta en su página, y cuando logre corregir los problemas que tengo para implementarlo en otra aplicación les escribo un nuevo post con los problemas y las soluciones, además de los resultados.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/**
 * 
 */
package test;
 
import com.jamonapi.Monitor;
import com.jamonapi.MonitorFactory;
 
/**
 * @author serunix.com
 *
 */
public class TestJAMon {
 
	/**
	 * @param args
	 * @throws InterruptedException 
	 */
	public static void main(String[] args) throws InterruptedException {
		// TODO Auto-generated method stub
 
		Monitor mon=null;
        for (int i=1; i<=10; i++) {
            mon = MonitorFactory.start("myFirstMonitor");
            Thread.sleep(100+i);
            mon.stop();
 
        }
        System.out.println(mon.toString()); 
 
 
	}
 
}

Un juego parecido a Rock Band pero Online???

Internet, PlayStation3 31 de December del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading ... Loading ...

jajajaj, la verdad es que no había jugado Rock Band, y cuando lo jugué pues me quede super picado (atrapado, anodadado, etc.), verdad es parece que estas tocando un un grupo musical (buenoooo, más o menos)… y bueno, como no tengo play me hice a la tarea de buscar un juego parecido para mi Mac, y la gran sorpresa que me lleve es que hay algo parecido online, se llama Music Gaming Unleashed y buenooooo super bueno jajajaaj, aquí se toca como en la guitarra del juego, sólo que se usan los números del teclado y la verdad es que es muy divertido.

Página: http://www.jamlegend.com/

http://www.jamlegend.com/

http://www.jamlegend.com/

Cómo traducir palabras/páginas/documentos, etc. a otros idiomas??

Internet, Software 26 de December del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading ... Loading ...

La verdad es que hay muchas opciones en el Internet para poder traducir a otros idiomas páginas, documentos, texto, etc. Una de las muchas opciones es usar Promt Traslator la verdad es muy bueno, en su página puedes traducir texto, un website ó si lo prefieres (esto es lo malo) puedes pagar una versión de pago y traducir documentos de word, pdf, entre otros, es muy bueno, además que tiene una versión para el “mobile“. :)

promt traslator

promt traslator

Feliz Navidad !!!!

Personal 25 de December del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading ... Loading ...

Hola mis lectores(jajaj aunque sólo sean dos o tres jajajaj),

Aprovecho esta fecha para desearles feliz Navidad y que se encuentren en compañía de sus seres queridos, y que sobre todo tengan mucha salud. La verdad es que agradezco las visitas de todos y cada uno de ustedes y por regalarme unos minutos de su tiempo en leer mi blog, la verdad es que escribo principalmente para contribuir a que siga creciendo la gran “Nube” y además para tratar de ayudar a todos aquellos (me incluyo) que están buscando un solución de algún problema, en fin, les deseo lo mejor en esta navidad!!! SALUDDDD!!!!!

Base de datos: Un ejemplo de Ibatis con Spring en java

Base de datos, Java, Mysql, Open Source, Programación 22 de December del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading ... Loading ...

La verdad es que no sabía nada de este Ibatis (framework de persistencia de datos basado en archivos xml), si no te lo enseñan hay que aprender sólo para poderse dar una idea de las diferentes  opciones que hay en cuanto al manejo de la Data Base. Aquí les dejo un pequeño ejemplo de como sería la configuración de Ibatis con Spring y que esta en java, ya que también se puede hacer con Ruby. Ibatis tiene sus ventajas y desventajas, así que sólo queda probarlo.

1.- El ejemplo se basa en almacenar las recetas de una farmacia.

2.- Creamos los DTO

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.serunix.model;
 
import java.util.List;
 
/**
 * @author serunix
 *
 */
public class Recipe {
 
	private int recipeId;
	private String patientName;
	private List<?> medicaments;	
}
1
2
3
4
5
6
7
8
9
10
11
12
13
package com.serunix.model;
 
/**
 * @author serunix
 *
 */
public class Medicament  {
 
	private int medicamentId;
	private String name;
	private String description;
	private Recipe recipe;
}

2.- Los servicios

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.serunix.model.services;
 
import java.util.List;
 
import com.serunix.model.Recipe;
 
/**
 * @author serunix
 *
 */
public interface RecipeDaoImpl {
 
	List<?> getAllRecipes();
 
	Recipe getRecipeById(Integer id);
 
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.serunix.model.services;
 
import java.util.List;
 
import com.serunix.model.Medicament;
 
/**
 * @author serunix
 * 
 */
public interface MedicamentDaoImpl {
 
	List<?> getAllMedicaments();
 
	Medicament getMedicamentById(Integer id);
 
	int update(Medicament medicament);
 
	Boolean insert(Medicament medicament);
 
	int delete(Integer id);
}

3.- Los Daos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.serunix.model.daos;
 
import java.util.List;
 
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
 
import com.serunix.model.Recipe;
import com.serunix.model.services.RecipeDaoImpl;
/**
 * @author serunix
 *
 */
public class RecipeDao extends SqlMapClientDaoSupport implements RecipeDaoImpl {
 
 
	public List<?> getAllRecipes() {
		return (List<?>)getSqlMapClientTemplate().queryForList("Recipe.getAllRecipes", null);
	}
 
	public Recipe getRecipeById(Integer id) {		
	    return (Recipe)getSqlMapClientTemplate().queryForObject("Recipe.getRecipeById", id);	    
	 }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package com.serunix.model.daos;
 
import java.util.List;
 
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
 
import com.serunix.model.Medicament;
import com.serunix.model.services.MedicamentDaoImpl;
/**
 * @author serunix
 *
 */
public class MedicamentDao extends SqlMapClientDaoSupport implements MedicamentDaoImpl {
 
	 public List<?> getAllMedicaments() {
	        return (List<?>) getSqlMapClientTemplate().queryForList("getAllMedicaments", null);
	    }
	    public Medicament getMedicamentById(Integer id) {
	        return ((Medicament)getSqlMapClientTemplate().queryForObject("getMedicamentById", id));
	    }
	    public int update(Medicament medicament) {
	        return getSqlMapClientTemplate().update("update", medicament);
	    }
	    public Boolean insert(Medicament medicament) {
	        return (Boolean)getSqlMapClientTemplate().insert("insert", medicament);   
	    }
	    public int delete(Integer id) {
	        return (int)getSqlMapClientTemplate().delete("delete", id);
	    }
}

4.- Los mapeos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?xml version="1.0" encoding="UTF-8"?>
 
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
 
<sqlMap namespace="Medicament">
 
    <cacheModel id="recipeCache" type="MEMORY" readOnly="false" >
        <flushInterval hours="24"/>
    </cacheModel>
 
    <resultMap class="com.serunix.model.Medicament" id="medicamentsMap">
      <result property="medicamentId"
              column="medicamentId"/>
      <result property="name"
              column="name"/>  
      <result property="description"
              column="description"/> 
 
    </resultMap>
 
 
    <select id="findMedicaments"  parameterClass="java.lang.Integer" resultMap="medicamentsMap" cacheModel="recipeCache">
    	SELECT * FROM tcmedicaments  WHERE recipeId = #id#;
    </select>
 
</sqlMap>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?xml version="1.0" encoding="UTF-8"?>
 
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
 
<sqlMap namespace="Recipe">
 
    <cacheModel id="recipeCache" type="MEMORY" readOnly="false" >
        <flushInterval hours="24"/>
    </cacheModel>
 
	<resultMap class="com.serunix.model.Recipe" id="recipeMap">
      <result property="recipeId"
              column="recipeId"/>
      <result property="patientName"
              column="patientName"/>  
      <result property="medicaments"
              column="recipeId" select="Medicament.findMedicaments" />                                
    </resultMap>
 
    <select id="getRecipeById" parameterClass="java.lang.Integer"  resultMap="recipeMap" cacheModel="recipeCache">
 
        SELECT * FROM trrecipes  WHERE recipeId = #id#;
 
    </select>    
 
</sqlMap>

5.- Y bueno lo más importante creo yo, el spring-context.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
        "http://www.springframework.org/dtd/spring-beans.dtd">
 
<beans>
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
        <property name="url"><value>jdbc:mysql://127.0.0.1/SU BASE</value></property>
        <property name="username"><value>SU USUARIO</value></property>
        <property name="password"><value>SU PASSWORD</value></property>
    </bean>
 
    <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
        <property name="dataSource"><ref bean="dataSource"/></property>
        <property name="configLocation">
            <value>classpath:SqlMapConfig.xml</value>
        </property>
        <property name="useTransactionAwareDataSource">
            <value>true</value>
        </property>
    </bean>
 
    <bean id="recipeDao" class="com.serunix.model.daos.RecipeDao">
        <property name="sqlMapClient">
            <ref bean="sqlMapClient"/>
        </property>
    </bean>
</beans>

y bueno aquí les dejo mi clase main….

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package test;
 
import java.util.Iterator;
 
import org.apache.log4j.Logger;
import org.springframework.context.support.ClassPathXmlApplicationContext;
 
import com.serunix.model.Medicament;
import com.serunix.model.Recipe;
import com.serunix.model.daos.RecipeDao;
 
/**
 * @author serunix
 *
 */
public class TestDaos {
	protected static Logger logger = Logger.getLogger(TestDaos.class);
 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ClassPathXmlApplicationContext ctxt = new ClassPathXmlApplicationContext("spring-context.xml");
		RecipeDao repl = (RecipeDao) ctxt.getBean("recipeDao");
		Recipe recipe = (Recipe)repl.getRecipeById(1);
		Iterator<?> iteRecipe = recipe.getMedicaments().iterator();
		logger.info(" Recipe No. " + recipe.getRecipeId() + " \n");
		logger.info(" Patient Name: " + recipe.getPatientName() + " \n");
		while (iteRecipe.hasNext())
		{
			Medicament medicament = (Medicament)iteRecipe.next();
			logger.info(" ----- Medicaments ------------- \n");
			logger.info(medicament.getMedicamentId() + ".- Name: "+ medicament.getName() +" \n");
			logger.info( "\t Description: "+ medicament.getDescription() +" \n");
 
		}
 
	}
 
}

aquí les dejo el proyecto completo por si tienen algúna duda… PROYECTO TESTIBATIS
n

n
¿Qué framework de percistencia utilizas para la DB?
View Results

G2ZXWXZKCVA3

Open Source: para que nos puede servir OpenWorkFlow?

Educación, Java, Open Source 17 de December del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading ... Loading ...

OpenWorkFlow es un software que se utiliza, para modelar nuestros procesos de negocio por medio de UML. Hace tiempo utilice este software que me pareció interesante ya que te ayuda a saber, en que proceso y/o actor causaba un cuello de botella y así poder realizar una reingeniería con base a nuestras reglas de negocios o realizar una automatización (en caso que el proceso se realice de forma manual). Esta herramienta se puede implementar en varios lenguajes de programación como Java y Php, así que les recomiendo que lo prueben.

openWF

openFW

ahhh recuerden que en nuestra plantación estratégica, hay que tener en cuenta que tenemos que invertir el 80% del tiempo en el análisis y el 20% sólo en la ejecución en los procesos tomando en cuenta: nuestra metodología, nivel tecnológico, tamaño de la compañía, ingresos, etc.

Cómo saber como se escribe tu nombre en Chino?

Google, Personal 14 de December del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading ... Loading ...

Simpre había querido saber como se escribe mi nombre en chino, y bueno, aquí les dejo una página que me encontré y  sólo hay que poner el nombre y listo!!! aquí el mío.

sergio en chino

sergio en chino

Performance Research, Part 3: When the Cookie Crumbles

Diseño, General 12 de December del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading ... Loading ...

wow, unos  excelentes artículos que no se puedes dejar de leer. Son una serie de 3 artículos acerca de la “optimizing web page performance”, la verdad es que están muy bien, les recomiendo que los lean. aquí el link.

” This is the first in a series of articles describing experiments conducted to learn more about optimizing web page performance. You may be wondering why you’re reading a performance article on the YUI Blog. It turns out that most of web page performance is affected by front-end engineering, that is, the user interface design and development. “

Thesis Review: Thesis Wordpress Theme Video Review

Diseño, Software 11 de December del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading ... Loading ...

Thesis es un framework que te ayuda a modificar,crear, etc. tu theme de Wordpress, lo malo es que lo puedes conseguir por la módica cantidad de 87 dolares, así que cada uno decide que hacer.

YouTube Preview Image

Maven: Cómo agregar una referencia de un jira al archivo change.xml?

Maven, Open Source, Programación 8 de December del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading ... Loading ...

Lo primero es echarse un vistazo en la página de Apache, y leer un poco la documentación, y saber para que sirve cada uno de los plugins que tiene, la verdad es que revisando a fondo el archivo changes.xml, tiene muchísimas cosas interesantes que podrían servir para poder una referencia de cambios en nuestros proyectos, aquí les dejo un ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
   <issueManagement>
            <system>Jira</system>
            <url>http://localhost:8080/secure/</url>
    </issueManagement>
   <reporting>
           ...
            <plugins>
                  <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-changes-plugin</artifactId>
                        <version>2.2</version>
                        <configuration>
                              <xmlPath> ./changes.xml </xmlPath>
                              <issueLinkTemplatePerSystem> 
                                    <Redmine>%URL%/%ISSUE%</Redmine>
                              </issueLinkTemplatePerSystem>
                              <!-- para configurar como se muestran las fechas
                                      que en este caso seria en ingles  pero 
                                     es configurable en el formato que quieras -->
                              <publishDateLocale>en</publishDateLocale>
                          <publishDateFormat>MM-dd-yyyy</publishDateFormat>
                        </configuration>
                        <reportSets>
                              <reportSet>
                                    <reports>
                                          <report>changes-report</report>
                                    </reports>
                              </reportSet>
                        </reportSets>
                  </plugin>
            </plugins>
        ...
      </reporting>

y si quieren publicarlo en un servidor remoto, sólo hay que agregar la plugin de ftp

http://www.wikio.es BlogESfera - Directorio de Blogs Hispanos blogarama - the blog directory Mi Ping en TotalPing.com
Internet blogs Programming Blogs - Blog Catalog Blog Directory Internet blogs Buzzear (ES) Publicidad por tu blog con Boosterblog directorio de blogs
Agregar Web - Directorio de webs Directorio webs Directorio Web
Anuncios Gratis Blog Directory Technology Blogs - Blog Rankings