<?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/"
	>

<channel>
	<title>Datanoia.com &#187; Destacados</title>
	<atom:link href="http://www.datanoia.com/category/varios/destacados/feed" rel="self" type="application/rss+xml" />
	<link>http://www.datanoia.com</link>
	<description></description>
	<lastBuildDate>Sun, 04 Dec 2011 05:48:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Struts en Netbeans 6.5</title>
		<link>http://www.datanoia.com/struts-en-netbeans-6-5.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=struts-en-netbeans-6-5</link>
		<comments>http://www.datanoia.com/struts-en-netbeans-6-5.html#comments</comments>
		<pubDate>Wed, 19 Aug 2009 21:52:14 +0000</pubDate>
		<dc:creator>risharp</dc:creator>
				<category><![CDATA[Destacados]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://fenix.aolinex.com/?p=129</guid>
		<description><![CDATA[Uno de los Frameworks más maduros y robustos del medio sin duda es Struts, basado en el patrón MVC (Módelo, Vista, Controlador) es uno de los Frameworks más usados en el mundo de Java. Aquí un tutorial básico en donde validaremos a un usuario. Pueden descargar el ejemplo: Proyecto Struts 6.5 Ir a Archivo&#62;Proyecto Nuevo<a href="http://www.datanoia.com/struts-en-netbeans-6-5.html">&#160;&#160;[ Read More ]</a>]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.datanoia.com%252Fstruts-en-netbeans-6-5.html%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Struts%20en%20Netbeans%206.5%22%20%7D);"></div>
<p>Uno de los Frameworks más maduros y robustos del medio sin duda es Struts, basado en el patrón MVC (Módelo, Vista, Controlador) es uno de los Frameworks más usados en el mundo de Java.</p>
<p>Aquí un tutorial básico en donde validaremos a un usuario.</p>
<p>Pueden descargar el ejemplo: <a href="http://fenix.aolinex.com/?attachment_id=249" rel="attachment wp-att-249">Proyecto Struts 6.5</a></p>
<p>Ir a Archivo&gt;Proyecto Nuevo y seleccionar una nueva aplicación Web.</p>
<p style="text-align: center;"><a href="http://fenix.aolinex.com/struts-en-netbeans-6-5.html/tutorial-aprende-a-instalar-ubuntu-11-04-%e2%80%9cnatty-narwhal%e2%80%9d-paso-a-paso" rel="attachment wp-att-108"><img class="aligncenter size-full wp-image-108" title="Struts-NuevoProyecto1" src="http://www.datanoia.com/wp-content/uploads/2009/08/Struts-NuevoProyecto1.PNG" alt="Struts-NuevoProyecto1" width="725" height="492" /></a></p>
<p>Asignar un nombre al proyecto, luego siguiente.</p>
<p style="text-align: center;"><a href="http://feedproxy.google.com/~r/datanoia/~3/NJSQjRpUID8/gana-espacio-en-firefox4-reduciendo-la-barra-de-complementos-con-barlesque.html/110-revision" rel="attachment wp-att-120"><img class="aligncenter size-full wp-image-120" title="Struts Proyecto" src="http://www.datanoia.com/wp-content/uploads/2009/08/Struts-NombreProjecto2.PNG" alt="Struts Proyecto" width="730" height="493" /></a></p>
<p>Asigne un servidor de aplicaciones, en este caso he optado por Apache Tomcat, aunque pueden usar Glasfish que viene instalado con el NetBeans.</p>
<p style="text-align: center;"><a href="http://fenix.aolinex.com/struts-en-netbeans-6-5.html/facebook-es-el-iphone-de-las-redes-sociales" rel="attachment wp-att-125"><img class="aligncenter size-full wp-image-125" title="Struts-ServerApache3" src="http://www.datanoia.com/wp-content/uploads/2009/08/Struts-ServerApache3.PNG" alt="Struts-ServerApache3" width="790" height="495" /></a></p>
<p>Marcar el Framework de Struts y luego terminar.</p>
<p style="text-align: center;"><a href="http://fenix.aolinex.com/?attachment_id=160" rel="attachment wp-att-160"><img class="aligncenter size-full wp-image-160" title="Struts-FrameworkStruts4" src="http://www.datanoia.com/wp-content/uploads/2009/08/Struts-FrameworkStruts4.PNG" alt="Struts-FrameworkStruts4" width="788" height="494" /></a></p>
<p>En <em>Source Packages</em> crear los siguientes paquetes: Controller y Model, no creamos el paquete View ya que son representadas por <em>“Web Pages”</em> en donde tenemos nuestras páginas web.</p>
<p style="text-align: center;"><a href="http://fenix.aolinex.com/?attachment_id=168" rel="attachment wp-att-168"><img class="aligncenter size-full wp-image-168" title="Paquetes" src="http://www.datanoia.com/wp-content/uploads/2009/08/Paquetes.png" alt="Paquetes" width="236" height="483" /></a></p>
<p>Bien, ahora agregaremos una página JSP de nombre: “Login”</p>
<p style="text-align: center;"><a href="http://fenix.aolinex.com/?attachment_id=173" rel="attachment wp-att-173"><img class="aligncenter size-full wp-image-173" title="Struts-NuevoJSP8" src="http://www.datanoia.com/wp-content/uploads/2009/08/Struts-NuevoJSP8.PNG" alt="Struts-NuevoJSP8" width="697" height="453" /></a></p>
<p>Agregar los siguientes librerias de Struts en Login.jsp</p>
<pre class="brush: java; ">&lt;%@page contentType="text/html" pageEncoding="UTF-8"%&gt;
&lt;%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %&gt;

&lt;%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %&gt;
&lt;%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %&gt;
&lt;h1&gt;Inicio Sesión&lt;/h1&gt;</pre>
<p>En el paquete Model crearemos una clase llamada Users donde tendremos las entidades del negocio.</p>
<pre class="brush: java; ">package Model;

public class Users {
private String nombre;
private String clave;

public Users() {
}

public String getClave() {
return clave;
}

public void setClave(String clave) {
this.clave = clave;
}

public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

}</pre>
<p>Para crear las entidades de una manera más rápida</p>
<p>Defina las siguientes variables, seleccionalas, haga click derecho, Reestructurar&gt;Encapsular Campos</p>
<pre class="brush: java; ">private String nombre;
private String clave;</pre>
<p style="text-align: center;"><a href="http://fenix.aolinex.com/?attachment_id=194" rel="attachment wp-att-194"><img class="aligncenter size-full wp-image-194" title="Struts-Encapsular7" src="http://www.datanoia.com/wp-content/uploads/2009/08/Struts-Encapsular7.PNG" alt="Struts-Encapsular7" width="829" height="459" /></a></p>
<p>En el paquete Controller hacemos click derecho &gt;nuevo&gt; otros&gt; y en la categoría Struts elegir el archivo Struts ActionForm Bean y creamos la clase llamada LoginActionFormBean.java</p>
<p style="text-align: center;"><a href="http://fenix.aolinex.com/?attachment_id=205" rel="attachment wp-att-205"><img class="aligncenter size-full wp-image-205" title="Struts-StrutsAction9" src="http://www.datanoia.com/wp-content/uploads/2009/08/Struts-StrutsAction9.PNG" alt="Struts-StrutsAction9" width="727" height="495" /></a></p>
<p>Escribir el siguiente código en la clase LoginActionFormBean.java, esta clase se encargá de manejar las validaciones que son enviadas desde el formulario. Por ejemplo se encargá de manejar si algún campo está vacío, o si cumple cierto número de carácteres.</p>
<pre class="brush: java; ">package Controller;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

/**
*
* @author Richard
*/
public class LoginActionFormBean extends org.apache.struts.action.ActionForm {

private String usuario;
private String pwd;

public String getPwd() {
return pwd;
}

public void setPwd(String pwd) {
this.pwd = pwd;
}

public String getUsuario() {
return usuario;
}

public void setUsuario(String usuario) {
this.usuario = usuario;
}

/**
*
*/
public LoginActionFormBean() {
super();
// TODO Auto-generated constructor stub
}

public ActionErrors validate(ActionMapping mapping,HttpServletRequest request)
{
ActionErrors errors = new ActionErrors();

if(usuario.length()&lt;1 ||usuario==null)
errors.add("usu", new ActionMessage("errors.usuario"));
else
{
if(pwd.length()&lt;=0)
errors.add("pwd", new ActionMessage("errors.clave"));

}
mapping.getInputForward();

return errors;
}
}</pre>
<p>Si se produce algún error se mostrarán mensajes que son prestablecidos en el archivo <em>ApplicationResource.properties</em> del paquete com.myapp.struts, este archivo se creó automaticamente al crear la aplicación Web.</p>
<p>La modificaremos con el siguiente código:</p>
<pre class="brush: java; "># -- standard errors --
errors.header=&lt;UL&gt;
errors.prefix=&lt;LI&gt;
errors.suffix=&lt;/LI&gt;

errors.footer=&lt;/UL&gt;
# -- validator --
errors.usuario=Debe ingresar el Nombre del Usuario
errors.clave=Debe Ingresar la clave del Usuario
errors.impedir=Usuario inexistente
# -- other --
errors.cancel=Operation cancelled.
errors.detail={0}
errors.general=The process did not complete. Details should follow.
errors.token=Request could not be completed. Operation is not in sequence.
# -- welcome --
welcome.title=Struts Application
welcome.heading=Struts Applications in Netbeans!
welcome.message=It's easy to create Struts applications with NetBeans.</pre>
<p>Ahora nuevamente agregar un archivo Struts en el paquete Controller, sólo que ahora del tipo Struts Action, le pondremos de nombre LoginAction.</p>
<p>Escribir en Action Path: “/Login” que será una especie de url, luego hacer clic en siguiente.</p>
<p style="text-align: center;"><a href="http://fenix.aolinex.com/?attachment_id=235" rel="attachment wp-att-235"><img class="aligncenter size-full wp-image-235" title="1" src="http://www.datanoia.com/wp-content/uploads/2009/08/1.PNG" alt="1" width="513" height="312" /></a></p>
<p style="text-align: center;">En la siguiente pantalla presione Browse y elija nuestra página Login.jsp.<a href="http://fenix.aolinex.com/?attachment_id=236" rel="attachment wp-att-236"><img class="aligncenter size-full wp-image-236" title="2" src="http://www.datanoia.com/wp-content/uploads/2009/08/2.PNG" alt="2" width="516" height="283" /></a></p>
<p>Esta clase se encargá de comunicarse con la lógica del negocio que se encuentra en el paquete Modelo y comprobar por ejemplo si el archivo existe en una base de datos, si no es así mostrará en pantalla mensajes, que como sabemos están preestablecidos en nuestro archivo properties.</p>
<p>Añadir el siguiente código a la clase LoginAction:</p>
<pre class="brush: java; ">package Controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMessage;
/**import org.apache.struts.action.ActionMessage;
*
* @author richard
*/
public class LoginAction extends org.apache.struts.action.Action {
private Controller.LoginActionFormBean formulario;

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
//Obtengo el Formulario
formulario=(Controller.LoginActionFormBean) form;
Model.Users us=new Model.Users();
us.setNombre(formulario.getUsuario());
us.setClave(formulario.getPwd());
ActionForward retorno=new ActionForward();

if(us.getNombre().equals("risharp")&amp;&amp; us.getClave().equals("123456"))
retorno=mapping.findForward("welcome");
else
{

ActionErrors errors = new ActionErrors();
errors.add("no_existe", new ActionMessage("errors.impedir"));

saveErrors(request, errors);
retorno=mapping.getInputForward();
}

return retorno;
}
}</pre>
<p>Ahora revisar el archivo “struts-config” ubicado en WEB-INF</p>
<p>Vemos que se han creado las siguientes líneas de código:</p>
<pre class="brush: java; ">&lt;form-beans&gt;
&lt;form-bean name="Login" type="Controller.LoginActionFormBean"/&gt;

&lt;/form-beans&gt;</pre>
<pre class="brush: java; ">&lt;action-mappings&gt;
&lt;action input="/Login.jsp" name="Login" path="/Login" scope="session" type="Controller.LoginAction"/&gt;

&lt;action path="/Welcome" forward="/welcomeStruts.jsp"/&gt;
&lt;/action-mappings&gt;</pre>
<p>Por último agregamos el siguiente código en Login.jsp:</p>
<pre class="brush: java; ">&lt;%@page contentType="text/html" pageEncoding="UTF-8"%&gt;

&lt;%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %&gt;
&lt;%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %&gt;
&lt;%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %&gt;

&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"&gt;

&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt;
&lt;title&gt;www.datanoia.com&lt;/title&gt;

&lt;/head&gt;
&lt;body&gt;
&lt;html:form action="Login"&gt;
Usuario:&lt;html:text property="user"&gt;&lt;/html:text&gt;&lt;br /&gt;
&lt;html:errors property="UserError"/&gt;&lt;br/&gt;

Clave:&lt;html:text property="password"&gt;&lt;/html:text&gt;&lt;br /&gt;
&lt;html:errors property="PasswordError"/&gt;&lt;br/&gt;

&lt;html:errors property="no_existe"/&gt;&lt;br /&gt;

&lt;html:submit value="Confirmar"&gt;&lt;/html:submit&gt;
&lt;/html:form&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Observemos que nuestro formulario está invocando a “Login”</p>
<pre class="brush: java; ">&lt;html:form action="Login"&gt;</pre>
<p>Definido en:</p>
<pre class="brush: java; ">&lt;form-beans&gt;
&lt;form-bean name="Login" type="Controller.LoginActionFormBean"/&gt;
&lt;/form-beans&gt;</pre>
<p>Luego probamos corremos nuestra página Login.jsp</p>
<p><map name='google_ad_map_129_e6f9cc4188fca22c'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/129?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_129_e6f9cc4188fca22c' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=129&amp;url= http%3A%2F%2Fwww.datanoia.com%2Fstruts-en-netbeans-6-5.html' /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.datanoia.com/struts-en-netbeans-6-5.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook es el iPhone de las redes sociales</title>
		<link>http://www.datanoia.com/facebook-es-el-iphone-de-las-redes-sociales.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=facebook-es-el-iphone-de-las-redes-sociales</link>
		<comments>http://www.datanoia.com/facebook-es-el-iphone-de-las-redes-sociales.html#comments</comments>
		<pubDate>Wed, 19 Aug 2009 21:39:31 +0000</pubDate>
		<dc:creator>rogertrips</dc:creator>
				<category><![CDATA[Destacados]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://fenix.aolinex.com/?p=125</guid>
		<description><![CDATA[Facebook no sólo es la red social más grande en Internet, hoy en día ha superado cualquier espectativa, convertiéndose incluso en una plataforma de aplicaciones, la cual se está vinculando cada vez más con la industria de los videojuegos y la publicidad. Y esto no ha surgido de la noche a la mañana, y los<a href="http://www.datanoia.com/facebook-es-el-iphone-de-las-redes-sociales.html">&#160;&#160;[ Read More ]</a>]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.datanoia.com%252Ffacebook-es-el-iphone-de-las-redes-sociales.html%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Facebook%20es%20el%20iPhone%20de%20las%20redes%20sociales%22%20%7D);"></div>
<p><img class="aligncenter" title="Facebook iPhone" src="http://www.datanoia.com/wp-content/uploads/2009/08/Facebook.png" alt="Facebook es el iPhone de las redes Sociales" /></p>
<p>Facebook no sólo es la red social más grande en Internet, hoy en día ha superado cualquier espectativa, convertiéndose incluso en una plataforma de aplicaciones, la cual se está vinculando cada vez más con la industria de los videojuegos y la publicidad. Y esto no ha surgido de la noche a la mañana, y los más de 250 millones de usuarios de Facebook en todo el mundo lo saben. Es probable que Facebook haya cambiado la visión de su negocio y las estrategias a seguir con el pasar del tiempo, una primera causa debieron ser sus competidores (otras redes sociales) que sin lugar a duda, ahora son nada si los comparamos. Otra causa, y creo yo la más importante; debe haber sido la rápida evolución de Internet en estos últimos años. Google busca acaparar toda la nube, pero un terreno que aún le resulta imposible de poseer es el de las redes sociales. Por eso este post lleva ese nombre, Facebook es como los iPhone. Impredecible, sensacional, atractivo y por sobre todas las cosas, la mayor fuente de ingresos para su creador. Sus “enemigos” pueden ampliar sus horizontes, involucrarse con nuevas tecnologías e incluso presentar un producto más elaborado; sin embargo el nivel de aceptación de ambos siempre es compensado con sus nuevos seguidores. Esto crea una analogía entre Facebook y el iPhone que encaja perfectamente en cualquier rompecabezas.</p>
<p>&nbsp;</p>
<p>Hace poco más de dos años, Facebook abrió su plataforma para los desarrolladores y fue quizás la mejor decisión que pudo tomar Mark Zuckeberg; puesto que actualmente se desarrollan 480 aplicaciones diarias aproximadamente. Algo que a lo largo del tiempo ha hecho que se supere las 350,000 aplicaciones. Sólo comparable nuevamente con el AppStore que usa el iPhone. Si bien es cierto, Facebook no está dentro de un ambiente tan comercial, como es el caso de Apple; pero es otra de las grandes empresas (pocas) que anda presentando nuevas ideas y tecnologías (Facebook Connect por ejemplo) que aportan con el desarrollo del internet y la evolución del mercado dentro de la nube. Apple cuando lanzó el iPhone era conciente de lo que presentaba; tuvieron que pasar varios meses para que sus principales competidores noten lo retrazados que andaban en cuanto a innovación se refiere. Sería injusto decir que actualmente el iPhone es el producto vanguardista, hay empresas que han trabajado mucho desde su aparición para resaltar las ausencias del iPhone en sus productos; pero creo que ninguna aún consigue un impacto diferente en el publico en general, sobre todo desde el punto de vista netamente comercial. Tal como sucede con Facebook, sus usuarios encuentran en ambos no sólo satisfecha su necesidad general y principal; sino además, el plus que presentan con el uso de aplicaciones e interacción con otro tipo de plataformas, por dar un ejemplo.</p>
<p>&nbsp;</p>
<p>Desde hace un tiempo se rumorea que Facebook podría convertirse en una plataforma web, en la cual, se plantea que sus aplicaciones sean quienes ocupen los distintos territorios dentro de internet y las necesidades del usuario. Google se adelantó con Chrome OS al anunciarlo. Es probable que la “hoy en día” red social pronto traiga cosas nuevas, tendrá que quizás reinventarse y revisar su modelo de negocio de la misma forma como lo hizo Apple al lanzar el iPhone 3GS. Pero siempre, a pesar de todo; Facebook se verá como un iPhone frente a las demás redes sociales. Al menos, hasta que el reinado de alguna de las dos se vea en decadencia y esta “absurda” analogía quede en el recuerdo de lo que hoy es internet.</p>
<p><map name='google_ad_map_125_e6f9cc4188fca22c'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/125?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_125_e6f9cc4188fca22c' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=125&amp;url= http%3A%2F%2Fwww.datanoia.com%2Ffacebook-es-el-iphone-de-las-redes-sociales.html' /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.datanoia.com/facebook-es-el-iphone-de-las-redes-sociales.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

