<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Ingenio DS</title>
	<atom:link href="http://ingeniods.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ingeniods.wordpress.com</link>
	<description>&#34;Programando soluciones&#34;</description>
	<lastBuildDate>Mon, 23 Jan 2012 13:57:06 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ingeniods.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/b06138b61e53d66039ae40fbb247f74a?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Ingenio DS</title>
		<link>http://ingeniods.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ingeniods.wordpress.com/osd.xml" title="Ingenio DS" />
	<atom:link rel='hub' href='http://ingeniods.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Feliz navidad y un excelente nuevo año</title>
		<link>http://ingeniods.wordpress.com/2011/12/28/feliz-navidad-y-un-excelente-nuevo-ano/</link>
		<comments>http://ingeniods.wordpress.com/2011/12/28/feliz-navidad-y-un-excelente-nuevo-ano/#comments</comments>
		<pubDate>Wed, 28 Dec 2011 14:08:19 +0000</pubDate>
		<dc:creator>ingeniods</dc:creator>
				<category><![CDATA[OTROS]]></category>
		<category><![CDATA[PERSONAL]]></category>

		<guid isPermaLink="false">http://ingeniods.wordpress.com/?p=1460</guid>
		<description><![CDATA[A este punto solo puedo expresar el agradecimiento a todos los lectores de ingenio a sus suscritos a los que responden, a los que preguntan, a los que visitan, a los que nos referencian  en fin a todos los que de una u otra manera se han acercado al blog. A los que están tras bambalinas haciendo de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ingeniods.wordpress.com&amp;blog=12051304&amp;post=1460&amp;subd=ingeniods&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A este punto solo puedo expresar el agradecimiento a todos los lectores de ingenio a sus suscritos a los que responden, a los que preguntan, a los que visitan, a los que nos referencian  en fin a todos los que de una u otra manera se han acercado al blog.</p>
<p>A los que están tras bambalinas haciendo de Ingenio DS mejor, a los asesores en redacción (aunque no lo parezca, ¡existen!)  a los que nos envían ideas para la publicación; este 2011 fue un buen año y esperemos un mejor 2012.</p>
<blockquote>
<p style="text-align:center;">GRACIAS A TOD@S!</p>
<p><a href="http://ingeniods.files.wordpress.com/2011/12/navidad1.png"><img class="aligncenter size-full wp-image-1466" title="navidad" src="http://ingeniods.files.wordpress.com/2011/12/navidad1.png?w=655&#038;h=491" alt="" width="655" height="491" /></a></p></blockquote>
<br />Filed under: <a href='http://ingeniods.wordpress.com/category/otros/'>OTROS</a>, <a href='http://ingeniods.wordpress.com/category/personal/'>PERSONAL</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ingeniods.wordpress.com/1460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ingeniods.wordpress.com/1460/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ingeniods.wordpress.com/1460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ingeniods.wordpress.com/1460/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ingeniods.wordpress.com/1460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ingeniods.wordpress.com/1460/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ingeniods.wordpress.com/1460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ingeniods.wordpress.com/1460/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ingeniods.wordpress.com/1460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ingeniods.wordpress.com/1460/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ingeniods.wordpress.com/1460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ingeniods.wordpress.com/1460/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ingeniods.wordpress.com/1460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ingeniods.wordpress.com/1460/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ingeniods.wordpress.com&amp;blog=12051304&amp;post=1460&amp;subd=ingeniods&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ingeniods.wordpress.com/2011/12/28/feliz-navidad-y-un-excelente-nuevo-ano/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<georss:point>10.414252 -75.526329</georss:point>
		<geo:lat>10.414252</geo:lat>
		<geo:long>-75.526329</geo:long>
		<media:content url="http://0.gravatar.com/avatar/057f3ee91b2292367e219437e78ac713?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ingeniods</media:title>
		</media:content>

		<media:content url="http://ingeniods.files.wordpress.com/2011/12/navidad1.png" medium="image">
			<media:title type="html">navidad</media:title>
		</media:content>
	</item>
		<item>
		<title>Streaming de Google App Engine</title>
		<link>http://ingeniods.wordpress.com/2011/12/13/streaming-de-google-app-engine/</link>
		<comments>http://ingeniods.wordpress.com/2011/12/13/streaming-de-google-app-engine/#comments</comments>
		<pubDate>Tue, 13 Dec 2011 16:54:09 +0000</pubDate>
		<dc:creator>ingeniods</dc:creator>
				<category><![CDATA[GOOGLE APP ENGINE]]></category>

		<guid isPermaLink="false">http://ingeniods.wordpress.com/?p=1447</guid>
		<description><![CDATA[en la pagina de Ingenio DS en facebook está habilitada una pestaña de livestream con el que estaré publicando videos, comenzando con uno de GAE + JSP + MVC + JDO Filed under: GOOGLE APP ENGINE<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ingeniods.wordpress.com&amp;blog=12051304&amp;post=1447&amp;subd=ingeniods&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>en la pagina de <a href="http://www.facebook.com/pages/Ingenio-DS/121696387891385">Ingenio DS en facebook</a> está habilitada una pestaña de livestream con el que estaré publicando videos, comenzando con uno de GAE + JSP + MVC + JDO</p>
<p><a href="http://ingeniods.files.wordpress.com/2011/12/fbls_011.png"><img class="aligncenter size-medium wp-image-1456" title="fbls_01" src="http://ingeniods.files.wordpress.com/2011/12/fbls_011.png?w=300&#038;h=261" alt="" width="300" height="261" /></p>
<p></a><a href="http://ingeniods.files.wordpress.com/2011/12/fbls_02.png"><img class="aligncenter size-medium wp-image-1457" title="fbls_02" src="http://ingeniods.files.wordpress.com/2011/12/fbls_02.png?w=300&#038;h=179" alt="" width="300" height="179" /></a></p>
<br />Filed under: <a href='http://ingeniods.wordpress.com/category/google-app-engine/'>GOOGLE APP ENGINE</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ingeniods.wordpress.com/1447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ingeniods.wordpress.com/1447/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ingeniods.wordpress.com/1447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ingeniods.wordpress.com/1447/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ingeniods.wordpress.com/1447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ingeniods.wordpress.com/1447/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ingeniods.wordpress.com/1447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ingeniods.wordpress.com/1447/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ingeniods.wordpress.com/1447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ingeniods.wordpress.com/1447/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ingeniods.wordpress.com/1447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ingeniods.wordpress.com/1447/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ingeniods.wordpress.com/1447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ingeniods.wordpress.com/1447/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ingeniods.wordpress.com&amp;blog=12051304&amp;post=1447&amp;subd=ingeniods&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ingeniods.wordpress.com/2011/12/13/streaming-de-google-app-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>10.414252 -75.526329</georss:point>
		<geo:lat>10.414252</geo:lat>
		<geo:long>-75.526329</geo:long>
		<media:content url="http://0.gravatar.com/avatar/057f3ee91b2292367e219437e78ac713?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ingeniods</media:title>
		</media:content>

		<media:content url="http://ingeniods.files.wordpress.com/2011/12/fbls_011.png?w=300" medium="image">
			<media:title type="html">fbls_01</media:title>
		</media:content>

		<media:content url="http://ingeniods.files.wordpress.com/2011/12/fbls_02.png?w=300" medium="image">
			<media:title type="html">fbls_02</media:title>
		</media:content>
	</item>
		<item>
		<title>Mi primera aplicación en Google App Engine</title>
		<link>http://ingeniods.wordpress.com/2011/11/23/mi-primera-aplicacion-en-google-app-engine/</link>
		<comments>http://ingeniods.wordpress.com/2011/11/23/mi-primera-aplicacion-en-google-app-engine/#comments</comments>
		<pubDate>Wed, 23 Nov 2011 18:45:42 +0000</pubDate>
		<dc:creator>ingeniods</dc:creator>
				<category><![CDATA[GOOGLE APP ENGINE]]></category>
		<category><![CDATA[JAVA]]></category>
		<category><![CDATA[JSP]]></category>

		<guid isPermaLink="false">http://ingeniods.wordpress.com/?p=1388</guid>
		<description><![CDATA[Ejemplo guardando, leyendo y editando  datos en google apps engine con jdo y jsp<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ingeniods.wordpress.com&amp;blog=12051304&amp;post=1388&amp;subd=ingeniods&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://ingeniods.files.wordpress.com/2011/11/appengine_lowres.png"><img class="alignleft size-full wp-image-1434" title="appengine_lowres" src="http://ingeniods.files.wordpress.com/2011/11/appengine_lowres.png?w=655" alt=""   /></a>mi primera aproximación a Google App Engine (de ahora en demás GAE) fue adaptar esta entrada <a href="http://wp.me/pOz5S-9W">MVC en JSP</a> a GAE; esto requiere ciertos cambios a nivel de código el almacenamiento ya no se hará sobre MySQL sino el almacén de datos de GAE, el motor de persistencia usado en GAE será JDO, la arquitectura seguirá siendo MVC, y se realizarán pequeños cambios a nivel de GUI, la funcionalidad será la misma.</p>
<p>Bueno siguiendo con el ejemplo anterior esta vez explicare mi aplicación del patrón MVC en JSP corriendo sobre GAE, no es la intención explicar lo que es MVC. De igual manera mi intención tampoco es explicar las bases de esta aplicación, ni las APIs usadas.</p>
<p>conocimientos previos:</p>
<ul>
<li>JSP</li>
<li>HMTL</li>
<li>JDO</li>
<li>GAE</li>
<li>MVC</li>
</ul>
<div style="text-align:center;">
<div style="text-align:0;"></div>
<p><a href="http://www.4shared.com/get/Eb8wAldO/ejercicio_gae_01.html"> <img class="size-full wp-image-494  aligncenter" title="Descargar todo" src="http://ingeniods.files.wordpress.com/2010/04/2h6yt74.jpg?w=655" alt=""   /><br />
(DESCARGA LISTO PARA USAR)<br />
</a></p>
</div>
<p>Esta vez solo se colgará el código la explicación esta en la presentación de arriba.</p>
<p>la estructura dela aplicación sería algo muy parecido a:</p>
<p>el modelo bajo el cual se trabajo es este:</p>
<p style="text-align:center;"><a href="http://ingeniods.files.wordpress.com/2011/11/ejercicio_gae_01.png"><img class="aligncenter size-full wp-image-1418" title="ejercicio_gae_01" src="http://ingeniods.files.wordpress.com/2011/11/ejercicio_gae_01.png?w=655" alt=""   /></a></p>
<p><strong>Base de datos</strong></p>
<p>¿?&#8230; el primer choque que tuve con GAE fue este: y&#8230; ¿donde está mi base de datos?, ¿donde están las sentencias SQL?.</p>
<p>esta se crea automaticamente (por configuraciones sobre JDO @Anotaciones o XML)  y no es relacional es BigTable.</p>
<p style="text-align:center;"><a href="http://ingeniodsgae.appspot.com/">LA APLICACIÓN EN FUNCIONAMIENTO ESTÁ AQUÍ</a></p>
<p style="text-align:center;"><strong>LAS JAVA</strong></p>
<p><strong>Beans</strong></p>
<p>Departamento.java</p>
<p><pre class="brush: java; collapse: true; light: false; toolbar: true;">
package ingenio.ds.gae.model.entity;
import java.io.Serializable;
import java.lang.Comparable;

import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

import com.google.appengine.api.datastore.Key;

@SuppressWarnings(&quot;serial&quot;)
@PersistenceCapable (identityType=IdentityType.APPLICATION)
public class Departamento implements Serializable,Comparable{

	@PrimaryKey
	@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
	private Key key;
	@Persistent(valueStrategy=IdGeneratorStrategy.SEQUENCE)
	private Long id;
	@Persistent
	private String nombre;
	@Persistent
	private String descripcion;

	public Departamento(){
		 super();
	}

	public Long getId(){
		return id;
	}
	public Key getKey(){
		return key;
	}
	public String getNombre(){
		return nombre;
	}
	public String getDescripcion(){
		return descripcion;
	}
	public void setKey(Key key){
		this.key=key;
	}
	public void setId(Long id ){
		 this.id=id;
	}
	public void setNombre(String nombre ){
		 this.nombre=nombre;
	}
	public void setDescripcion(String descripcion ){
		 this.descripcion=descripcion;
	}

	public String toString(){
		return(
		&quot;DATOS:::DEPARTAMENTO:::...\n&quot;+
		&quot;ID             : &quot;+id+&quot;\n&quot;+
		&quot;NOMBRE         : &quot;+nombre+&quot;\n&quot;+
		&quot;DESCRIPCION    : &quot;+descripcion+&quot;\n&quot;+
		&quot;&quot;);
	}

	public int compareTo(Departamento departamento){
		return nombre.compareTo(departamento.getNombre());
	}
}
</pre></p>
<p>Empleado.java</p>
<p><pre class="brush: java; collapse: true; light: false; toolbar: true;">
package ingenio.ds.gae.model.entity;
import java.io.Serializable;
import java.lang.Comparable;
import java.util.Date;

import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

import com.google.appengine.api.blobstore.BlobKey;
import com.google.appengine.api.datastore.Blob;
import com.google.appengine.api.datastore.Key;

@SuppressWarnings(&quot;serial&quot;)
@PersistenceCapable (identityType=IdentityType.APPLICATION)
public class Empleado implements Serializable,Comparable{

	@PrimaryKey
	@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
	private Key key;
	@Persistent(valueStrategy=IdGeneratorStrategy.SEQUENCE)
	private Long id;
	@Persistent
	private String nombre;
	@Persistent
	private String  apellido;
	@Persistent
	private Integer identificacion;
	@Persistent
	private Key departamento;
	@Persistent
	private Double sueldo;
	@Persistent
	private Double transporte;
	@Persistent
	private Date fdn;
	@Persistent
	private Blob foto;
	@Persistent
	private BlobKey fotoKey;

	public Empleado(){
		 super();
	}

	public Key getKey(){
		return key;
	}
	public Long getId(){
		return id;
	}
	public String getNombre(){
		return nombre;
	}
	public String  getApellido(){
		return apellido;
	}
	public Integer getIdentificacion(){
		return identificacion;
	}
	public Key getDepartamento(){
		return departamento;
	}
	public Double getSueldo(){
		return sueldo;
	}
	public Double getTransporte(){
		return transporte;
	}
	public Date getFdn(){
		return fdn;
	}
	public Blob getFoto(){
		return foto;
	}
	public void setKey(Key key){
		this.key=key;
	}
	public BlobKey getFotoKey(){
		return fotoKey;
	}

	public void setId(Long id ){
		 this.id=id;
	}
	public void setNombre(String nombre ){
		 this.nombre=nombre;
	}
	public void setApellido(String  apellido ){
		 this.apellido=apellido;
	}
	public void setIdentificacion(Integer identificacion ){
		 this.identificacion=identificacion;
	}
	public void setDepartamento(Key departamento ){
		 this.departamento=departamento;
	}
	public void setSueldo(Double sueldo ){
		 this.sueldo=sueldo;
	}
	public void setTransporte(Double transporte ){
		 this.transporte=transporte;
	}
	public void setFdn(Date fdn){
		 this.fdn=fdn;
	}

	public void setFoto(Blob foto){
		 this.foto=foto;
	}

	public void setFotoKey(BlobKey fotoKey){
		 this.fotoKey=fotoKey;
	}

	public String toString(){
		return(
		&quot;DATOS:::EMPLEADO:::...\n&quot;+
		&quot;ID             : &quot;+id+&quot;\n&quot;+
		&quot;NOMBRE         : &quot;+nombre+&quot;\n&quot;+
		&quot;APELLIDO       : &quot;+apellido+&quot;\n&quot;+
		&quot;IDENTIFICACION : &quot;+identificacion+&quot;\n&quot;+
		&quot;DEPARTAMENTO   : &quot;+departamento+&quot;\n&quot;+
		&quot;SUELDO         : &quot;+sueldo+&quot;\n&quot;+
		&quot;TRANSPORTE     : &quot;+transporte+&quot;\n&quot;+
		&quot;FDN            : &quot;+fdn+&quot;\n&quot;+
		&quot;FOTO           : &quot;+foto+&quot;\n&quot;+
		&quot;&quot;);
	}

	public int compareTo(Empleado empleado){
		return apellido.compareTo(empleado.getApellido());
	}
}
</pre></p>
<p><strong>Persitence</strong></p>
<p>PMF.java</p>
<p><pre class="brush: java; collapse: true; light: false; toolbar: true;">
package ingenio.ds.gae.model;

import javax.jdo.JDOHelper;
import javax.jdo.PersistenceManagerFactory;

public final class PMF {
 //Variable encargada de controlar las peticiones
 private static final PersistenceManagerFactory instance =JDOHelper.getPersistenceManagerFactory(&quot;transactions-optional&quot;);
 //Para que no puedan instanciar la clase
 private PMF(){}
 //Retorna la instancia encargada de controlar las peticiones
 public static PersistenceManagerFactory get(){
    return instance;
 }
}
</pre></p>
<p>JDO.java</p>
<p><pre class="brush: java; collapse: true; light: false; toolbar: true;">
package ingenio.ds.gae.model.jdo;
import ingenio.ds.gae.model.PMF;

import java.io.IOException;
import java.util.List;

import javax.jdo.PersistenceManager;
import javax.jdo.Query;

import com.google.appengine.api.datastore.Key;

public class JDO {

	final static int FETCH_MAX_RESULTS = 10;

	private Class _class;

    public static  JDO getInstance(Class _class) {
        return new JDO(_class);
    }

    protected JDO(Class _class) {
        this._class = _class;
    }

    @SuppressWarnings(&quot;unchecked&quot;)
	public List findAll(){
		final PersistenceManager pm = PMF.get().getPersistenceManager();
		final Query query = pm.newQuery(_class);
		query.setRange(0, FETCH_MAX_RESULTS);
		List results = ((List) query.execute());
		return results;
	}

	@SuppressWarnings(&quot;unchecked&quot;)
	public List findAllByParameter(String parametro,String tipo, Object valor){
		final PersistenceManager pm = PMF.get().getPersistenceManager();
		Query query = pm.newQuery(_class,parametro+&quot; == _param &quot;);
		query.declareParameters(tipo+&quot; _param&quot;);
		List results = (List) query.execute(valor);
		return results;
	}

	@SuppressWarnings(&quot;unchecked&quot;)
	public T findOneByParameter(String parametro,String tipo, Object valor) throws IOException{
		final PersistenceManager pm = PMF.get().getPersistenceManager();
		Query query = pm.newQuery(_class,parametro+&quot; == _param &quot;);
		query.declareParameters(tipo+&quot; _param&quot;);
		List results = (List) query.execute(valor);
		if(results.size()		return (results.size()==0)?null:results.get(0);
	}

	public T findByKey(Key key){
		final PersistenceManager pm = PMF.get().getPersistenceManager();
		T objeto=pm.getObjectById(_class, key) ;
		pm.close();
		return objeto;
	}

	public void insert(T objeto){
		final PersistenceManager pm = PMF.get().getPersistenceManager();
		pm.currentTransaction().begin();
		pm.makePersistent(objeto);
		pm.currentTransaction().commit();
		pm.close();
	}

	public void update(T objeto){
		final PersistenceManager pm = PMF.get().getPersistenceManager();
		pm.currentTransaction().begin();
		pm.makePersistent(objeto);
		pm.currentTransaction().commit();
		pm.close();
	}

	public void delete(Key key){
		final PersistenceManager pm = PMF.get().getPersistenceManager();
		pm.currentTransaction().begin();
		T object_odl = _class.cast(pm.getObjectById(key, false));
		pm.deletePersistent(object_odl);
		pm.currentTransaction().commit();
	}
}
</pre></p>
<p><strong>Actions</strong></p>
<p>Action.java</p>
<p><pre class="brush: java; collapse: true; light: false; toolbar: true;">
package ingenio.ds.gae.controller.actions;

import ingenio.ds.gae.model.jdo.JDO;

import java.io.IOException;

import javax.jdo.PersistenceManager;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.util.logging.Logger;

public abstract class Action {
	protected HttpServletRequest request;
	protected HttpServletResponse response;
	protected ServletContext application;
	protected PersistenceManager pm;

	@SuppressWarnings(&quot;rawtypes&quot;)
	protected JDO jdo;
	protected static final Logger logger = Logger.getLogger(Action.class.getName());

	public abstract void run()throws ServletException, IOException;

	public void setRequest(HttpServletRequest request){
		this.request=request;
	}

	public void setResponse(HttpServletResponse response){
		this.response=response;
	}

	public void setApplication(ServletContext application){
		this.application=application;
	}

	public void setPersistenceManager(PersistenceManager model){
		this.pm=model;
	}

}
</pre></p>
<p>AgregarEmpleado.java</p>
<p><pre class="brush: java; collapse: true; light: false; toolbar: true;">
package ingenio.ds.gae.controller.actions;

//clases de la aquitectura
import ingenio.ds.gae.model.entity.Departamento;
import ingenio.ds.gae.model.entity.Empleado;
import ingenio.ds.gae.model.jdo.JDO;
//calses para que sea servlet
import java.io.IOException;
import javax.servlet.ServletException;
//clases para almacenamiento de blobs
import com.google.appengine.api.blobstore.BlobKey;
import com.google.appengine.api.blobstore.BlobstoreService;
import com.google.appengine.api.blobstore.BlobstoreServiceFactory;

//clases para el tratamiento de los datos
import java.util.Map;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;

public class AgregarEmpleado extends Action {

	private static final DateFormat formato_fecha = new SimpleDateFormat(&quot;dd/MM/yyyy&quot;);

	@SuppressWarnings(&quot;unchecked&quot;)
	public void run()throws ServletException, IOException{
		String dir=&quot;/index.jsp?pagina=ge&quot;;
		BlobstoreService blobstoreService= BlobstoreServiceFactory.getBlobstoreService();
    	Map blobs = blobstoreService.getUploadedBlobs(request);

    	BlobKey blobKey = blobs.get(&quot;foto&quot;);

		Empleado empleado=new Empleado();
		empleado.setNombre(request.getParameter(&quot;nombre&quot;));
		empleado.setApellido(request.getParameter(&quot;apellido&quot;));
		empleado.setIdentificacion(Integer.parseInt(request.getParameter(&quot;identificacion&quot;)));

		jdo= JDO.getInstance(Departamento.class);
		Departamento departamento=(Departamento)jdo.findOneByParameter(&quot;id&quot;, &quot;Integer&quot;, Integer.parseInt(request.getParameter(&quot;departamento&quot;)));
		empleado.setDepartamento(departamento.getKey());
		empleado.setSueldo(Double.parseDouble(request.getParameter(&quot;sueldo&quot;)) );
		empleado.setTransporte(Double.parseDouble(request.getParameter(&quot;transporte&quot;)));
		try {
			empleado.setFdn(formato_fecha.parse(request.getParameter(&quot;fdn&quot;)));
		} catch (ParseException e) {e.printStackTrace();}
		empleado.setFotoKey(blobKey);
		dir+=&quot;&amp;blob-key=&quot;+blobKey.getKeyString();
		jdo= JDO.getInstance(Empleado.class);
		jdo.insert(empleado);
		response.sendRedirect(dir);
	}
}
</pre></p>
<p>AgregarDepartamento.java</p>
<p><pre class="brush: java; collapse: true; light: false; toolbar: true;">
package ingenio.ds.gae.controller.actions;

//clases para que sea servlet
import ingenio.ds.gae.model.entity.Departamento;
import ingenio.ds.gae.model.jdo.JDO;
//clases para el manejo de servlet
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.RequestDispatcher;

public class AgregarDepartamento extends Action {

	@SuppressWarnings(&quot;unchecked&quot;)
	public void run()throws ServletException, IOException{
		try {
			Departamento departamento=new Departamento();
			departamento.setNombre(request.getParameter(&quot;nombre&quot;));
			departamento.setDescripcion(request.getParameter(&quot;descripcion&quot;));
			jdo= JDO.getInstance(Departamento.class);
			jdo.insert(departamento);
		}catch (Exception ex) {
			throw new ServletException(ex.getMessage());
		}
		RequestDispatcher rd=application.getRequestDispatcher(&quot;/index.jsp?pagina=gd&quot;);
		if(rd==null){
			throw new ServletException(&quot;pagina no encontrada&quot;);
		}
		rd.forward(request,response);
	}
}
</pre></p>
<p>FileUpload.java</p>
<p><pre class="brush: java; collapse: true; light: false; toolbar: true;">
package ingenio.ds.gae.controller.actions;

//clases para manejo de blobs
import com.google.appengine.api.blobstore.BlobKey;
import com.google.appengine.api.blobstore.BlobstoreService;
import java.util.Map;
//posibles excepciones
import javax.servlet.ServletException;
import java.io.IOException;

public class FileUpload extends Action {

  public void run()throws ServletException, IOException {
    try {
    	Object blobstoreService_obj=request.getSession().getAttribute(&quot;blobstoreService&quot;) ;
    	BlobstoreService blobstoreService = (BlobstoreService) blobstoreService_obj;
    	Map blobs = blobstoreService.getUploadedBlobs(request);
    	BlobKey myFile = null;
    	myFile = blobs.get(&quot;myFile&quot;);
    	if (myFile != null){
    		logger.info(&quot;EEEMMM LA FOTO NO ES NULL&quot;);
    		logger.warning(&quot;EEEMMM LA FOTO NO ES NULL&quot;);
    	}else{
    		logger.info(&quot;PLOP, ESTÁ VAINA NO FUNCIONÓ&quot;);
    		logger.warning(&quot;PLOP, ESTÁ VAINA NO FUNCIONÓ&quot;);
    	}
    } catch (Exception ex) {
      throw new ServletException(ex);
    }
  }
}
</pre></p>
<p>FileRead.java</p>
<p><pre class="brush: java; collapse: true; light: false; toolbar: true;">
package ingenio.ds.gae.controller.actions;
//clases para el tratamiento de blobs
import com.google.appengine.api.blobstore.BlobKey;
import com.google.appengine.api.blobstore.BlobstoreService;
import com.google.appengine.api.blobstore.BlobstoreServiceFactory;
//posibles excepciones
import javax.servlet.ServletException;
import java.io.IOException;

public class FileRead extends Action {

  public void run()throws ServletException, IOException {
    try {
    	BlobstoreService blobstoreService= BlobstoreServiceFactory.getBlobstoreService();
    	BlobKey blobKey= (BlobKey)request.getSession().getAttribute(&quot;blobKey&quot;);
    	if(blobKey==null){
    		String _blobKey=request.getParameter(&quot;blob-key&quot;);
        	blobKey = new BlobKey(_blobKey);
    	}
        blobstoreService.serve(blobKey, response);
    } catch (Exception ex) {
      throw new ServletException(ex);
    }
  }
}
</pre></p>
<p><strong>Controlador</strong></p>
<p>Controller.java</p>
<p><pre class="brush: java; collapse: true; light: false; toolbar: true;">
package ingenio.ds.gae.controller;
//clases con las cuales trabaja
import ingenio.ds.gae.controller.actions.Action;
import ingenio.ds.gae.model.PMF;
import java.util.Map;
import java.util.HashMap;
import java.util.StringTokenizer;
import javax.jdo.PersistenceManager;
//clases para que sea servlet
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
//posibles excepciones
import javax.servlet.ServletException;
import java.io.IOException;

@SuppressWarnings(&quot;serial&quot;)
public class Controller extends HttpServlet{

	final PersistenceManager pm = PMF.get().getPersistenceManager();

	public void doGet(HttpServletRequest rq, HttpServletResponse rp)throws IOException, ServletException{
		ejecutar(rq, rp);
	}

	public void doPost(HttpServletRequest rq, HttpServletResponse rp)throws IOException, ServletException{
		ejecutar(rq, rp);
	}

	private void ejecutar(HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException{
		HttpSession session=request.getSession();
        @SuppressWarnings(&quot;unchecked&quot;)
		Map mapaAcciones = (Map)session.getAttribute(&quot;mapaAcciones&quot;);
        if(mapaAcciones==null){
            mapaAcciones=new HashMap();
        }
        ServletContext context=getServletContext();
        try {
            String infoRuta = request.getPathInfo();
            if(infoRuta==null){
            	throw new ServletException(&quot;RUTA DESCONOCIDA&quot;);
            }
            Action accion= (Action) mapaAcciones.get(infoRuta);
            if(accion==null){
            	StringTokenizer st = new StringTokenizer(infoRuta,&quot;/&quot;);
                if(st.countTokens()!=2){
                	throw new ServletException(&quot;estado interno invalido- no hay informacion de ruta[&quot;+infoRuta+&quot;]&quot;);
                }
                String evento = st.nextToken();
                String bean = st.nextToken();
                String servlet=&quot;ingenio.ds.gae.controller.actions.&quot;+ evento + bean;
                try {
                    @SuppressWarnings(&quot;rawtypes&quot;)
					Class claseAccion = Class.forName(servlet);
                    accion = (Action) claseAccion.newInstance();
                    mapaAcciones.put(infoRuta,accion);
                    session.setAttribute(&quot;mapaAcciones&quot;,mapaAcciones);
                }catch (ClassNotFoundException ex){
                    throw new ServletException(&quot;No se pudo cargar la clase &quot;+servlet+&quot;: &quot;+ex.getMessage());
                }catch (InstantiationException ex){
                    throw new ServletException(&quot;No se pudo instanciar un objeto de la clase &quot;+servlet+&quot;: &quot;+ex.getMessage());
                }catch (IllegalAccessException ex){
                    throw new ServletException(servlet+&quot;: &quot;+ex.getMessage());
                }
            }
			if(pm==null){
				throw new ServletException(&quot;MODELO DE CONEXION A BD NULO, IMPOSIBLE CONTINUAR CON LA OPERACION&quot;);
			}
            accion.setRequest(request);
            accion.setPersistenceManager(PMF.get().getPersistenceManager());
            accion.setResponse(response);
            accion.setApplication(context);
            accion.run();
        } catch (Exception e) {
            throw new ServletException(&quot;Error... \n&quot;+e);
        }
	}

    public String getServletInfo() {
        return &quot;CONTROLADOR DE ACCIONES Y REDIRECCIONAMIENTO (SIN MI NO HAY COMUNICACION ENTRE LO QUE VES Y LO QUE NO VES);&quot;;
    }
}
</pre></p>
<p style="text-align:center;"><strong>LAS JSP</strong></p>
<p>InitModel.jsp</p>
<p><pre class="brush: java; collapse: true; html-script: true; light: false; toolbar: true;">
&lt;%
String BASEURL=request.getContextPath();
String CONTROLLER=BASEURL+&quot;/servlet&quot;;
String ABSOLUTEURL=application.getInitParameter(&quot;ABSOLUTEURL&quot;);
String IMGSFOLDER=&quot;/&quot;;

application.setAttribute(&quot;CONTROLLER&quot;,CONTROLLER);
application.setAttribute(&quot;BASEURL&quot;,BASEURL);
application.setAttribute(&quot;ABSOLUTEURL&quot;,ABSOLUTEURL);
application.setAttribute(&quot;IMGSFOLDER&quot;,IMGSFOLDER);
%&gt;
</pre></p>
<p>index.jsp</p>
<p><pre class="brush: java; collapse: true; html-script: true; light: false; toolbar: true;">
&lt;%@ include file=&quot;WEB-INF/InitModel.jsp&quot;%&gt;

&lt;html&gt;
&lt;head&gt;

&lt;title&gt;MVC on GAE&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;
&lt;%@ include file=&quot;estilo.css&quot;%&gt;
&lt;/style&gt;
&lt;!--En este ejercicio repasaremos por la gran mayoria de entradas de JSP--&gt;
&lt;/head&gt;

&lt;body&gt;

 &lt;table width=&quot;100%&quot; border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;&gt;
 &lt;tr&gt;
 &lt;td colspan=&quot;2&quot; valign=&quot;top&quot; align=&quot;right&quot;&gt;
 &lt;div id=&quot;titulo&quot; align=&quot;right&quot;&gt;
 &lt;img src=&quot;&lt;%=application.getAttribute(&quot;ABSOLUTEURL&quot;)%&gt;logo.png&quot;
 width=&quot;282&quot; height=&quot;95&quot;&gt;
 &lt;/div&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td valign=&quot;top&quot;&gt;
 &lt;ul&gt;
 &lt;li&gt;&lt;a href=&quot;&lt;%=application.getAttribute(&quot;ABSOLUTEURL&quot;)%&gt;index.jsp&quot;&gt;MENU&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href=&quot;&lt;%=application.getAttribute(&quot;ABSOLUTEURL&quot;)%&gt;index.jsp?pagina=gd&quot;&gt;Departamentos&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href=&quot;&lt;%=application.getAttribute(&quot;ABSOLUTEURL&quot;)%&gt;index.jsp?pagina=ge&quot;&gt;Empleados&lt;/a&gt;&lt;/li&gt;
 &lt;/ul&gt;&lt;/td&gt;
 &lt;td&gt;
 &lt;%
 String pagina = request.getParameter(&quot;pagina&quot;);
 if (pagina == null) {pagina = &quot;&quot;;}
 %&gt;
 &lt;%if (pagina.matches(&quot;gd&quot;)) {%&gt;
 &lt;%@ include file=&quot;gestion_departamento.jsp&quot;%&gt;
 &lt;%}%&gt;
 &lt;%if (pagina.matches(&quot;ge&quot;)) {%&gt;
 &lt;%@ include file=&quot;gestion_empleado.jsp&quot;%&gt;
 &lt;%}%&gt;
 &lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre></p>
<p>gestion_departamento.jsp</p>
<p><pre class="brush: java; collapse: true; html-script: true; light: false; toolbar: true;">
&lt;table width=&quot;100%&quot; border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;&gt;
 &lt;tr&gt;
 &lt;td valign=&quot;top&quot;&gt;
 &lt;jsp:include page=&quot;registro_departamento.jsp&quot;/&gt;
 &lt;/td&gt;
 &lt;td&gt;
 &lt;div style=&quot;height:650px; overflow:scroll;&quot;&gt;
 &lt;jsp:include page=&quot;listar_departamento.jsp&quot;/&gt;
 &lt;/div&gt;
 &lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;
</pre></p>
<p>registro_departamento.jsp</p>
<p><pre class="brush: java; collapse: true; html-script: true; light: false; toolbar: true;">
&lt;form action=&quot;&lt;%=application.getAttribute(&quot;CONTROLLER&quot;).toString()%&gt;/Agregar/Departamento&quot; method=&quot;post&quot; enctype=&quot;application/x-www-form-urlencoded&quot;&gt;
 &lt;table id=&quot;registro&quot; width=&quot;110&quot; border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;&gt;
 &lt;tr align=&quot;center&quot;&gt;
 &lt;td colspan=&quot;2&quot; align=&quot;center&quot;&gt;DATOS DEPARTAMENTO&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;NOMBRE&lt;/td&gt;
 &lt;td&gt;&lt;input name=&quot;nombre&quot; type=&quot;text&quot;&gt; &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;DESCRIPCION&lt;/td&gt;
 &lt;td&gt;&lt;textarea name=&quot;descripcion&quot; cols=&quot;20&quot; rows=&quot;5&quot;&gt;&lt;/textarea&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr align=&quot;center&quot;&gt;
 &lt;td colspan=&quot;2&quot; align=&quot;center&quot;&gt;&lt;input type=&quot;submit&quot; value=&quot;Guargar&quot;&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/form&gt;

</pre></p>
<p>listar_departamento.jsp</p>
<p><pre class="brush: java; collapse: true; html-script: true; light: false; toolbar: true;">
&lt;%@ page import=&quot;java.util.List&quot;%&gt;
&lt;%@ page import=&quot;ingenio.ds.gae.model.entity.Departamento&quot;%&gt;
&lt;%@ page import=&quot;ingenio.ds.gae.model.jdo.JDO&quot;%&gt;
 &lt;%
 JDO&lt;Departamento&gt; jdo=JDO.getInstance(Departamento.class);
 List&lt;Departamento&gt; lista_departamento=jdo.findAll();
 %&gt;
 &lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;&gt;
 &lt;tr&gt;&lt;td colspan=&quot;3&quot; align=&quot;center&quot; &gt;LISTA DE DEPARTAMENTOS &lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td calign=&quot;center&quot; &gt;ID&lt;/td&gt;&lt;td calign=&quot;center&quot; &gt;NOMBRE&lt;/td&gt;&lt;td calign=&quot;center&quot; &gt;DESCRIPCION&lt;/td&gt;&lt;/tr&gt;
 &lt;%for(int i=0;i&lt;lista_departamento.size();i++){
 Departamento departamento=(Departamento)lista_departamento.get(i);
 out.print(&quot;&lt;tr&gt;&quot;);
 out.print(&quot;&lt;td&gt;&quot;+departamento.getId()+&quot;&lt;/td&gt;&quot;);
 out.print(&quot;&lt;td&gt;&quot;+departamento.getNombre()+&quot;&lt;/td&gt;&quot;);
 out.print(&quot;&lt;td&gt;&quot;+departamento.getDescripcion()+&quot;&lt;/td&gt;&quot;);
 out.print(&quot;&lt;/tr&gt;&quot;);
 }%&gt;
 &lt;/table&gt;
 &lt;/body&gt;
&lt;/html&gt;
</pre></p>
<p>gestion_empleado.jsp</p>
<p><pre class="brush: java; collapse: true; light: false; toolbar: true;">
&lt;table width=&quot;100%&quot; border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;&gt;
 &lt;tr&gt;
 &lt;td valign=&quot;top&quot;&gt;
 &lt;jsp:include page=&quot;registro_empleado.jsp&quot;/&gt;
 &lt;/td&gt;
 &lt;td&gt;
 &lt;div style=&quot;height:650px; overflow:scroll;&quot;&gt;
 &lt;jsp:include page=&quot;listar_empleado.jsp&quot;/&gt;
 &lt;/div&gt;
 &lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;
</pre></p>
<p>registro_empleado.jsp</p>
<p><pre class="brush: java; collapse: true; html-script: true; light: false; toolbar: true;">
&lt;%@ page import=&quot;java.util.List&quot;%&gt;
&lt;%@ page import=&quot;ingenio.ds.gae.model.entity.Departamento&quot;%&gt;
&lt;%@ page import=&quot;ingenio.ds.gae.model.jdo.JDO&quot;%&gt;
&lt;%@ page import=&quot;com.google.appengine.api.blobstore.BlobstoreServiceFactory&quot; %&gt;
&lt;%@ page import=&quot;com.google.appengine.api.blobstore.BlobstoreService&quot; %&gt;
&lt;%
 BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
 String url=&quot;&quot;;
 url=((String)application.getAttribute(&quot;CONTROLLER&quot;))+&quot;/Agregar/Empleado&quot;;
 url=blobstoreService.createUploadUrl(url);
%&gt;
&lt;form action=&quot;&lt;%=url%&gt;&quot; method=&quot;post&quot; enctype=&quot;multipart/form-data&quot;&gt;

&lt;table id=&quot;registro&quot; width=&quot;110&quot; border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;&gt;
 &lt;tr align=&quot;center&quot;&gt;
 &lt;td colspan=&quot;2&quot; align=&quot;center&quot;&gt;DATOS EMPLEADO&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Nombre&lt;/td&gt;
 &lt;td&gt;&lt;input name=&quot;nombre&quot; type=&quot;text&quot; value=&quot;&quot;&gt; &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Apellido&lt;/td&gt;
 &lt;td&gt;&lt;input name=&quot;apellido&quot; type=&quot;text&quot; value=&quot;&quot;&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Identificacion&lt;/td&gt;
 &lt;td&gt;&lt;input name=&quot;identificacion&quot; type=&quot;text&quot; value=&quot;&quot;&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Fecha de nacimiento&lt;/td&gt;
 &lt;td&gt;&lt;input name=&quot;fdn&quot; type=&quot;text&quot; value=&quot;dd/MM/yyyy&quot;&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td valign=&quot;top&quot;&gt;Departamento&lt;/td&gt;
 &lt;td&gt;
 &lt;select name=&quot;departamento&quot;&gt;
 &lt;%
 JDO&lt;Departamento&gt; jdo=JDO.getInstance(Departamento.class);
 List&lt;Departamento&gt; lista_departamento=jdo.findAll();
 for(int i=0;i&lt;lista_departamento.size();i++){
 Departamento departamento=lista_departamento.get(i);
 out.print(&quot;&lt;option value='&quot;+departamento.getId()+&quot;'&gt;&quot;+departamento.getNombre()+&quot;&lt;/option&gt;&quot;);
 }%&gt;
 &lt;/select&gt;
 &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Sueldo&lt;/td&gt;
 &lt;td&gt;&lt;input name=&quot;sueldo&quot; type=&quot;text&quot; value=&quot;00000&quot;&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Auxilio de transporte&lt;/td&gt;
 &lt;td&gt;&lt;input name=&quot;transporte&quot; type=&quot;text&quot; value=&quot;000&quot;&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Foto&lt;/td&gt;
 &lt;td&gt;&lt;input name=&quot;foto&quot; type=&quot;file&quot;&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr align=&quot;center&quot;&gt;
 &lt;td colspan=&quot;2&quot; align=&quot;center&quot;&gt;&lt;input type=&quot;submit&quot; value=&quot;Guargar&quot;&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/form&gt;
</pre></p>
<p>listar_empleado.jsp</p>
<p><pre class="brush: java; collapse: true; html-script: true; light: false; toolbar: true;">
&lt;%@ page import=&quot;java.util.List&quot;%&gt;
&lt;%@ page import=&quot;ingenio.ds.gae.model.entity.Empleado&quot;%&gt;
&lt;%@ page import=&quot;ingenio.ds.gae.model.jdo.JDO&quot;%&gt;
 &lt;%
 JDO&lt;Empleado&gt; jdo=JDO.getInstance(Empleado.class);
 List&lt;Empleado&gt; lista_empleado=jdo.findAll();
 Double total_sueldo=0.0;
 Double total_auxili=0.0;
 %&gt;
 &lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;&gt;
 &lt;tr&gt;&lt;td colspan=&quot;2&quot; align=&quot;center&quot; &gt;DATOS NOMINA &lt;/td&gt;&lt;/tr&gt;
 &lt;%for(int i=0;i&lt;lista_empleado.size();i++){
 Empleado empleado=(Empleado)lista_empleado.get(i);

 total_sueldo=total_sueldo+empleado.getSueldo();
 total_auxili=total_auxili+empleado.getTransporte();
 session.setAttribute(&quot;empleado&quot;,empleado);
 %&gt;
 &lt;tr&gt;
 &lt;jsp:include page=&quot;ver_empleado.jsp&quot;/&gt;
 &lt;/tr&gt;
 &lt;%}%&gt;
 &lt;tr&gt;&lt;td&gt;TOTAL SUELDO&lt;/td&gt; &lt;td&gt;&lt;%=total_sueldo%&gt;&lt;/td&gt; &lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;TOTAL AUXILIO&lt;/td&gt; &lt;td&gt;&lt;%=total_auxili%&gt;&lt;/td&gt; &lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;TOTAL NOMINA&lt;/td&gt; &lt;td&gt;&lt;%=total_sueldo+total_auxili%&gt;&lt;/td&gt; &lt;/tr&gt;
 &lt;/table&gt;
 &lt;/body&gt;
&lt;/html&gt;
</pre></p>
<p>ver_empleado.jsp</p>
<p><pre class="brush: java; collapse: true; html-script: true; light: false; toolbar: true;">
&lt;%@ page import=&quot;java.util.List&quot;%&gt;
&lt;%@ page import=&quot;ingenio.ds.gae.model.entity.Empleado&quot;%&gt;
&lt;%@ page import=&quot;ingenio.ds.gae.model.entity.Departamento&quot;%&gt;
&lt;%@ page import=&quot;ingenio.ds.gae.model.jdo.JDO&quot;%&gt;
&lt;%@ page import=&quot;java.util.Date&quot;%&gt;

&lt;%
JDO&lt;Departamento&gt; jdo=JDO.getInstance(Departamento.class);
Empleado empleado=(Empleado)session.getAttribute(&quot;empleado&quot;);
Departamento departamento =jdo.findByKey(empleado.getDepartamento());
Date hoy=new Date();
int edad= (hoy.getYear()*365+hoy.getMonth()*30+hoy.getDate());
edad=edad-(empleado.getFdn().getYear()*365+empleado.getFdn().getMonth()*30+empleado.getFdn().getDate());
edad=edad/365;
%&gt;
&lt;td&gt;
 &lt;img width=&quot;150&quot; height=&quot;200&quot; src=&quot;/servlet/File/Read?blob-key=&lt;%=empleado.getFotoKey().getKeyString() %&gt;&quot;/&gt; &lt;br/&gt;
 &lt;%=edad%&gt;&amp;nbsp;A&amp;ntilde;os
&lt;/td&gt;
&lt;td&gt;
 &lt;table width=&quot;100%&quot; border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;1&quot;&gt;
 &lt;tr&gt;&lt;td&gt;ID&lt;/td&gt;&lt;td&gt;&lt;%=empleado.getId()%&gt;&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;NOMBRE&lt;/td&gt;&lt;td&gt;&lt;%=empleado.getNombre()+&quot; &quot;+empleado.getApellido()%&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;IDENTIFICACION&lt;/td&gt;&lt;td&gt;&lt;%=empleado.getIdentificacion()%&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;DEPARTAMENTO&lt;/td&gt;&lt;td&gt;&lt;%=(&quot;&quot;+departamento.getNombre() +&quot;&quot;)%&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;SUELDO&lt;/td&gt;&lt;td&gt;&lt;%=empleado.getSueldo()%&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;AUXILIO&lt;/td&gt;&lt;td&gt;&lt;%=empleado.getTransporte()%&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;TOTAL DEVENGADO&lt;/td&gt;&lt;td&gt;&lt;%=empleado.getTransporte()+empleado.getSueldo()%&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/td&gt;
</pre></p>
<p style="text-align:center;"><strong>LA CONFIGURACIÓN</strong></p>
<p><strong>XMLs</strong></p>
<p>appengine-web.xml</p>
<p><pre class="brush: xml; collapse: true; light: false; toolbar: true;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;appengine-web-app xmlns=&quot;http://appengine.google.com/ns/1.0&quot;&gt;
 &lt;application&gt;&lt;/application&gt;
 &lt;version&gt;1&lt;/version&gt;

 &lt;!-- Configure java.util.logging --&gt;
 &lt;system-properties&gt;
 &lt;property name=&quot;java.util.logging.config.file&quot; value=&quot;WEB-INF/logging.properties&quot;/&gt;
 &lt;/system-properties&gt;
 &lt;sessions-enabled&gt;true&lt;/sessions-enabled&gt;
&lt;/appengine-web-app&gt;
</pre></p>
<p>web.xml</p>
<p><pre class="brush: xml; collapse: true; light: false; toolbar: true;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;web-app xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
xmlns=&quot;http://java.sun.com/xml/ns/javaee&quot;
xmlns:web=&quot;http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd&quot;
xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd&quot; version=&quot;2.5&quot;&gt;

 &lt;display-name&gt;EJERCICIO GAE 01 MODELO-VISTA-CONTROLADOR&lt;/display-name&gt;
 &lt;description&gt; XML de configuracion para aplicar el patron MVC en JSP&lt;/description&gt;
 &lt;context-param&gt;
 &lt;param-name&gt;ABSOLUTEURL&lt;/param-name&gt;
 &lt;param-value&gt;http://localhost:9999/&lt;/param-value&gt;
 &lt;/context-param&gt;
 &lt;servlet&gt;
 &lt;servlet-name&gt;controlador&lt;/servlet-name&gt;
 &lt;servlet-class&gt;ingenio.ds.gae.controller.Controller&lt;/servlet-class&gt;
 &lt;/servlet&gt;
 &lt;servlet-mapping&gt;
 &lt;servlet-name&gt;controlador&lt;/servlet-name&gt;
 &lt;url-pattern&gt;/servlet/*&lt;/url-pattern&gt;
 &lt;/servlet-mapping&gt;
 &lt;welcome-file-list&gt;
 &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;
 &lt;/welcome-file-list&gt;
&lt;/web-app&gt;
</pre></p>
<p>jdoconfig.xml</p>
<p><pre class="brush: xml; collapse: true; light: false; toolbar: true;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;jdoconfig xmlns=&quot;http://java.sun.com/xml/ns/jdo/jdoconfig&quot;
 xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
 xsi:noNamespaceSchemaLocation=&quot;http://java.sun.com/xml/ns/jdo/jdoconfig&quot;&gt;

&lt;persistence-manager-factory name=&quot;transactions-optional&quot;&gt;
 &lt;property name=&quot;javax.jdo.PersistenceManagerFactoryClass&quot;
 value=&quot;org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory&quot;/&gt;
 &lt;property name=&quot;javax.jdo.option.ConnectionURL&quot; value=&quot;appengine&quot;/&gt;
 &lt;property name=&quot;javax.jdo.option.NontransactionalRead&quot; value=&quot;true&quot;/&gt;
 &lt;property name=&quot;javax.jdo.option.NontransactionalWrite&quot; value=&quot;true&quot;/&gt;
 &lt;property name=&quot;javax.jdo.option.RetainValues&quot; value=&quot;true&quot;/&gt;
 &lt;property name=&quot;datanucleus.appengine.autoCreateDatastoreTxns&quot; value=&quot;true&quot;/&gt;
 &lt;/persistence-manager-factory&gt;
&lt;/jdoconfig&gt;
</pre></p>
<p><strong>Properties</strong></p>
<p>loggin.properties</p>
<p><pre class="brush: java; collapse: true; html-script: true; light: false; toolbar: true;">
# A default java.util.logging configuration.
# (All App Engine logging is through java.util.logging by default).
#
# To use this configuration, copy it into your application's WEB-INF
# folder and add the following to your appengine-web.xml:
#
#
#
#
#

# Set the default logging level for all loggers to WARNING
.level = WARNING
</pre></p>
<p>log4j.properties</p>
<p><pre class="brush: java; collapse: true; html-script: true; light: false; toolbar: true;">
# A default log4j configuration for log4j users.
#
# To use this configuration, deploy it into your application's WEB-INF/classes
# directory.  You are also encouraged to edit it as you like.

# Configure the console as our one appender
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p [%c] - %m%n

# tighten logging on the DataNucleus Categories
log4j.category.DataNucleus.JDO=WARN, A1
log4j.category.DataNucleus.Persistence=WARN, A1
log4j.category.DataNucleus.Cache=WARN, A1
log4j.category.DataNucleus.MetaData=WARN, A1
log4j.category.DataNucleus.General=WARN, A1
log4j.category.DataNucleus.Utility=WARN, A1
log4j.category.DataNucleus.Transaction=WARN, A1
log4j.category.DataNucleus.Datastore=WARN, A1
log4j.category.DataNucleus.ClassLoading=WARN, A1
log4j.category.DataNucleus.Plugin=WARN, A1
log4j.category.DataNucleus.ValueGeneration=WARN, A1
log4j.category.DataNucleus.Enhancer=WARN, A1
log4j.category.DataNucleus.SchemaTool=WARN, A1
</pre></p>
<br />Filed under: <a href='http://ingeniods.wordpress.com/category/google-app-engine/'>GOOGLE APP ENGINE</a>, <a href='http://ingeniods.wordpress.com/category/java/'>JAVA</a>, <a href='http://ingeniods.wordpress.com/category/jsp/'>JSP</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ingeniods.wordpress.com/1388/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ingeniods.wordpress.com/1388/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ingeniods.wordpress.com/1388/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ingeniods.wordpress.com/1388/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ingeniods.wordpress.com/1388/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ingeniods.wordpress.com/1388/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ingeniods.wordpress.com/1388/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ingeniods.wordpress.com/1388/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ingeniods.wordpress.com/1388/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ingeniods.wordpress.com/1388/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ingeniods.wordpress.com/1388/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ingeniods.wordpress.com/1388/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ingeniods.wordpress.com/1388/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ingeniods.wordpress.com/1388/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ingeniods.wordpress.com&amp;blog=12051304&amp;post=1388&amp;subd=ingeniods&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ingeniods.wordpress.com/2011/11/23/mi-primera-aplicacion-en-google-app-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>10.414252 -75.526329</georss:point>
		<geo:lat>10.414252</geo:lat>
		<geo:long>-75.526329</geo:long>
		<media:content url="http://0.gravatar.com/avatar/057f3ee91b2292367e219437e78ac713?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ingeniods</media:title>
		</media:content>

		<media:content url="http://ingeniods.files.wordpress.com/2011/11/appengine_lowres.png" medium="image">
			<media:title type="html">appengine_lowres</media:title>
		</media:content>

		<media:content url="http://ingeniods.files.wordpress.com/2010/04/2h6yt74.jpg" medium="image">
			<media:title type="html">Descargar todo</media:title>
		</media:content>

		<media:content url="http://ingeniods.files.wordpress.com/2011/11/ejercicio_gae_01.png" medium="image">
			<media:title type="html">ejercicio_gae_01</media:title>
		</media:content>
	</item>
		<item>
		<title>Xtend: Un lenguaje hecho para desarrolladores Java</title>
		<link>http://ingeniods.wordpress.com/2011/11/18/xtend-un-lenguaje-hecho-para-desarrolladores-java/</link>
		<comments>http://ingeniods.wordpress.com/2011/11/18/xtend-un-lenguaje-hecho-para-desarrolladores-java/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 15:04:35 +0000</pubDate>
		<dc:creator>ingeniods</dc:creator>
				<category><![CDATA[OTROS]]></category>

		<guid isPermaLink="false">http://ingeniods.wordpress.com/?p=1406</guid>
		<description><![CDATA[Aun no he tenido tiempo de revisar esto. Pero de todas manera comunico la propuesta de Eclipse ORG: Xtend Adapta a Java  &#8230; pero reduciendo el ruido &#8230;   y añadir un poco de azúcar!  Java es una gran plataforma y el lenguaje tiene algunas características interesantes. Xtend no pretende reemplazar a Java, por el contrario ser una alternativa en situaciones en las que Java no brilla. Por lo tanto Xtend &#8230; compila [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ingeniods.wordpress.com&amp;blog=12051304&amp;post=1406&amp;subd=ingeniods&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" src="http://ingeniods.files.wordpress.com/2011/11/xtend_logo.png?w=655" alt="" /><br />
Aun no he tenido tiempo de revisar esto. Pero de todas manera comunico la propuesta de Eclipse ORG: <a href="http://www.eclipse.org/Xtext/xtend/">Xtend</a></p>
<table cellspacing="4">
<tbody>
<tr>
<td><strong>Adapta a Java </strong></td>
<td></td>
<td><strong>&#8230; pero reduciendo el ruido &#8230; </strong></td>
<td></td>
<td><strong> y añadir un poco de azúcar!</strong></td>
</tr>
<tr>
<td> Java es una gran plataforma y el lenguaje tiene algunas características interesantes. Xtend no pretende reemplazar a Java, por el contrario ser una alternativa en situaciones en las que Java no brilla. Por lo tanto Xtend &#8230;</p>
<ul>
<li>compila el código y hacerlo legible en Java</li>
<li>soporte de herramientas de Eclipse IDE</li>
<li>se parece a la sintaxis de Java</li>
<li>se basa en el JDK como una biblioteca</li>
</ul>
</td>
<td></td>
<td> En contraste con Java, Xtend elimina el ruido innecesario. Reducir al mínimo el código no sólo ayuda a escribir menos, pero lo más importante hace que el código sea más legible y fácil de mantener.</p>
<ul>
<li>inferencia de tipos</li>
<li>accesos a propiedades (sin uso de getters y setters)</li>
<li>punto y coma opcional</li>
<li>paréntesis de métodos opcional</li>
</ul>
</td>
<td></td>
<td>Ya las mejoras a Java mediante la eliminación del ruido es muy útil, pero también Java carece de algunas características. Por lo tanto Xtend añade las siguientes características, que le encantará una vez que pongas las manos sobre ellas.</p>
<ul>
<li>Uso de predicados (closures)</li>
<li>expresión switch más potente</li>
<li>expresiones de plantillas</li>
<li>extensión de métodos</li>
<li>envío múltiple</li>
<li>la sobrecarga de operadores</li>
</ul>
</td>
</tr>
</tbody>
</table>
<br />Filed under: <a href='http://ingeniods.wordpress.com/category/otros/'>OTROS</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ingeniods.wordpress.com/1406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ingeniods.wordpress.com/1406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ingeniods.wordpress.com/1406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ingeniods.wordpress.com/1406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ingeniods.wordpress.com/1406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ingeniods.wordpress.com/1406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ingeniods.wordpress.com/1406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ingeniods.wordpress.com/1406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ingeniods.wordpress.com/1406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ingeniods.wordpress.com/1406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ingeniods.wordpress.com/1406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ingeniods.wordpress.com/1406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ingeniods.wordpress.com/1406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ingeniods.wordpress.com/1406/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ingeniods.wordpress.com&amp;blog=12051304&amp;post=1406&amp;subd=ingeniods&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ingeniods.wordpress.com/2011/11/18/xtend-un-lenguaje-hecho-para-desarrolladores-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>10.414252 -75.526329</georss:point>
		<geo:lat>10.414252</geo:lat>
		<geo:long>-75.526329</geo:long>
		<media:content url="http://0.gravatar.com/avatar/057f3ee91b2292367e219437e78ac713?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ingeniods</media:title>
		</media:content>

		<media:content url="http://ingeniods.files.wordpress.com/2011/11/xtend_logo.png" medium="image" />
	</item>
		<item>
		<title>Google I/O 2011</title>
		<link>http://ingeniods.wordpress.com/2011/10/21/google-io-2011/</link>
		<comments>http://ingeniods.wordpress.com/2011/10/21/google-io-2011/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 19:39:53 +0000</pubDate>
		<dc:creator>ingeniods</dc:creator>
				<category><![CDATA[EVENTOS]]></category>
		<category><![CDATA[GOOGLE APP ENGINE]]></category>

		<guid isPermaLink="false">http://ingeniods.wordpress.com/?p=1396</guid>
		<description><![CDATA[Interesante evento para quienes están interesados en conocer de primera mano como van las tecnologías de este monstruo de la informática y de la información. Google I/O convoca a miles de desarrolladores para compartir durante dos días, Google I/O se enfoca en construir la proxima generación de aplicaciones para la web, móviles y empresas con Google y tecnologias abiertas para la web. Dentro de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ingeniods.wordpress.com&amp;blog=12051304&amp;post=1396&amp;subd=ingeniods&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Interesante evento para quienes están interesados en conocer de primera mano como van las tecnologías de este monstruo de la informática y de la información.</p>
<p><a href="http://www.google.com/events/io/2011/sessions.html">Google I/O</a> convoca a miles de desarrolladores para compartir durante dos días,<a href="http://www.google.com/events/io/2011/sessions.html"> Google I/O</a> se enfoca en construir la proxima generación de aplicaciones para la web, móviles y empresas con Google y tecnologias abiertas para la web. Dentro de los temas se destacan:</p>
<ul>
<li>Android</li>
<li>Google Chrome</li>
<li>Google APIs</li>
<li>Google Web Toolkit</li>
<li>App Engine</li>
</ul>
<div><a href="http://www.google.com/events/io/2011/sessions.html">vídeos de las principales sesiones del Google I/O 2011 aquí</a></div>
<br />Filed under: <a href='http://ingeniods.wordpress.com/category/eventos/'>EVENTOS</a>, <a href='http://ingeniods.wordpress.com/category/google-app-engine/'>GOOGLE APP ENGINE</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ingeniods.wordpress.com/1396/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ingeniods.wordpress.com/1396/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ingeniods.wordpress.com/1396/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ingeniods.wordpress.com/1396/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ingeniods.wordpress.com/1396/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ingeniods.wordpress.com/1396/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ingeniods.wordpress.com/1396/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ingeniods.wordpress.com/1396/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ingeniods.wordpress.com/1396/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ingeniods.wordpress.com/1396/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ingeniods.wordpress.com/1396/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ingeniods.wordpress.com/1396/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ingeniods.wordpress.com/1396/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ingeniods.wordpress.com/1396/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ingeniods.wordpress.com&amp;blog=12051304&amp;post=1396&amp;subd=ingeniods&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ingeniods.wordpress.com/2011/10/21/google-io-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>10.414252 -75.526329</georss:point>
		<geo:lat>10.414252</geo:lat>
		<geo:long>-75.526329</geo:long>
		<media:content url="http://0.gravatar.com/avatar/057f3ee91b2292367e219437e78ac713?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ingeniods</media:title>
		</media:content>
	</item>
		<item>
		<title>Google Cloud SQL: Google App Engine soporte para SQL</title>
		<link>http://ingeniods.wordpress.com/2011/10/11/google-cloud-sql-google-app-engine-soporte-para-sql/</link>
		<comments>http://ingeniods.wordpress.com/2011/10/11/google-cloud-sql-google-app-engine-soporte-para-sql/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 13:32:10 +0000</pubDate>
		<dc:creator>ingeniods</dc:creator>
				<category><![CDATA[GOOGLE APP ENGINE]]></category>
		<category><![CDATA[Google Cloud SQL]]></category>

		<guid isPermaLink="false">http://ingeniods.wordpress.com/?p=1372</guid>
		<description><![CDATA[La idea de Google es que el desarrollador se olvide de las tareas tareas para mantener y gestionar las bases de datos, para ello se habían inventado el  almacén de datos Google Datastore basado en Bigtable (sistema distribuido de almacenamiento de datos estructurados), al que se podía acceder en Java vía JDO o JPA. pero las [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ingeniods.wordpress.com&amp;blog=12051304&amp;post=1372&amp;subd=ingeniods&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://ingeniods.files.wordpress.com/2011/10/google_appengine.png"><img class="alignleft size-full wp-image-1377" title="google_appengine" src="http://ingeniods.files.wordpress.com/2011/10/google_appengine.png?w=655" alt=""   /></a>La idea de Google es que el desarrollador se olvide de las tareas tareas para mantener y gestionar las bases de datos, para ello se habían inventado el  almacén de datos <strong>Google Datastore basado en Bigtable</strong> (sistema distribuido de almacenamiento de datos estructurados), al que se podía acceder en Java vía JDO o JPA. pero las necesidades de los clientes apuntaron a otra dirección y nació la<a href="http://code.google.com/intl/es/apis/sql/"> <strong>Google Cloud SQL</strong></a> esta es un servicio web que te permite crear, configurar y usar bases de datos relacionales en tus aplicaciones de Google App Engine.<span id="more-1372"></span><br />
Al ofrecer las capacidades de una base de datos MySQL, el servicio le permite mover fácilmente sus datos, aplicaciones y servicios dentro y fuera de la nube. Esto permite la portabilidad de datos de alta y ayuda a acelerar el tiempo de lanzamiento al mercado, porque usted puede aprovechar su base de datos existente (usando JDBC y / o DB-API) en la aplicación de App Engine.<br />
Para asegurar que sus aplicaciones críticas y servicios están funcionando siempre, Google Cloud SQL replica los datos a múltiples regiones geográficas para proporcionar alta disponibilidad de datos.</p>
<p>¿Qué más saco de <a href="http://code.google.com/intl/es/apis/sql/">Google Cloud SQL</a>?</p>
<ul>
<li>El servicio se encuentra actualmente en beta.</li>
<li>Facilidad de uso</li>
<li>Una interfaz gráfica de usuario permite crear, configurar, gestionar y supervisar las instancias de base de datos, con sólo un clic.</li>
<li>Totalmente gestionado</li>
<li>No hay que preocuparse acerca de las tareas tales como la replicación, administración de parches, o de otras tareas de gestión de base de datos.</li>
<li>Todas estas tareas están a cargo de para usted.</li>
<li>Alta disponibilidad de los datos</li>
<li>Integrado con Google App Engine y otros servicios de Google.</li>
</ul>
<br />Filed under: <a href='http://ingeniods.wordpress.com/category/google-app-engine/'>GOOGLE APP ENGINE</a> Tagged: <a href='http://ingeniods.wordpress.com/tag/google-cloud-sql/'>Google Cloud SQL</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ingeniods.wordpress.com/1372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ingeniods.wordpress.com/1372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ingeniods.wordpress.com/1372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ingeniods.wordpress.com/1372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ingeniods.wordpress.com/1372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ingeniods.wordpress.com/1372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ingeniods.wordpress.com/1372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ingeniods.wordpress.com/1372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ingeniods.wordpress.com/1372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ingeniods.wordpress.com/1372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ingeniods.wordpress.com/1372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ingeniods.wordpress.com/1372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ingeniods.wordpress.com/1372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ingeniods.wordpress.com/1372/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ingeniods.wordpress.com&amp;blog=12051304&amp;post=1372&amp;subd=ingeniods&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ingeniods.wordpress.com/2011/10/11/google-cloud-sql-google-app-engine-soporte-para-sql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<georss:point>10.414252 -75.526329</georss:point>
		<geo:lat>10.414252</geo:lat>
		<geo:long>-75.526329</geo:long>
		<media:content url="http://0.gravatar.com/avatar/057f3ee91b2292367e219437e78ac713?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ingeniods</media:title>
		</media:content>

		<media:content url="http://ingeniods.files.wordpress.com/2011/10/google_appengine.png" medium="image">
			<media:title type="html">google_appengine</media:title>
		</media:content>
	</item>
		<item>
		<title>QEPD&#8230; Steve Jobs</title>
		<link>http://ingeniods.wordpress.com/2011/10/06/qepd-steve-jobs/</link>
		<comments>http://ingeniods.wordpress.com/2011/10/06/qepd-steve-jobs/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 13:31:13 +0000</pubDate>
		<dc:creator>ingeniods</dc:creator>
				<category><![CDATA[TUTORIALES]]></category>

		<guid isPermaLink="false">http://ingeniods.wordpress.com/?p=1364</guid>
		<description><![CDATA[Filed under: TUTORIALES<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ingeniods.wordpress.com&amp;blog=12051304&amp;post=1364&amp;subd=ingeniods&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://ingeniods.files.wordpress.com/2011/10/t_hero.png"><img class="aligncenter size-medium wp-image-1368" title="t_hero" src="http://ingeniods.files.wordpress.com/2011/10/t_hero.png?w=300&#038;h=273" alt="" width="300" height="273" /><span id="more-1364"></span></a></p>
<p><a href="http://ingeniods.files.wordpress.com/2011/10/ode-steve-jobs.jpg"><img class="aligncenter size-full wp-image-1365" title="ode-steve-jobs" src="http://ingeniods.files.wordpress.com/2011/10/ode-steve-jobs.jpg?w=655" alt=""   /></a></p>
<p><a href="http://ingeniods.files.wordpress.com/2011/10/ode-steve-jobs-laptop-mag.jpg"><img class="aligncenter size-full wp-image-1366" title="ode-steve-jobs-laptop-mag" src="http://ingeniods.files.wordpress.com/2011/10/ode-steve-jobs-laptop-mag.jpg?w=655" alt=""   /></a></p>
<br />Filed under: <a href='http://ingeniods.wordpress.com/category/tutoriales/'>TUTORIALES</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ingeniods.wordpress.com/1364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ingeniods.wordpress.com/1364/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ingeniods.wordpress.com/1364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ingeniods.wordpress.com/1364/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ingeniods.wordpress.com/1364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ingeniods.wordpress.com/1364/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ingeniods.wordpress.com/1364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ingeniods.wordpress.com/1364/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ingeniods.wordpress.com/1364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ingeniods.wordpress.com/1364/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ingeniods.wordpress.com/1364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ingeniods.wordpress.com/1364/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ingeniods.wordpress.com/1364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ingeniods.wordpress.com/1364/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ingeniods.wordpress.com&amp;blog=12051304&amp;post=1364&amp;subd=ingeniods&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ingeniods.wordpress.com/2011/10/06/qepd-steve-jobs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>10.414252 -75.526329</georss:point>
		<geo:lat>10.414252</geo:lat>
		<geo:long>-75.526329</geo:long>
		<media:content url="http://0.gravatar.com/avatar/057f3ee91b2292367e219437e78ac713?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ingeniods</media:title>
		</media:content>

		<media:content url="http://ingeniods.files.wordpress.com/2011/10/t_hero.png?w=300" medium="image">
			<media:title type="html">t_hero</media:title>
		</media:content>

		<media:content url="http://ingeniods.files.wordpress.com/2011/10/ode-steve-jobs.jpg" medium="image">
			<media:title type="html">ode-steve-jobs</media:title>
		</media:content>

		<media:content url="http://ingeniods.files.wordpress.com/2011/10/ode-steve-jobs-laptop-mag.jpg" medium="image">
			<media:title type="html">ode-steve-jobs-laptop-mag</media:title>
		</media:content>
	</item>
		<item>
		<title>Características de los Sistemas de Información (SI)</title>
		<link>http://ingeniods.wordpress.com/2011/10/03/caracteristicas-de-los-sistemas-de-informacion-si/</link>
		<comments>http://ingeniods.wordpress.com/2011/10/03/caracteristicas-de-los-sistemas-de-informacion-si/#comments</comments>
		<pubDate>Mon, 03 Oct 2011 19:37:39 +0000</pubDate>
		<dc:creator>ingeniods</dc:creator>
				<category><![CDATA[ARTÍCULOS]]></category>

		<guid isPermaLink="false">http://ingeniods.wordpress.com/?p=1359</guid>
		<description><![CDATA[Para habla de las características de los sistemas de información (de ahora en demás SI), debemos definir que es un SI, y esos los podemos definir citando a Andreu, Ricart y Valor (1991), en esta definición un SI queda definido como: “conjunto formal de procesos que, operando sobre una colección de datos estructurada de acuerdo [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ingeniods.wordpress.com&amp;blog=12051304&amp;post=1359&amp;subd=ingeniods&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Para habla de las características de los sistemas de información (de ahora en demás SI), debemos definir que es un SI, y esos los podemos definir citando a Andreu, Ricart y Valor (1991)<span id="more-1359"></span>, en esta definición un SI queda definido como: “conjunto formal de procesos que, operando sobre una colección de datos estructurada de acuerdo a las necesidades de la empresa, recopila, elabora y distribuyen selectivamente la información necesaria para la operación de dicha empresa y para las actividades de dirección y control correspondientes, apoyando, al menos en parte, los procesos de toma de decisiones necesarios para desempeñar funciones de negocio de la empresa de acuerdo con su estrategia”. Un SI tiene diversas características dependiendo de la perspectiva con la que se observa, lo dividiremos en dos grupos (1) desde la naturaleza:</p>
<ul>
<li>Propósito u objetivo.</li>
<li>Globalismo o totalidad.</li>
<li>Entropía.</li>
<li>Homeostasis.</li>
</ul>
<p>Aunque también se pueden ver las características que tienen desde el (2) tipo de sistema:</p>
<ol>
<li>Sistemas Transaccionales:
<ul>
<li>Agilizar las tareas operacionales de la organización.</li>
<li>Alta transaccionabilidad (entradas y salidas de información).</li>
<li>Nivel de cálculo bajo.</li>
</ul>
</li>
<li>Sistemas de Apoyo de las Decisiones:
<ul>
<li>Baja transaccionabilidad (entradas y salidas de información).</li>
<li>Nivel alto de cálculo, y operaciones complejas.</li>
</ul>
</li>
<li>Sistemas Estratégicos:
<ul>
<li>La complejidad de estos SI es alta.</li>
<li>Generalmente su implementación en la organizacional va precedida de los anteriores.</li>
<li>Apuntan a “apuntar” a otros horizontes la organización.</li>
</ul>
</li>
</ol>
<p>Continuación al post <a href="http://wp.me/pOz5S-gJ">Sistemas de información (INTRODUCCIÓN)</a></p>
<br />Filed under: <a href='http://ingeniods.wordpress.com/category/articulos/'>ARTÍCULOS</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ingeniods.wordpress.com/1359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ingeniods.wordpress.com/1359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ingeniods.wordpress.com/1359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ingeniods.wordpress.com/1359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ingeniods.wordpress.com/1359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ingeniods.wordpress.com/1359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ingeniods.wordpress.com/1359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ingeniods.wordpress.com/1359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ingeniods.wordpress.com/1359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ingeniods.wordpress.com/1359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ingeniods.wordpress.com/1359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ingeniods.wordpress.com/1359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ingeniods.wordpress.com/1359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ingeniods.wordpress.com/1359/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ingeniods.wordpress.com&amp;blog=12051304&amp;post=1359&amp;subd=ingeniods&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ingeniods.wordpress.com/2011/10/03/caracteristicas-de-los-sistemas-de-informacion-si/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>10.414252 -75.526329</georss:point>
		<geo:lat>10.414252</geo:lat>
		<geo:long>-75.526329</geo:long>
		<media:content url="http://0.gravatar.com/avatar/057f3ee91b2292367e219437e78ac713?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ingeniods</media:title>
		</media:content>
	</item>
		<item>
		<title>Simulador de Planificador de Procesos</title>
		<link>http://ingeniods.wordpress.com/2011/09/26/simulador-de-planificador-de-procesos/</link>
		<comments>http://ingeniods.wordpress.com/2011/09/26/simulador-de-planificador-de-procesos/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 14:56:48 +0000</pubDate>
		<dc:creator>ingeniods</dc:creator>
				<category><![CDATA[APLICACIONES]]></category>
		<category><![CDATA[PERSONAL]]></category>

		<guid isPermaLink="false">http://ingeniods.wordpress.com/?p=1132</guid>
		<description><![CDATA[La manera en como funciona el procesador corresponde a una serie de algoritmos que están descritos en el sistema operativo; esto genera un impacto teniendo en cuenta el tipo de computador y su uso especifico. Los algoritmos mas conocidos son: FCFS : First Come First Served (primero en llegar primero en ser atendido). SJF : [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ingeniods.wordpress.com&amp;blog=12051304&amp;post=1132&amp;subd=ingeniods&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>La manera en como funciona el procesador corresponde a una serie de algoritmos que están descritos en el sistema operativo; esto genera un impacto teniendo en cuenta el tipo de computador y su uso especifico.<br />
<span id="more-1132"></span><br />
Los algoritmos mas conocidos son:</p>
<ul>
<li>FCFS : First Come First Served (primero en llegar primero en ser atendido).</li>
<li>SJF : Shortest Job First (primero el trabajo más corto).</li>
<li>Priority: por prioridades.</li>
</ul>
<p>Estos algoritmos tienen asignado un tipo:</p>
<ul>
<li>Expropiativo: excluye el proceso que se este ejecutando si tiene menor ranking que otro.</li>
<li>No expropiativo: no excluye el proceso que se este ejecutando si tiene menor ranking que otro.</li>
<li>Round robins con manejo: trata de balancear la asignación de tareas al procesador, manejando el tiempo de ocio.</li>
<li>Round robins sin manejo: trata de balancear la asignación de tareas al procesador, sin manejar el tiempo de ocio.</li>
</ul>
<p>Los algoritmos de igual manera tienen asignado una lógica:</p>
<ul>
<li>Positiva: Funciona de la manera literal en la cual lo describen sus características.</li>
<li>Negativa: Funciona de manera inversa en la cual lo describen sus características.</li>
</ul>
<p><a href="http://ingeniods.files.wordpress.com/2011/09/adop.png"><img class="aligncenter size-medium wp-image-1133" title="ADOP" src="http://ingeniods.files.wordpress.com/2011/09/adop.png?w=270&#038;h=300" alt="" width="270" height="300" /></a><a href="http://www.4shared.com/get/7KgcX1Hq/simulador_ordenamiento_de_proc.html">(Descargar)</a></p>
<p>Si quieres el código fuente envía un email o deja un comentario.</p>
<br />Filed under: <a href='http://ingeniods.wordpress.com/category/aplicaciones/'>APLICACIONES</a>, <a href='http://ingeniods.wordpress.com/category/personal/'>PERSONAL</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ingeniods.wordpress.com/1132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ingeniods.wordpress.com/1132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ingeniods.wordpress.com/1132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ingeniods.wordpress.com/1132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ingeniods.wordpress.com/1132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ingeniods.wordpress.com/1132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ingeniods.wordpress.com/1132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ingeniods.wordpress.com/1132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ingeniods.wordpress.com/1132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ingeniods.wordpress.com/1132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ingeniods.wordpress.com/1132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ingeniods.wordpress.com/1132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ingeniods.wordpress.com/1132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ingeniods.wordpress.com/1132/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ingeniods.wordpress.com&amp;blog=12051304&amp;post=1132&amp;subd=ingeniods&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ingeniods.wordpress.com/2011/09/26/simulador-de-planificador-de-procesos/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		<georss:point>10.414252 -75.526329</georss:point>
		<geo:lat>10.414252</geo:lat>
		<geo:long>-75.526329</geo:long>
		<media:content url="http://0.gravatar.com/avatar/057f3ee91b2292367e219437e78ac713?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ingeniods</media:title>
		</media:content>

		<media:content url="http://ingeniods.files.wordpress.com/2011/09/adop.png?w=270" medium="image">
			<media:title type="html">ADOP</media:title>
		</media:content>
	</item>
		<item>
		<title>Privacidad en internet&#8230; mito</title>
		<link>http://ingeniods.wordpress.com/2011/09/23/privacidad-en-internet-mito/</link>
		<comments>http://ingeniods.wordpress.com/2011/09/23/privacidad-en-internet-mito/#comments</comments>
		<pubDate>Sat, 24 Sep 2011 00:01:40 +0000</pubDate>
		<dc:creator>ingeniods</dc:creator>
				<category><![CDATA[ARTÍCULOS]]></category>
		<category><![CDATA[PERSONAL]]></category>

		<guid isPermaLink="false">http://ingeniods.wordpress.com/?p=1068</guid>
		<description><![CDATA[Privacidad en internet; últimamente se habla mucho con respecto a este tema, y aquí está mi apreciación del &#8220;problema&#8221;. Encuentro tres fuertes razones de ser de toda esta situación son: (1) el Internet nace como una red para compartir información, repito COMPARTIR y los protocolos fueron diseñados para garantizar que la información fuera transmitida correctamente y no [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ingeniods.wordpress.com&amp;blog=12051304&amp;post=1068&amp;subd=ingeniods&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://ingeniods.files.wordpress.com/2011/09/privacidad_004.png"><img class="aligncenter size-medium wp-image-1126" title="privacidad_004" src="http://ingeniods.files.wordpress.com/2011/09/privacidad_004.png?w=300&#038;h=249" alt="" width="300" height="249" /></a><br />
<span id="more-1068"></span><br />
Privacidad en internet; últimamente se habla mucho con respecto a este tema, y aquí está mi apreciación del &#8220;problema&#8221;. Encuentro tres fuertes razones de ser de toda esta situación son: <strong>(1)</strong> el Internet nace como una red para compartir información, repito COMPARTIR y los protocolos fueron diseñados para garantizar que la información fuera transmitida correctamente y no para impedir el acceso a la información. <strong>(2)</strong> la naturaleza de las interacciones/actividades desarrolladas en Internet permiten perfilar patrones de conducta de los usuarios (patrones que la mayor parte del tiempo son usados de forma comercial). <strong>(3)</strong> la falta de preocupación de la mayoría de  personas con respecto al uso que se le pueda dar a sus datos, si estos son usados por un tercero sin previa autorización.</p>
<p>La privacidad de las personas comenzó a desvanecerse antes del Internet, desde la generación de corriente eléctrica por parte del hombre, desde ese instante, la ilusión de un sólido muro de privacidad que teníamos comenzó a convertirse en una fina tela. Este proceso  atravesó por miles de inventos teléfonos, tarjetas de crédito, teléfonos celulares, etc. el Internet aparte de proporcionar más erosión a esa noción de privacidad, también planteó una diversificación de las maneras de infringir esta noción.</p>
<p>Personalmente creo que la privacidad en la red hoy en día se ha esfumado y ha desaparecido por un buen tiempo, ya que este concepto va en contra de todas las herramientas de comunicación basadas en Internet; por consiguiente la intimidad real hoy en día significa sacrificar todas las comodidades modernas. Los teléfono, automóviles, computadores, tarjetas de crédito, redes sociales, etc. La conectividad de la colectividad el &#8220;Estar siempre conectados&#8221;, ha permitido este tipo de situaciones (aparte de la naturaleza misma del Internet); las personas puede que se incomoden y tengan delirio de conspiraciones persecutorias al enterarse que un servicio, aplicación y/o dispositivo que se usa frecuentemente  se podría utilizar para realizar monitoreo a las dinámicas sociales y rutinas en la vida  diaria de sus usuarios. Paradójicamente a esto puede que sean estas mismas personas las que usan &#8220;check-in&#8221; en Facebook o escriben cada pensamiento o acción en Twitter. La pregunta sobre la privacidad va más allá, cuantas de las personas que criticaron Facebook  y/o criticaron a Apple por lo de los iPhone ¿se han dedicado a leer el contrato de condiciones de uso y la letra menuda?</p>
<p>Las herramientas de interacción social sirven al propósito de conectar y conectarse entre ellas y la cantidad de información que dejamos en ellas es increíble; hay que tener en cuenta que hay una cantidad excesiva de incertidumbre, paranoia y el miedo a la violación de la intimidad, sin embargo, con tal preocupación creciente, ¿quién ha considerado la no utilización de estos medios?, El Internet fue construido para compartir información y estas herramientas fueron desarrolladas con el objetivo de generar interacciones (y dejar información)  y aunque eso podría ser un problema, es una cuestión de comprensión, y, en algunos casos esto puede que se deba a que no todas las herramientas son para todos los usuarios.</p>
<p>La vida moderna también ha incluido una vida electrónica lo que implica el uso de herramientas y medios sociales electrónicos, podríamos decir que la utilización de medios de interacción electrónica ya hace parte de nuestra vida social nuestra presencia en la red toma un papel determinante.</p>
<p>Aunque hay que anotar que no solo el Internet y las redes sociales dan inicio a toda esta invasión a la intimidad, en Colombia, muy bien conocido es el caso de &#8220;las chuzadas del DAS&#8221;, así que el tema al parecer, es que las infracciones a la privacidad de las personas eran invisibles o eran cadenas no conectadas por los individuos entre sí, y/o con usuarios conectados a Internet.</p>
<p>Es innegable que actividades personales como pagar cuentas, ir de compras, hacer arreglos de viaje sean migradas cada vez más a la red, los usuarios de Internet pueden darse cuenta que cada vez es más la capacidad que tienes los sitios para &#8220;recordar&#8221; la última vez que los visitó o &#8220;conocer&#8221; el tipo de anuncios que les gustaría ver, o &#8220;recodar&#8221; las preferencias de consumo; y en este pequeño proceso los usuarios comienzan a olvidad su privacidad. El tema es tal vez que la gente a sabiendas, renuncia a la privacidad por conveniencia, aplicaciones como Flury, o Facebook, los archivos de registro como el caso de los iPhones se hacen visibles y aunque se produce una reacción mediática en la memoria colectiva el efecto es temporal.</p>
<p><a href="http://ingeniods.files.wordpress.com/2011/09/privacidad_001.png"><img class="alignleft size-full wp-image-1123" title="privacidad_001" src="http://ingeniods.files.wordpress.com/2011/09/privacidad_001.png?w=655" alt=""   /></a></p>
<p>En un estudio de los 50 sitios web más visitados, The Wall Street Journal estima que en julio de 2010 aproximadamente dos terceras partes de los archivos de seguimiento de estos sitios fueron enviados a empresas de recopilación de información de perfiles de consumo de los usuarios de Internet. Estos perfiles pueden ser vendidos a empresas de Internet para ayudarles en el desarrollo de servicios y publicidad más personalizados.</p>
<p>Una serie de proyectos de ley han sido recientemente propuestos para abordar los problemas de privacidad y la recolección y comercialización de este tipo de información. En estados unidos en abril de 2011, los senadores John Kerry y John McCain dan paso al proyecto ley de derechos de privacidad de comercio de 2011, lo que obligaría a las empresas de Internet aumentar la transparencia de sus políticas de privacidad, adquirir consentimiento antes de comenzar a recolectar la información, y permitir a los usuarios la opción de optar por no ser rastreados.<br />
Ed Felton, el director de tecnología de la FTC, dijo que los navegadores web, como Microsoft Internet Explorer y Mozilla Firefox ya han comenzado a desarrollar características anti-rastreo; usando listas de Protección y Seguimiento, los cuales permiten a los usuarios conocer y bloquear los sitios web los rastrean.</p>
<p>Es un pilar en el pensamiento de las personas que sienten que la Internet &#8211; y en particular, las redes sociales como Facebook y la gran cantidad de datos personales que manejan, amenaza con poner en peligro a nuestros niños y socavan nuestra sociedad.</p>
<p><a href="http://ingeniods.files.wordpress.com/2011/09/privacidad_002.png"><img class="alignleft size-full wp-image-1124" title="privacidad_002" src="http://ingeniods.files.wordpress.com/2011/09/privacidad_002.png?w=655" alt=""   /></a></p>
<p>El fundador de Facebook, Mark Zuckerberg, ha tratado de refundir el deseo de privacidad como un deseo de control sobre nuestra identidad digital. Argumenta que la gente quiere compartir información, pero queremos determinar quién puede ver y utilizar. Jarvis dice que esta definición es demasiado optimista. Vivimos en relación con otras personas, después de todo. ¿Cómo podemos siquiera definir lo que califica como nuestra propia información? Si comparto la información ¿qué implica que se va a controlar? Tal vez estamos buscando por el lado equivocado del telescopio; hay conceptos que ni siquiera podemos describir como ¿Qué información es de dominio público y cual es de dominio privado?, ¿es nuestra la información cuando la subimos a la red?, ¿si tengo información personal y hay otras personas hasta donde se extiende su dominio?, ¿Está segura la información que subimos a la red?, debemos comenzar a dejar que caiga el muro de la privacidad en la red o retirarnos de la red.</p>
<p><a href="http://ingeniods.files.wordpress.com/2011/09/privacidad_003.png"><img class="alignleft size-full wp-image-1125" title="privacidad_003" src="http://ingeniods.files.wordpress.com/2011/09/privacidad_003.png?w=655&#038;h=61" alt="" width="655" height="61" /></a></p>
<br />Filed under: <a href='http://ingeniods.wordpress.com/category/articulos/'>ARTÍCULOS</a>, <a href='http://ingeniods.wordpress.com/category/personal/'>PERSONAL</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ingeniods.wordpress.com/1068/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ingeniods.wordpress.com/1068/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ingeniods.wordpress.com/1068/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ingeniods.wordpress.com/1068/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ingeniods.wordpress.com/1068/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ingeniods.wordpress.com/1068/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ingeniods.wordpress.com/1068/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ingeniods.wordpress.com/1068/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ingeniods.wordpress.com/1068/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ingeniods.wordpress.com/1068/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ingeniods.wordpress.com/1068/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ingeniods.wordpress.com/1068/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ingeniods.wordpress.com/1068/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ingeniods.wordpress.com/1068/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ingeniods.wordpress.com&amp;blog=12051304&amp;post=1068&amp;subd=ingeniods&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ingeniods.wordpress.com/2011/09/23/privacidad-en-internet-mito/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<georss:point>10.414252 -75.526329</georss:point>
		<geo:lat>10.414252</geo:lat>
		<geo:long>-75.526329</geo:long>
		<media:content url="http://0.gravatar.com/avatar/057f3ee91b2292367e219437e78ac713?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ingeniods</media:title>
		</media:content>

		<media:content url="http://ingeniods.files.wordpress.com/2011/09/privacidad_004.png?w=300" medium="image">
			<media:title type="html">privacidad_004</media:title>
		</media:content>

		<media:content url="http://ingeniods.files.wordpress.com/2011/09/privacidad_001.png" medium="image">
			<media:title type="html">privacidad_001</media:title>
		</media:content>

		<media:content url="http://ingeniods.files.wordpress.com/2011/09/privacidad_002.png" medium="image">
			<media:title type="html">privacidad_002</media:title>
		</media:content>

		<media:content url="http://ingeniods.files.wordpress.com/2011/09/privacidad_003.png" medium="image">
			<media:title type="html">privacidad_003</media:title>
		</media:content>
	</item>
	</channel>
</rss>
