<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-8806783586291247971</id><updated>2009-11-09T12:21:12.201-05:00</updated><title type='text'>WWW.JUGANDOCON.NET</title><subtitle type='html'>by Luis Castillo</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://lecastillox.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default?start-index=26&amp;max-results=25'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>79</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8806783586291247971.post-3757168424623017199</id><published>2009-07-23T18:00:00.003-05:00</published><updated>2009-07-24T15:27:48.752-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ECC UTPL'/><title type='text'>Ontología sobre Licencias Creative Commons</title><content type='html'>&lt;div style="text-align: justify;"&gt;Empecemos por lo básico “El término &lt;span style="font-style: italic;"&gt;ontología&lt;/span&gt; en informática hace referencia a la formulación de un exhaustivo y riguroso esquema conceptual dentro de uno o varios dominios dados; con la finalidad de facilitar la comunicación y la compartición de la información entre diferentes sistemas y entidades. Aunque toma su nombre por analogía, ésta es la diferencia con el punto de vista filosófico de la palabra ontología”&lt;span style="font-style: italic;"&gt;( WIKIPEDIA)&lt;/span&gt;, pero si queremos expresarlo en términos más simples una ontología es la representación de conocimiento a través de un lenguaje formal, y para poder representar dicho conocimiento podemos valernos de &lt;span style="font-style: italic;"&gt;mapas conceptuales, diagramas de clases ó diagramas Entidad Relación&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;El presente trabajo es una ontología sobre los tipos de licencias Creative Commons, el cual responde a la pregunta: &lt;span style="font-style: italic; color: rgb(0, 153, 0);"&gt;¿Como identificar un tipo de licencia Creative Commons empleado en una obra?&lt;/span&gt;, el cual nos servirá como herramienta de conocimiento para poder realizar esta tarea; también desprende algunos otros usos como tener la capacidad de conocer las diferentes conformaciones de este tipo de licencias.&lt;br /&gt;&lt;br /&gt;Definamos antes de empezar a analizar el mapa conceptual de nuestra ontología que comprende Creative Commons.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Creative Commons&lt;/span&gt;&lt;br /&gt;Las licencias Creative Commons se enmarcan dentro de las alternativas que surgen a raíz de la tendencia del libre acceso al conocimiento. Nacen como un reto a una necesidad obligatoria consignada por el derecho de autor, que si bien sigue vigente ha sido desbordado por los progresos tecnológicos, convirtiéndose sin desearlo en una barrera legal ante la necesidad de la sociedad de poder acceder a esos productos intelectuales, que aun cuando suene paradójico constituye a la vez un derecho. El objetivo principal de las licencias Creative Commons es esencialmente la de gestionar derechos, es decir liberar unos y conservar otros con la voluntad de sus titulares. Dando la posibilidad al autor según sus requerimientos de autorizar el uso de su producción intelectual y a la vez posicionándolo en el mundo entero (Creative Commons).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A continuación se listan los cambios realizados de mapas conceotuales en los que se ha representado el conocimiento. Tambien se puede tener acceso a las mismas a &lt;a style="color: rgb(0, 153, 0); font-weight: bold;" href="http://homam.ihmc.us:8080/rid=1G8XJ54D7-1CFS50J-25X/CreativeCommons"&gt;aquí &lt;/a&gt;ó se las puede visualizar una a una de la siguiente lista.&lt;br /&gt;&lt;ul&gt;&lt;li style="font-style: italic;"&gt;&lt;a href="http://lecastillox.dejavu-solutions.com/SBC/MapaConceptualCC_v4_VistaGlobal.cmap.htm"&gt;Vista general de Creative Commons&lt;/a&gt;&lt;/li&gt;&lt;li style="font-style: italic;"&gt;&lt;a href="http://lecastillox.dejavu-solutions.com/SBC/MapaConceptualCreativeCommons.html"&gt;Vista Version 1&lt;/a&gt;&lt;/li&gt;&lt;li style="font-style: italic;"&gt;&lt;a href="http://lecastillox.dejavu-solutions.com/SBC/MapaConceptualCreativeCommons_v2.cmap.html"&gt;Vista Version 2&lt;/a&gt;&lt;/li&gt;&lt;li style="font-style: italic;"&gt;&lt;a href="http://lecastillox.dejavu-solutions.com/SBC/MapaConceptualCreativeCommons_v2.cmap.html"&gt;Vista Version 3&lt;/a&gt;&lt;/li&gt;&lt;li style="font-style: italic;"&gt;&lt;a href="http://lecastillox.dejavu-solutions.com/SBC/MapaConceptualCreativeCommons_v4.cmap.htm"&gt;Vista Version 4&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://lecastillox.dejavu-solutions.com/SBC/MapaConceptualCC_v5.html"&gt;&lt;span style="font-style: italic;"&gt;Vista Version 5 &lt;/span&gt;&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Los archivos con las ontologias desarrolladas con CMAPCOE pueden ser encontrados en:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Servidor:&lt;/span&gt; http://homam.ihmc.us:8080&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;Directorio&lt;/span&gt;:&lt;/span&gt; /USERS/UTPL-ECC/lecastillox/Creative Commons&lt;br /&gt;&lt;br /&gt;&lt;a style="font-weight: bold; color: rgb(0, 153, 0);" href="http://lecastillox.dejavu-solutions.com/SBC/ProyectoSBC.docx"&gt;Documentación aquí&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;WIKIPEDIA- Ontologia Informatica, http://es.wikipedia.org/wiki/Ontolog%C3%ADa_%28inform%C3%A1tica%29&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Creative Commons, http://creativecommons.org&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8806783586291247971-3757168424623017199?l=lecastillox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lecastillox.blogspot.com/feeds/3757168424623017199/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8806783586291247971&amp;postID=3757168424623017199' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/3757168424623017199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/3757168424623017199'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/2009/07/ontologia-sobre-licencias-creative.html' title='Ontología sobre Licencias Creative Commons'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02595989421573640651'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8806783586291247971.post-7541167032616375299</id><published>2009-05-09T22:46:00.002-05:00</published><updated>2009-05-09T23:02:26.934-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lecastillox'/><title type='text'>Llegamos a los XXVI (26 años)</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:verdana;"&gt;Pues sí, hoy 9 de mayo es el ultimo día con 25 años y e&lt;span style="font-style: italic;"&gt;n pocas horas llegara el 10 de mayo y empezare mi vida con &lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;26 años&lt;/span&gt; a cuesta&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;(2da vuelta)&lt;/span&gt;. En estos 25 años he tenido la suerte de rodearme de personas buenas y malas, personas con y sin perjuicios, personas envidiosas y no tan envidiosas; al final de todos los verdaderos amigos están presentes cuando se los necesita y no te dan la espalda.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:verdana;"&gt;Al cumplir mis 26 años tengo muchos proyectos por culminar y otros por empezar; entre los que están en la lista por terminar es &lt;span style="font-style: italic; color: rgb(0, 102, 0); font-weight: bold;"&gt;graduarme este año como Ingeniero en Sistemas :D&lt;/span&gt; y en lo que deseo empezar esta &lt;span style="font-style: italic;"&gt;formar este año mi empresa&lt;/span&gt;, y en un futuro no tan lejano (2 años) g&lt;span style="font-style: italic;"&gt;raduarme de Ingeniero Comercial&lt;/span&gt;(si mi segunda carrera :D ).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:verdana;"&gt;Espero que Dios me de fuerzas y me ayude para poder seguir publicando algunos artículos en este blog ya sea de .net o php &lt;span style="font-style: italic;"&gt;(ya q me toco aprender para la tesis)&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:verdana;"&gt;Bueno &lt;span style="font-style: italic;"&gt;en este día quiero desearme Feliz Cumpleaños a mí mismo y agradecer a mi familia por acordarse de mi cumpleaños y a Iliana Burguan, Carito Palomeque y Lorena Tacuri por desearme un feliz día.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="font-weight: bold;"&gt;PD:&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0); font-weight: bold; font-family: georgia;"&gt;Ha por cierto si este 10 de mayo es el día de las madres :)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8806783586291247971-7541167032616375299?l=lecastillox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lecastillox.blogspot.com/feeds/7541167032616375299/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8806783586291247971&amp;postID=7541167032616375299' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/7541167032616375299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/7541167032616375299'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/2009/05/llegamos-los-xxvi-26-anos.html' title='Llegamos a los XXVI (26 años)'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02595989421573640651'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8806783586291247971.post-1918230557007340789</id><published>2009-03-29T17:56:00.004-05:00</published><updated>2009-05-09T23:17:45.550-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cne ecuador votaciones tse'/><title type='text'>Consultar el lugar de Votación para las elecciones</title><content type='html'>&lt;iframe src="http://app.cne.gov.ec/LugarVotacion/" transparency="" scrolling="auto" width="600" frameborder="1" height="270"&gt;       &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Consulta en que lugar te toca votar, padron actualizado al 5 de Marzo del 2009.&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;     &lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Luego de las votaciones mucha gente se  siente perjudicada por los resultados, en nuestra  Loja (al sur del Ecuador) se han constatado inconsistencias en los votos ya que aparece que en una junta de votación aparecen 175 personas que han votado y pero registran votos por alcalde 210 ese ejemplo se repiten en muchas urnas en fin Loja ha sido castigada con 4 años mas ineptitud al aparecer como triunfador de las votaciones al actual alcalde, una verdadera lastima, definitivamente las personas ya no piensan en su futuro solo se dejan llevar por acciones que a lo largo del tiempo traeran malestar.&lt;br /&gt;Algo raro en encuestas la población opina que la gestion del actual alcalde es de lo peor y que no apoyarian su re-eleccion cosa para rara esto de las votaciones cosas del socialismo del siglo 21.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8806783586291247971-1918230557007340789?l=lecastillox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lecastillox.blogspot.com/feeds/1918230557007340789/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8806783586291247971&amp;postID=1918230557007340789' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/1918230557007340789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/1918230557007340789'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/2009/03/consultar-el-lugar-de-votacion-para-las.html' title='Consultar el lugar de Votación para las elecciones'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02595989421573640651'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8806783586291247971.post-1853643972222341473</id><published>2009-03-26T19:10:00.002-05:00</published><updated>2009-03-26T19:16:30.970-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Informática'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='navegadores'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Los navegadores y ASP.Net</title><content type='html'>Muchas de las veces cuando desarrollamos aplicaciones bajo ASP.Net surgen muchas inquietudes y problemas ya que se piensa en los tipos de navegadores que el cliente puede usar, algunos prefieren IE, otros Mozilla Firefox, Safari y los más exóticos Crome y es cuando los desarrolladores tienen que elaborar las aplicaciones para que se auto configuren dependiendo del navegador, algunos prefieren escribir código ya sea C# o VB.Net algo como esto: &lt;p&gt;&lt;span style="color:#0080c0;"&gt;if (&lt;strong&gt;Request.Browser.Browser&lt;/strong&gt; == "IE")&lt;br /&gt;Label1.Text = "usted usa internet explorer como navegador";&lt;br /&gt;else&lt;br /&gt;Label1.Text = "Usted usa un navegador que no es IE";&lt;/span&gt;&lt;/p&gt;&lt;p&gt;El problema de esto es que tiene que ejecutarce en el servidor, y como ya sabran hay que optimizar el uso del servidor cuando se tenga que generar un determinado tipo de etiqueta para ser usado en un determinado tipo de cliente.&lt;/p&gt;&lt;p&gt;Tomando como ejemplo del código anterior, se podría presentar el siguiente ejemplo, supongamos que tenemos una aplicación web en la que los clientes deban usarla a través de IE ya que en otros navegadores surge inconvenientes por determinadas cuestiones ya sean javascripts hojas de estilos, etc., el desarrollador común optaría por escribir algo asi:&lt;/p&gt;&lt;p&gt;&lt;span style="color:#0080c0;"&gt;if (Request.Browser.Browser != "IE")&lt;br /&gt;{&lt;br /&gt;Label1.Text = "usted NO usa internet explorer como navegador";&lt;br /&gt;Button1.Enabled = “false”;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#0080c0;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Esto se podría eliminar usando únicamente código ASP empecemos examinando el código ASP de un Label&lt;/p&gt;&lt;p&gt;&amp;lt;asp:Label ID="Label1" runat="server"&lt;br /&gt;&lt;strong&gt;Text&lt;/strong&gt;="Aquí se escribe el texto OK" &amp;gt;&lt;br /&gt;&amp;lt;/asp:Label&amp;gt;&lt;/p&gt;&lt;p&gt;Como podemos observar se maneja un estilo de etiquetas que representan propiedades del constrol, como el ID que representa el identificador del control, el Text el cual es una propiedad para definir una cadena de caracteres.&lt;/p&gt;&lt;p&gt;Muy bien una vez que entendieron lo anterior examinemos el siguiente codigo&lt;/p&gt;&lt;p&gt;&amp;lt;asp:Label ID="Label1" runat="server" Text=""&lt;br /&gt;&lt;strong&gt;&lt;u&gt;ie&lt;/u&gt;&lt;/strong&gt;:Text="Usted esta usando Internet Explorer"&lt;br /&gt;&lt;strong&gt;&lt;u&gt;mozilla&lt;/u&gt;&lt;/strong&gt;:Text="Usted esta unsando Mozilla Firefox" &amp;gt;&lt;br /&gt;&amp;lt;/asp:Label&amp;gt;&lt;/p&gt;&lt;p&gt;Como podemos observar en la 2da, 3era y 4ta linea tenemos la propiedad TEXT en la segunda linea si nos fijamos esta el nombre de la propiedad antepuesto IE y MOZILLA (los cuales hacen referencia a Internet Explorer y Mozilla) esto le indicara al ASP que identifique el tipo de navegador y presente la que corresponder si ejecutamos el codigo podemos ver el resultado&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Usted está usando Internet Explorer&lt;/strong&gt; (en el caso de que su navegador sea IE)&lt;/p&gt;&lt;p&gt;No solo se puede hacer lo anterior para definir un tipo de texto, tambien se puede usar para otras propiedades si no me creen miren el siguiente codigo&lt;/p&gt;&amp;lt;asp:Label ID="Label1" runat="server"&lt;br /&gt;Text=""&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style="color:#ff0000;"&gt;ie:&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Text&lt;/span&gt;="IE"&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;mozilla:&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Text&lt;/span&gt;="Firefox"&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;ie:&lt;/span&gt;&lt;span style="color:#00ff00;"&gt;BackColor&lt;/span&gt;="Blue"&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;mozilla:&lt;/span&gt;&lt;span style="color:#00ff00;"&gt;BackColor&lt;/span&gt;="Red"&lt;/u&gt; &amp;gt;&lt;/strong&gt;&lt;br /&gt;&amp;lt;/asp:Label&amp;gt;&lt;br /&gt;&lt;p&gt;Y el resultado es&lt;/p&gt;&lt;p&gt;&lt;img src="http://i42.tinypic.com/10f19o2.jpg" /&gt; &lt;/p&gt;&lt;p&gt;Si deseamos usarlo en otro tipo de control como un Button podemos hacerlo y para muestra el ejemplo&lt;/p&gt;&amp;lt;asp:Button ID="Button1" runat="server"&lt;br /&gt;Text="Button"&lt;br /&gt;&lt;u&gt;&lt;strong&gt;ie:Text&lt;/strong&gt;="Internet Explorer"&lt;br /&gt;&lt;strong&gt;mozilla:Text&lt;/strong&gt;="Mozilla Firefox"&lt;br /&gt;&lt;strong&gt;ie:&lt;span style="color:#ff0080;"&gt;Enabled&lt;/span&gt;&lt;/strong&gt;="false"&lt;br /&gt;&lt;strong&gt;mozilla:&lt;span style="color:#ff0080;"&gt;Enabled&lt;/span&gt;&lt;/strong&gt;="true"&lt;br /&gt;&lt;strong&gt;ie:&lt;/strong&gt;&lt;span style="color:#00ff00;"&gt;BackColor&lt;/span&gt;="Orange"&lt;/u&gt;&lt;br /&gt;&lt;p&gt;/&amp;gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://i39.tinypic.com/316p6oz.jpg" /&gt; &lt;/p&gt;&lt;p&gt;Espero que les sea de ayuda&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8806783586291247971-1853643972222341473?l=lecastillox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lecastillox.blogspot.com/feeds/1853643972222341473/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8806783586291247971&amp;postID=1853643972222341473' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/1853643972222341473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/1853643972222341473'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/2009/03/los-navegadores-y-aspnet.html' title='Los navegadores y ASP.Net'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02595989421573640651'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8806783586291247971.post-4301976620805642461</id><published>2009-03-09T22:36:00.002-05:00</published><updated>2009-03-09T22:40:10.268-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cultura'/><title type='text'>El Decálogo de Abraham Lincoln - esto es libertad</title><content type='html'>Via &lt;span style="font-style: italic;"&gt;PLURK &lt;/span&gt;llegue a este artículo que es &lt;a href="http://www.scribd.com/doc/6354934/El-Decalogo-de-Abraham-Lincoln"&gt;&lt;span style="font-weight: bold;"&gt;El Decálogo de Abraham Lincoln&lt;/span&gt;&lt;/a&gt; verdaderamente me impacto.&lt;br /&gt;&lt;br /&gt;&lt;a title="View El Decálogo de Abraham Lincoln on Scribd" href="http://www.scribd.com/doc/6354934/El-Decalogo-de-Abraham-Lincoln" style="margin: 12px auto 6px; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; display: block; text-decoration: underline;"&gt;El Decálogo de Abraham Lincoln&lt;/a&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_841762547242840" name="doc_841762547242840" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%"&gt;  &lt;param name="movie" value="http://d.scribd.com/ScribdViewer.swf?document_id=6354934&amp;amp;access_key=key-286t5mz5u7vvmcv2usoq&amp;amp;page=1&amp;amp;version=1&amp;amp;viewMode="&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;        &lt;embed src="http://d.scribd.com/ScribdViewer.swf?document_id=6354934&amp;amp;access_key=key-286t5mz5u7vvmcv2usoq&amp;amp;page=1&amp;amp;version=1&amp;amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_841762547242840_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" height="500" width="100%"&gt;&lt;/embed&gt;   &lt;/object&gt; &lt;div style="margin: 6px auto 3px; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal; display: block;"&gt;    &lt;a href="http://www.scribd.com/upload" style="text-decoration: underline;"&gt;Publish at Scribd&lt;/a&gt; or &lt;a href="http://www.scribd.com/browse" style="text-decoration: underline;"&gt;explore&lt;/a&gt; others:            &lt;a href="http://www.scribd.com/browse/eBooks/Politics-Government?style=text-decoration%3A+underline%3B"&gt;Politics &amp;amp; Governmen&lt;/a&gt;                  &lt;a href="http://www.scribd.com/tag/desarrollo" style="text-decoration: underline;"&gt;desarrollo&lt;/a&gt;              &lt;a href="http://www.scribd.com/tag/pobreza" style="text-decoration: underline;"&gt;pobreza&lt;/a&gt;       &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8806783586291247971-4301976620805642461?l=lecastillox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lecastillox.blogspot.com/feeds/4301976620805642461/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8806783586291247971&amp;postID=4301976620805642461' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/4301976620805642461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/4301976620805642461'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/2009/03/el-decalogo-de-abraham-lincoln-esto-es.html' title='El Decálogo de Abraham Lincoln - esto es libertad'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02595989421573640651'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8806783586291247971.post-6790212260637356309</id><published>2009-03-04T14:33:00.008-05:00</published><updated>2009-05-09T23:19:31.743-05:00</updated><title type='text'>About of me</title><content type='html'>Mi nombre es &lt;span style="font-style: italic;"&gt;Luis Enrique Castillo&lt;/span&gt; tengo 25 años y soy de la ciudad de Loja ubicada al sur del Ecuador, actualmente estudio &lt;span style="font-style: italic;"&gt;Ingeniería en Sistemas Informáticos en la Universidad Técnica Particular de Loja&lt;/span&gt; y también estoy cursando la carrera de &lt;span style="font-style: italic;"&gt;Administración de Empresas en la Universidad Nacional de Loja&lt;/span&gt;.&lt;br /&gt;En el 2006 fuí nombrado por &lt;span style="font-style: italic;"&gt;Microsoft del Ecuador&lt;/span&gt; como &lt;span style="font-style: italic;"&gt;Microsoft Student Partner&lt;/span&gt;, he quedado como finalista de la región andina en el concurso de Imagine Cup 2006 y finalista nacional en el año 2007 en dicha competición, además he sido conferencista en algunos eventos y en este 2008 me certifique como &lt;span style="font-style: italic;"&gt;Administrador de Servidores Linux otorgado por IBM&lt;/span&gt;.&lt;br /&gt;He trabajado en .Net desde el 2003 hasta la actualidad y he desarrollado algunos proyectos bajo esta tecnología.&lt;br /&gt;&lt;a title="View Curriculo on Scribd" href="http://www.scribd.com/doc/12983503/Curriculo" style="margin: 12px auto 6px; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; display: block; text-decoration: underline;"&gt;Curriculo&lt;/a&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_109707278965581" name="doc_109707278965581" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" width="450" height="200"&gt;  &lt;param name="movie" value="http://d.scribd.com/ScribdViewer.swf?document_id=12983503&amp;amp;access_key=key-14lo0dqe1oa11ygq5p42&amp;amp;page=1&amp;amp;version=1&amp;amp;viewMode=list"&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;            &lt;param name="mode" value="list"&gt;       &lt;embed src="http://d.scribd.com/ScribdViewer.swf?document_id=12983503&amp;amp;access_key=key-14lo0dqe1oa11ygq5p42&amp;amp;page=1&amp;amp;version=1&amp;amp;viewMode=list" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_109707278965581_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" mode="list" align="middle" width="700" height="300"&gt;&lt;/embed&gt;   &lt;/object&gt; &lt;div style="margin: 6px auto 3px; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal; display: block;"&gt;    &lt;a href="http://www.scribd.com/upload" style="text-decoration: underline;"&gt;Publish at Scribd&lt;/a&gt; or &lt;a href="http://www.scribd.com/browse" style="text-decoration: underline;"&gt;explore&lt;/a&gt; others:            &lt;a href="http://www.scribd.com/browse/Presentations-Slideshows/Other?style=text-decoration%3A+underline%3B"&gt;Other&lt;/a&gt;              &lt;a href="http://www.scribd.com/browse/Presentations-Slideshows/?style=text-decoration%3A+underline%3B"&gt;Presentations &amp;amp; Slid&lt;/a&gt;                  &lt;a href="http://www.scribd.com/tag/lecastillox%20jugandocon.net%20phanthom2k" style="text-decoration: underline;"&gt;lecastillox jugandoc&lt;/a&gt;       &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8806783586291247971-6790212260637356309?l=lecastillox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/6790212260637356309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/6790212260637356309'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/2009/03/about-of-me.html' title='About of me'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02595989421573640651'/></author></entry><entry><id>tag:blogger.com,1999:blog-8806783586291247971.post-6534432792718295159</id><published>2009-02-28T22:28:00.002-05:00</published><updated>2009-02-28T22:40:46.155-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='azure microsoft'/><title type='text'>Azure Services Plataform</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.microsoft.com/events/series/azure.aspx?tab=overview"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 615px; height: 125px;" src="http://www.microsoft.com/events/series/images/hero_azure_left.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify; font-family: trebuchet ms;"&gt;&lt;span style="font-size:85%;"&gt;Hace algunos meses Microsoft lanzo Azure el cual era un compendio de servicios que ofrecia dentro de su línea de herramientas Web 2.0 en fin aquí les dejo un link para que puedan ingresar a Webcast, Potcast y laboratorios virtuales con un manuales muy buenos y la posibilidad de desarrollarlo en una maquina virtual hospedada en los servidores de Mirosoft.&lt;br /&gt;&lt;br /&gt;&lt;a style="font-weight: bold;" href="http://www.microsoft.com/events/series/azure.aspx?tab=overview"&gt;http://www.microsoft.com/events/series/azure.aspx?tab=overview&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8806783586291247971-6534432792718295159?l=lecastillox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lecastillox.blogspot.com/feeds/6534432792718295159/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8806783586291247971&amp;postID=6534432792718295159' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/6534432792718295159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/6534432792718295159'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/2009/02/azure-services-plataform.html' title='Azure Services Plataform'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02595989421573640651'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8806783586291247971.post-6989288456115941878</id><published>2009-02-23T15:13:00.001-05:00</published><updated>2009-02-23T15:16:45.952-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web2.0'/><title type='text'>Six ways to make Web 2.0 work</title><content type='html'>&lt;div style="text-align: justify; font-family: verdana;"&gt;&lt;span style="font-size:85%;"&gt;Web 2.0 tools present a vast array of opportunities—for companies that know how to use them.&lt;br /&gt;FEBRUARY 2009 • Michael Chui, Andy Miller, and Roger P. Roberts&lt;br /&gt;&lt;br /&gt;Technologies known collectively as Web 2.0 have spread widely among consumers over the past five years. Social-networking Web sites, such as Facebook and MySpace, now attract more than 100 million visitors a month. As the popularity of Web 2.0 has grown, companies have noted the intense consumer engagement and creativity surrounding these technologies. Many organizations, keen to harness Web 2.0 internally, are experimenting with the tools or deploying them on a trial basis.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a style="font-weight: bold; font-family: verdana;" href="http://www.mckinseyquarterly.com/Business_Technology/Application_Management/Six_ways_to_make_Web_20_work_2294"&gt;CONTINUACIÓN DE LA NOTA&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:78%;"&gt;Tomado de: &lt;a href="http://www.mckinseyquarterly.com/Business_Technology/Application_Management/Six_ways_to_make_Web_20_work_2294"&gt;http://www.mckinseyquarterly.com/Business_Technology/Application_Management/Six_ways_to_make_Web_20_work_2294&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8806783586291247971-6989288456115941878?l=lecastillox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lecastillox.blogspot.com/feeds/6989288456115941878/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8806783586291247971&amp;postID=6989288456115941878' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/6989288456115941878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/6989288456115941878'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/2009/02/six-ways-to-make-web-20-work.html' title='Six ways to make Web 2.0 work'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02595989421573640651'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8806783586291247971.post-3957841038424107874</id><published>2009-02-19T22:51:00.014-05:00</published><updated>2009-02-23T15:12:20.771-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mpi'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Parallel Computing'/><title type='text'>Armando un Cluster</title><content type='html'>&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://hp-linux.cern.ch/gifs/kayakclus1.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 272px; height: 231px;" src="http://hp-linux.cern.ch/gifs/kayakclus1.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:hyphenationzone&gt;21&lt;/w:HyphenationZone&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;ES-EC&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="&amp;#45;-"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face  {font-family:Wingdings;  panose-1:5 0 0 0 0 0 0 0 0 0;  mso-font-charset:2;  mso-generic-font-family:auto;  mso-font-pitch:variable;  mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face  {font-family:"Cambria Math";  panose-1:2 4 5 3 5 4 6 3 2 4;  mso-font-charset:0;  mso-generic-font-family:roman;  mso-font-pitch:variable;  mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face  {font-family:Calibri;  panose-1:2 15 5 2 2 2 4 3 2 4;  mso-font-charset:0;  mso-generic-font-family:swiss;  mso-font-pitch:variable;  mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal  {mso-style-unhide:no;  mso-style-qformat:yes;  mso-style-parent:"";  margin-top:0cm;  margin-right:0cm;  margin-bottom:10.0pt;  margin-left:0cm;  line-height:115%;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:Calibri;  mso-fareast-theme-font:minor-latin;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;  mso-fareast-language:EN-US;} h2  {mso-style-priority:9;  mso-style-unhide:no;  mso-style-qformat:yes;  mso-style-link:"Título 2 Car";  mso-margin-top-alt:auto;  margin-right:0cm;  mso-margin-bottom-alt:auto;  margin-left:0cm;  mso-pagination:widow-orphan;  mso-outline-level:2;  font-size:18.0pt;  font-family:"Times New Roman","serif";  mso-fareast-font-family:"Times New Roman";  font-weight:bold;} h3  {mso-style-noshow:yes;  mso-style-priority:9;  mso-style-qformat:yes;  mso-style-link:"Título 3 Car";  mso-style-next:Normal;  margin-top:10.0pt;  margin-right:0cm;  margin-bottom:0cm;  margin-left:0cm;  margin-bottom:.0001pt;  line-height:115%;  mso-pagination:widow-orphan lines-together;  page-break-after:avoid;  mso-outline-level:3;  font-size:11.0pt;  font-family:"Cambria","serif";  mso-ascii-font-family:Cambria;  mso-ascii-theme-font:major-latin;  mso-fareast-font-family:"Times New Roman";  mso-fareast-theme-font:major-fareast;  mso-hansi-font-family:Cambria;  mso-hansi-theme-font:major-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:major-bidi;  color:#4F81BD;  mso-themecolor:accent1;  mso-fareast-language:EN-US;  font-weight:bold;} p  {mso-style-noshow:yes;  mso-style-priority:99;  mso-margin-top-alt:auto;  margin-right:0cm;  mso-margin-bottom-alt:auto;  margin-left:0cm;  mso-pagination:widow-orphan;  font-size:12.0pt;  font-family:"Times New Roman","serif";  mso-fareast-font-family:"Times New Roman";} span.Ttulo2Car  {mso-style-name:"Título 2 Car";  mso-style-priority:9;  mso-style-unhide:no;  mso-style-locked:yes;  mso-style-link:"Título 2";  mso-ansi-font-size:18.0pt;  mso-bidi-font-size:18.0pt;  font-family:"Times New Roman","serif";  mso-ascii-font-family:"Times New Roman";  mso-fareast-font-family:"Times New Roman";  mso-hansi-font-family:"Times New Roman";  mso-bidi-font-family:"Times New Roman";  mso-fareast-language:ES-EC;  font-weight:bold;} span.Ttulo3Car  {mso-style-name:"Título 3 Car";  mso-style-noshow:yes;  mso-style-priority:9;  mso-style-unhide:no;  mso-style-locked:yes;  mso-style-link:"Título 3";  font-family:"Cambria","serif";  mso-ascii-font-family:Cambria;  mso-ascii-theme-font:major-latin;  mso-fareast-font-family:"Times New Roman";  mso-fareast-theme-font:major-fareast;  mso-hansi-font-family:Cambria;  mso-hansi-theme-font:major-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:major-bidi;  color:#4F81BD;  mso-themecolor:accent1;  font-weight:bold;} span.mw-headline  {mso-style-name:mw-headline;  mso-style-unhide:no;} .MsoChpDefault  {mso-style-type:export-only;  mso-default-props:yes;  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:Calibri;  mso-fareast-theme-font:minor-latin;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;  mso-fareast-language:EN-US;} .MsoPapDefault  {mso-style-type:export-only;  margin-bottom:10.0pt;  line-height:115%;} @page Section1  {size:612.0pt 792.0pt;  margin:70.85pt 3.0cm 70.85pt 3.0cm;  mso-header-margin:35.4pt;  mso-footer-margin:35.4pt;  mso-paper-source:0;} div.Section1  {page:Section1;}  /* List Definitions */  @list l0  {mso-list-id:285430737;  mso-list-template-ids:-1894626970;} @list l0:level1  {mso-level-number-format:bullet;  mso-level-text:;  mso-level-tab-stop:36.0pt;  mso-level-number-position:left;  text-indent:-18.0pt;  mso-ansi-font-size:10.0pt;  font-family:Symbol;} @list l1  {mso-list-id:993677945;  mso-list-template-ids:-2107629740;} @list l1:level1  {mso-level-number-format:bullet;  mso-level-text:;  mso-level-tab-stop:36.0pt;  mso-level-number-position:left;  text-indent:-18.0pt;  mso-ansi-font-size:10.0pt;  font-family:Symbol;} @list l2  {mso-list-id:1237014277;  mso-list-template-ids:1404889006;} @list l3  {mso-list-id:1513642421;  mso-list-template-ids:1655973396;} @list l3:level1  {mso-level-number-format:bullet;  mso-level-text:;  mso-level-tab-stop:36.0pt;  mso-level-number-position:left;  text-indent:-18.0pt;  mso-ansi-font-size:10.0pt;  font-family:Symbol;} ol  {margin-bottom:0cm;} ul  {margin-bottom:0cm;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Tabla normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-qformat:yes;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin-top:0cm;  mso-para-margin-right:0cm;  mso-para-margin-bottom:10.0pt;  mso-para-margin-left:0cm;  line-height:115%;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-fareast-language:EN-US;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;El término &lt;b&gt;cluster&lt;/b&gt; se aplica a &lt;/span&gt;&lt;span style="font-size:100%;"&gt;los conjuntos o conglomerados de computadoras construido&lt;/span&gt;&lt;span style="font-size:100%;"&gt;s mediante la utilización de componentes de hardware comunes y que&lt;/span&gt;&lt;span style="font-size:100%;"&gt; se comportan como si fuesen una única computadora. La tecnología de clusters ha evolucionado en apoyo&lt;/span&gt;&lt;span style="font-size:100%;"&gt; de actividades que van desde aplicaciones de supercómputo y software de misiones críticas, servidores Web y comercio &lt;/span&gt;&lt;span style="font-size:100%;"&gt;electrónico, hasta bases de datos de alto rendimiento, entre otros usos.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;El cómputo con clusters surge como resultado de la convergencia de varias tendencias actuales que incluyen la disponibilidad de microprocesadores económicos de alto rendimiento y redes de alta velocidad, el desa&lt;/span&gt;&lt;span style="font-size:100%;"&gt;rrollo de herramientas de software para cómputo distribuido de alto rendimiento, así como la creciente necesidad de potencia computacional para aplicaciones que la requieran.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;Simplemente, &lt;b&gt;cluster&lt;/b&gt; es un grupo de múltiples &lt;a href="http://es.wikipedia.org/wiki/Ordenador" title="Ordenador"&gt;&lt;span style="color:blue;"&gt;ordenadores&lt;/span&gt;&lt;/a&gt; unidos&lt;/span&gt;&lt;span style="font-size:100%;"&gt; mediante una &lt;a href="http://es.wikipedia.org/wiki/Red_de_ordenadores" title="Red de ordenadores"&gt;&lt;span style="color:blue;"&gt;red&lt;/span&gt;&lt;/a&gt; de alta velocidad, de tal forma que el conjunto es visto como un único ordenador, más potente que los comunes de escritorio.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;Clusters son usualmente empleados para mejorar el rendimiento y/o la disponibilidad por encima de la que es provista por un solo computador típicamente siendo más económico que computadores individuales de rapidez y disponibilidad comparables.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;De un cluster se espera que presente combinaciones de los siguientes se&lt;/span&gt;&lt;span style="font-size:100%;"&gt;rvicios:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;ol  style="margin-top: 0cm; text-align: justify;font-family:arial;" start="1" type="1"&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://es.wikipedia.org/wiki/Cluster_de_alto_rendimiento" title="Cluster de alto rendimiento"&gt;&lt;span style="color:blue;"&gt;Alto      rendimiento&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://es.wikipedia.org/wiki/Cluster_de_alta_disponibilidad" title="Cluster de alta disponibilidad"&gt;&lt;span style="color:blue;"&gt;Alta      disponibilidad&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://es.wikipedia.org/wiki/Cluster_de_balanceo_de_carga" title="Cluster de balanceo de carga"&gt;&lt;span style="color:blue;"&gt;Equilibrio      de carga&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://es.wikipedia.org/wiki/Escalabilidad" title="Escalabilidad"&gt;&lt;span style="color:blue;"&gt;Escalabilidad&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;La construcción de los ordenadores del cluster es más fácil y económica debido a su flexibilidad: pueden tener todos la misma configuración de &lt;a href="http://es.wikipedia.org/wiki/Hardware" title="Hardware"&gt;&lt;span style="color:blue;"&gt;hardware&lt;/span&gt;&lt;/a&gt; y &lt;a href="http://es.wikipedia.org/wiki/Sistema_operativo" title="Sistema operativo"&gt;&lt;span style="color:blue;"&gt;sistema operativo&lt;/span&gt;&lt;/a&gt; (cluster homogéneo), diferente rendimiento pero con arquitecturas y sistemas operativos similares (cluster semi-homogéneo), o tener diferente hardware y sistema operativo (cluster heterogéneo), lo que hace más fácil y económica su construcción.&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;El clustering ha estado impulsando poder detrás de muchas de las supercomputadoras científicas&lt;/span&gt;&lt;span style="font-size:100%;"&gt; más poderosas del mundo durante muchos años y ahora está siendo usado cada vez más como una forma efectiva en costos, a fin de proveer computación de alta performance y disponibilidad para una amplia variedad de cargas de trabajo comerciales, tales como business intelligence, diseño de ingeniería, análisis financiero, medios digitales y exploración de petróleo. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;El clustering es la práctica de conectar múltiples procesadores o servidores para cooperar en cargas de trabajo complejas como un único recurso de computación unificada. Dado que se comporta como un único gran recurso, un sistema con cluster le ofrece muchos beneficios valiosos a un entorno de e-business mo&lt;/span&gt;&lt;span style="font-size:100%;"&gt;derno, incluyendo:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;ul  style="margin-top: 0cm; text-align: justify;font-family:arial;" type="disc"&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-style: italic;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Alta      capacidad de procesamiento&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;- combinando el poder de múltiples servidores,      los sistemas con clust&lt;/span&gt;&lt;span style="font-size:100%;"&gt;er pueden resolver cargas de trabajo grandes y      complejas. Un cliente pudo reducir el tiempo para realizar trabajos de      ingeniería claves de días a horas, acortando así el tiempo al mercado para      su nuevo producto.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-style: italic;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Consolidación de recursos&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;- Un único cluster puede acomodar múltiples      cargas de trabajo y variar el poder de procesamiento asignado a cada carga      de trabajo según se requiera; esto hace que los clusters sean ideales para      la consolidación de los recursos y optimicen su utilización.&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-style: italic;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Uso óptimo de los recursos&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;- Los sistemas individuales generalmente      manejan una única carga de trabajo y deben ser adaptados en tamaño para      acomodar picos de demandas que se esperan para esa carga; esto significa      que en general pueden ejecutar bien por debajo de su capacidad, pero que      pueden "fallar" si la demanda excede la capacidad, aun cuando      otros sistemas estén inactivos. Dado que comparten un enorme poder de      procesamiento a través de múltiples cargas de trabajo, los sistemas con      cluster pueden manejar un pico de demanda - asimismo uno inesperado -      aumentando temporalmente el compartir el procesamiento para esa carga de      trabajo, &lt;/span&gt;&lt;span style="font-size:100%;"&gt;obteniendo así las ventajas de una capacidad no utilizada. &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/Us-nasa-columbia.jpg/200px-Us-nasa-columbia.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 146px;" src="http://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/Us-nasa-columbia.jpg/200px-Us-nasa-columbia.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-style: italic;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Consolidación geográfica del servidor &lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;-      Además de la consolidación de servidores que se describe más arriba,      algunos clientes también comparten poder de procesamiento en el mundo; por      ejemplo, desviando el procesamiento de transacciones US diurnas a sistemas      en Japón que estén relativamente inactivos durante la noche.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-style: italic;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Disponibilidad 24 x 7 con protección de failovers&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;- Dado      que el procesamiento se esparce a través de múltiples máquinas, los      sistemas con cluster son altamente tolerantes a fallas: si un sistema      falla, los otros siguen funcionando.&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-style: italic;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Recuperación de desastres&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;- Los clusters pueden abarcar múltiples sitios      geográficos, de modo que aun cuando todo un sitio sea víctima de una      interrupción de la alimentación u otro desastre, las máquinas remotas      continuarán funcionando. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-style: italic;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Escalabilidad horizontal y vertical sin tiempo de inactividad&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;- a      medida que la empresa requiera crecer, al cluster se le puede agregar      poder de procesamiento adicional sin interrumpir las operaciones.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; text-align: left;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b style="font-style: italic;"&gt;Administración centralizada de los sistemas&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-style: italic;"&gt;- IBM      ofrece herramientas que permiten el despliegue, el mantenimiento y el      monitoreo de clusters grandes y distribuidos desde un ú&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-style: italic;"&gt;nico punto de      control.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:verdana;font-size:78%;" class="mw-headline"  &gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;Beneficios de la Tecnología Cluster&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:78%;" class="mw-headline"  &gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;Las aplicaciones paralelas escalables requieren: buen rendimiento, baja latencia, comunicaciones que dispongan de gran ancho de banda, redes escalables y acceso rápido a archivos. Un cluster puede satisfacer estos requerimien&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:78%;" class="mw-headline"  &gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;tos usando los recursos que tiene asociados a él.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:verdana;font-size:78%;" class="mw-headline"  &gt;&lt;span style=""&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Los clusters ofrecen las siguientes características a un costo relativamente bajo:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;ul  style="margin-top: 0cm; text-align: justify;font-family:arial;" type="disc"&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-style: italic;"&gt;&lt;span style="font-size:100%;"&gt;Alto      Rendimiento.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-style: italic;"&gt;&lt;span style="font-size:100%;"&gt;Alta Disponibilidad.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-style: italic;"&gt;&lt;span style="font-size:100%;"&gt;Alta Eficiencia.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-style: italic;"&gt;Escalabilidad.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;La tecnología cluster permite a las organizaciones incrementar su capa&lt;/span&gt;&lt;span style="font-size:100%;"&gt;cidad de procesamiento usando tecnología estándar, tanto en componentes de hardware como de software que pueden adquirirse a un costo relativamente bajo.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;      &lt;/div&gt;&lt;p  style="margin-bottom: 0.0001pt; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" class="mw-headline" &gt;&lt;span style=""&gt;Clasificación de los Clusters&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="margin-bottom: 0.0001pt; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;El término cluster tiene diferentes connotaciones para diferentes grupos de personas. Los tipos de clusters, establecidos en base al uso que se dé a los clusters y los servicios que ofrecen, determinan el significado del térmi&lt;/span&gt;&lt;span style="font-size:100%;"&gt;no para el grupo que lo utiliza. Los clusters pueden clasificarse con base en sus características. Se pueden tener clusters de alto rendimiento (HPC – High Performance Clusters), clusters de alta disponibilidad (HA – High Availability) o clusters de alta eficiencia (HT – High Throughput).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;p  style="margin-bottom: 0.0001pt; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;&lt;i&gt;&lt;span style=""&gt;Alto rendimiento:&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; Son clusters en los cuales se ejecutan tareas que &lt;/span&gt;&lt;span style="font-size:100%;"&gt;requieren de gran capacidad computacional, grandes cantidades de memoria, o ambos a la vez. El llevar a cabo estas tareas puede comprometer los recursos del cluster por largos periodos de tiempo.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;p  style="margin-bottom: 0.0001pt; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;&lt;i&gt;&lt;span style=""&gt;Alta disponibilidad:&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; Son clusters cuyo objetivo de diseño es el de proveer disponibilidad y confiabilidad. Estos clusters tratan de brindar la máxima disponibilidad de los servicios que ofrecen. La confiabilidad se pr&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ovee mediante software que detecta fallos y permite recuperarse frente a los mismos, mientras que en hardware se evita tener un único punto de fallos.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;p  style="margin-bottom: 0.0001pt; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;&lt;i&gt;&lt;span style=""&gt;Alta eficiencia:&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; Son clusters cuyo objetivo de diseño es el ejecutar la mayor cantidad de tareas en el menor tiempo posible. Existe independencia de datos entre las tareas individuales. El retardo entre los nodos del cluster no es considerado un gran problema.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; font-weight: bold; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span class="mw-headline"  style="font-size:100%;"&gt;&lt;span style=""&gt;Componentes de un Cluster&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;    &lt;/div&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;En general, un cluster necesita de varios componentes de soft&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ware y hardware para poder funcionar. A saber:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;ul  style="text-align: justify;font-family:arial;" type="disc"&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-style: italic;"&gt;&lt;span style="font-size:100%;"&gt;Nodos (Computadores que conforman el cluster)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-style: italic;"&gt;&lt;span style="font-size:100%;"&gt;Sistemas Operativos &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-style: italic;"&gt;&lt;span style="font-size:100%;"&gt;Conexiones de Red&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-style: italic;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://es.wikipedia.org/wiki/Middleware" title="Middleware"&gt;&lt;span style="color:blue;"&gt;Middleware&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-style: italic;"&gt;&lt;span style="font-size:100%;"&gt;Protocolos de Comunicación y servicios&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-style: italic;"&gt;&lt;span style="font-size:100%;"&gt;Aplicaciones&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-style: italic;"&gt;Ambientes de Programación Paralela&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;h2  style="margin-bottom: 0.0001pt; text-align: justify;font-family:arial;"&gt;&lt;span class="mw-headline"  style="font-size:100%;"&gt;&lt;span style=""&gt;Sistemas Clusters Implementados&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;      &lt;/div&gt;&lt;h3  style="line-height: normal; font-weight: normal; text-align: justify;font-family:arial;"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold; font-style: italic;font-size:100%;" class="mw-headline" &gt;&lt;span style=""&gt;Google:&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; Durante el año 2003, el cluster Google llegó a estar conformado por más de 15.000 computadores personales. En promedio, una consulta en Google lee cientos de megabytes y consume algunos billones de ciclos del CPU.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h3  style="line-height: normal; font-weight: normal; text-align: justify;font-family:arial;"&gt;&lt;span style="color: rgb(0, 0, 0);font-size:100%;" class="mw-headline" &gt;&lt;span style=""&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Cluster X:&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;En la lista “TOP 500” de noviembre de 2004 fue considerado el séptimo sistema más rápido del mundo; sin embargo, para julio de 2005 ocupa la posición catorce. Cluster X fue construido en el Tecnológico de Virginia en el 2003; su instalación fue realizada por estudiantes d&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;el Tecnológico. Está constituido por 2200 procesadores Apple G5 de 2.3 GHz. Utiliza dos redes: Infiniband 4x para las comunicaciones entre procesos y Gigabit Ethernet para la administración. Cluster X posee 4 Terabytes de memoria RAM y 176 Terabytes de disco duro, su rendimiento es de 12.25 TFlops. Se lo conoce también como Terascale.&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Un buen ejemplo de un cluster implementado es el que se realizo en Virginia Tech aquí les dejo un video&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vLujLtgBJC0&amp;amp;hl=es&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/vLujLtgBJC0&amp;amp;hl=es&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;      &lt;span style="font-family:verdana;"&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;En el siguiente video podemos ver como instalar y usar DEINO el cual nos permite implementar un pequeño cluster con MPI.&lt;br /&gt;Para poder realizar dicho cometido procederemos a ingresar a la siguiente pagina web: http://mpi.deino.net/ y procedemos a descargar la ultima&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt; version de deinompi(&lt;/span&gt;&lt;a href="http://mpi.deino.net/DeinoMPI.1.1.0.msi"&gt;DeinoMPI.1.1.0.msi&lt;/a&gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;, esta distrubución es para uso único en plataformas Windows pero hay diferentes distribuciones que se pueden usar en Linux y OSX&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style="font-size:100%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Fuente:&lt;/span&gt;  &lt;/span&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;http://www.ibm.com/ec/systems/clusters/about/index.phtml&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=""&gt;http://es.wikipedia.org/wiki/Cluster_(inform%C3%A1tica)&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;span style=";font-family:verdana;font-size:100%;"  &gt;http://mmc.igeofcu.unam.mx/mmc/Cluster/Bibliografia/?C=M;O=D&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8806783586291247971-3957841038424107874?l=lecastillox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lecastillox.blogspot.com/feeds/3957841038424107874/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8806783586291247971&amp;postID=3957841038424107874' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/3957841038424107874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/3957841038424107874'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/2009/02/armando-un-cluster.html' title='Armando un Cluster'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02595989421573640651'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8806783586291247971.post-8680074204302480617</id><published>2009-02-19T22:29:00.004-05:00</published><updated>2009-02-19T22:46:41.051-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mpi'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Parallel Computing'/><title type='text'>Interfaz de Paso de Mensajes - MPI</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold; font-family: webdings; font-style: italic;"&gt;En el presente artículo queria explicarles en que consistia el MPI, pero navegando por Internet encontre este artículo en Wikipedia el cual me parecio el indicado para darles a conocer en que consiste el famoso MPI, espero que al leerlo logren entenderlo en realidad es algo muy simple; siempre y cuando se entienda que es y como funciona, al final del post encontraran unos links en los que pueden acceder a mas información y de la que en un futuro utilizaremos.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Fuente&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: trebuchet ms;"&gt;: http://es.wikipedia.org/wiki/MPI&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Empecemos definiendo &lt;span style="font-weight: bold;"&gt;MPI&lt;/span&gt; en ingles quiere decir &lt;span style="font-weight: bold;"&gt;Message Passing Interface&lt;/span&gt; que traducido al español significa &lt;span style="font-weight: bold;"&gt;Interfaz de Paso de Mensajes&lt;/span&gt; a final de cuentas es un estándar que define la sintaxis y la semántica de las funciones contenidas en una biblioteca de paso de mensajes diseñada para ser usada en programas que exploten la existencia de múltiples procesadores.&lt;br /&gt;&lt;br /&gt;El paso de mensajes es una técnica empleada en programación concurrente para aportar sincronización entre procesos y permitir la exclusión mutua, de manera similar a como se hace con los semáforos, monitores, etc.&lt;br /&gt;&lt;br /&gt;Su principal característica es que no precisa de memoria compartida, por lo que es muy importante en la programación para sistemas distribuidos.&lt;br /&gt;Los elementos principales que intervienen en el paso de mensajes son el proceso que envía, el que recibe y el mensaje.&lt;br /&gt;&lt;br /&gt;Dependiendo de si el proceso que envía el mensaje espera a que el mensaje sea recibido, se puede hablar de paso de mensajes síncrono o asíncrono. En el paso de mensajes asíncrono, el proceso que envía, no espera a que el mensaje sea recibido, y continúa su ejecución, siendo posible que vuelva a generar un nuevo mensaje y a enviarlo antes de que se haya recibido el anterior. Por este motivo se suelen emplear buzones, en los que se almacenan los mensajes a espera de que un proceso los reciba. Generalmente empleando este sistema, el proceso que envía mensajes solo se bloquea o para, cuando finaliza su ejecución, o si el buzón está lleno. En el paso de mensajes síncrono, el proceso que envía el mensaje espera a que un proceso lo reciba para continuar su ejecución. Por esto se suele llamar a esta técnica encuentro, o rendezvous. Dentro del paso de mensajes síncrono se engloba a la llamada a procedimiento remoto, muy popular en las arquitecturas cliente/servidor.&lt;br /&gt;&lt;br /&gt;La &lt;span style="font-weight: bold;"&gt;Interfaz de Paso de Mensajes&lt;/span&gt; (&lt;span style="font-weight: bold; font-style: italic;"&gt;MPI - Message Passing Interface&lt;/span&gt;) es un protocolo de comunicación entre computadoras. Es el estándar para la comunicación entre los nodos que ejecutan un programa en un sistema de memoria distribuida. Las implementaciones en MPI consisten en un &lt;span style="font-style: italic;"&gt;conjunto de bibliotecas de rutinas que pueden ser utilizadas en programas escritos en los lenguajes de programación C, C++, Fortran y Ada&lt;/span&gt;. La ventaja de MPI sobre otras bibliotecas de paso de mensajes, es que los programas que utilizan la biblioteca son portables (dado que MPI ha sido implementado para casi toda arquitectura de memoria distribuida), y rápidos, (porque cada implementación de la biblioteca ha sido optimizada para el hardware en la cual se ejecuta).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Historia&lt;/span&gt;&lt;br /&gt;La mayoría de los vendedores de computadoras concurrentes estaban involucrados con MPI, así como con investigadores de diferentes universidades, laboratorios del gobierno e industrias.&lt;br /&gt;El proceso de estandarización comenzó en el taller de estándares para el paso de mensajes en un ambiente con memoria distribuida, patrocinado por el Centro de Investigación en Computación Paralela en Williamsburg, Virginia,Estados Unidos (Abril 29-30 de 1992).&lt;br /&gt;&lt;br /&gt;Se llegó a una propuesta preliminar conocida como MPI1, enfocada principalmente en comunicaciones punto a punto sin incluir rutinas para comunicación colectiva y no presentaba tareas seguras.&lt;br /&gt;&lt;br /&gt;El estándar final por el MPI fue presentado en la conferencia de Supercómputo en Noviembre de 1993, constituyéndose así el foro para el MPI.&lt;br /&gt;&lt;br /&gt;En un ambiente de comunicación con memoria distribuida en la cual las rutinas de paso de mensajes de nivel bajo, los beneficios de la estandarización son muy notorios. La principal ventaja al establecer un estándar para el paso de mensajes es la portabilidad y el ser fácil de utilizar. MPI-1 apareció en 1994, el estándar MPI-2 fue lanzado en 1997&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fundamentos de MPI&lt;/span&gt;&lt;br /&gt;Con MPI el número de procesos requeridos se asigna antes de la ejecución del programa, y no se crean procesos adicionales mientras la aplicación se ejecuta. A cada proceso se le asigna una variable que se denomina rank, la cual identifica a cada proceso, en el rango de 0 a p-1, donde p es el número total de procesos. El control de la ejecución del programa se realiza mediante la variable rank; la variable rank permite determinar que proceso ejecuta determinada porción de código. En MPI se define un comunicator como una colección de procesos, los cuales pueden enviar mensajes el uno al otro; el comunicator básico se denomina MPI_COMM_WORLD y se define mediante un macro del lenguaje C. MPI_COMM_WORLD agrupa a todos los procesos activos durante la ejecución de una aplicación.&lt;br /&gt;&lt;br /&gt;Las llamadas de MPI se dividen en cuatro clases:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;1. Llamadas utilizadas para inicializar, administrar y finalizar comunicaciones.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;2. Llamadas utilizadas para transferir datos entre un par de procesos.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;3. Llamadas para transferir datos entre varios procesos.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;4. Llamadas utilizadas para crear tipos de datos definidos por el usuario.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;La primera clase de llamadas permiten inicializar la biblioteca de paso de mensajes, identificar el número de procesos (size) y el rango de los procesos (rank). La segunda clase de llamadas incluye operaciones de comunicación punto a punto, para diferentes tipos de actividades de envío y recepción. La tercera clase de llamadas son conocidas como operaciones grupales, que proveen operaciones de comunicaciones entre grupos de procesos. La última clase de llamadas provee flexibilidad en la construcción de estructuras de datos complejos. En MPI, un mensaje está conformado por el cuerpo del mensaje, el cual contiene los datos a ser enviados, y su envoltura, que indica el proceso fuente y el destino. El cuerpo del mensaje en MPI se conforma por tres piezas de información: buffer, tipo de dato y count. El buffer, es la localidad de memoria donde se encuentran los datos de salida o donde se almacenan los datos de entrada. El tipo de dato, indica el tipo de los datos que se envían en el mensaje. En casos simples, éste es un tipo básico o primitivo, por ejemplo, un número entero, y que en aplicaciones más avanzadas puede ser un tipo de dato construido a través de datos primitivos. Los tipos de datos derivados son análogos a las estructuras de C. El count es un número de secuencia que junto al tipo de datos permiten al usuario agrupar ítems de datos de un mismo tipo en un solo mensaje. MPI estandariza los tipos de datos primitivos, evitando que el programador se preocupe de las diferencias que existen entre ellos, cuando se encuentran en distintas plataformas. La envoltura de un mensaje en MPI típicamente contiene la dirección destino, la dirección de la fuente, y cualquier otra información que se necesite para transmitir y entregar el mensaje. La envoltura de un mensaje en MPI, consta de cuatro partes: la fuente, el destino, el comunicator y una etiqueta. La fuente identifica al proceso transmisor. El destino identifica al proceso receptor. El comunicator especifica el grupo de procesos a los cuales pertenecen la fuente y el destino. La etiqueta (tag) permite clasificar el mensaje. El campo etiqueta es un entero definido por el usuario que puede ser utilizado para distinguir los mensajes que recibe un proceso. Por ejemplo, se tienen dos procesos A y B. El proceso A envía dos mensajes al proceso B, ambos mensajes contienen un dato. Uno de los datos es utilizado para realizar un cálculo, mientras el otro es utilizado para imprimirlo en pantalla. El proceso A utiliza diferentes etiquetas para los mensajes. El proceso B utiliza los valores de etiquetas definidos en el proceso A e identifica que operación deberá realizar con el dato de cada mensaje.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Llamadas utilizadas para inicializar, administrar y finalizar comunicaciones&lt;/span&gt;&lt;br /&gt;MPI dispone de 4 funciones primordiales que se utilizan en todo programa con MPI. Estas funciones son MPI_Init, MPI_Comm_size, MPI_Comm_rank y MPI_Finalize. MPI_Init permite inicializar una sesión MPI. Esta función debe ser utilizada antes de llamar a cualquier otra función de MPI. MPI_Finalize permite terminar una sesión MPI. Esta función debe ser la última llamada a MPI que un programa realice. Permite liberar la memoria usada por MPI. MPI_Comm_size permite determinar el número total de procesos que pertenecen a un comunicator. MPI_Comm_rank permite determinar el identificador (rank) del proceso actual.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Llamadas utilizadas para transferir datos entre dos procesos&lt;/span&gt;&lt;br /&gt;La transferencia de datos entre dos procesos se consigue mediante las llamadas MPI_Send y MPI_Recv. Estas llamadas devuelven un código que indica su éxito o fracaso. MPI_Send permite enviar información desde un proceso a otro. MPI_Recv permite recibir información desde otro proceso. Ambas funciones son bloqueantes, es decir que el proceso que realiza la llamada se bloquea hasta que la operación de comunicación se complete. Las versiones no bloqueantes de MPI_Send y MPI_Recv son MPI_Isend y MPI_Irecv, respectivamente. Estas llamadas inician la operación de transferencia pero su finalización debe ser realizada de forma explícita mediante llamadas como MPI_Test y MPI_Wait. MPI_Wait es una llamada bloqueante y retorna cuando la operación de envío o recepción se completa. MPI_Test permite verificar si la operación de envío o recepción ha finalizado, esta función primero chequea el estado de la operación de envío o recepción y luego retorna.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Llamadas utilizadas para transferir datos entre varios procesos &lt;/span&gt;&lt;br /&gt;MPI posee llamadas para comunicaciones grupales que incluyen operaciones tipo difusión (broadcast), recolección (gather), distribución (scatter) y reducción. Algunas de las funciones que permiten realizar transferencia entre varios procesos se presentan a continuación. MPI_Barrier permite realizar operaciones de sincronización. En estas operaciones no existe ninguna clase de intercambio de información. Suele emplearse para dar por finalizada una etapa del programa, asegurándose de que todos los procesos han terminado antes de dar comienzo a la siguiente. MPI_Bcast permite a un proceso enviar una copia de sus datos a otros procesos dentro de un grupo definido por un comunicator. MPI_Scatter establece una operación de distribución, en la cual un dato (arreglo de algún tipo de datos) se distribuye en diferentes procesos. MPI_Gather establece una operación de recolección, en la cual los datos son recolectados en un sólo proceso. MPI_Reduce permite que el proceso raíz recolecte datos desde otros procesos en un grupo, y los combine en un solo ítem de datos. Por ejemplo, se podría utilizar una operación reducción, para calcular la suma de los elementos de un arreglo que se distribuyó en algunos procesos.&lt;br /&gt;Llamadas utilizadas para crear tipos de datos definidos por el usuario&lt;br /&gt;Para definir nuevos tipos de datos se puede utilizar la llamada MPI_Type_struct para crear un nuevo tipo o se puede utilizar la llamada MPI_Pack para empaquetar los datos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Características de MPI&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;• Estandarización.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;• Portabilidad: multiprocesadores, multicomputadores, redes, heterogéneos, ...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;• Buenas prestaciones.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;• Amplia funcionalidad.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;• Existencia de implementaciones libres (mpich, LAM-MPI, ...)&lt;/span&gt;&lt;br /&gt;La especificación detalla las funciones que se pueden utilizar, no el modo como se compilan y lanzan-ejecutan los programas, lo cual puede variar de una implementación a otra.&lt;br /&gt;Siguiendo el modelo SPMD, el usuario escribirá su aplicación como un proceso secuencial del que se lanzarán varias instancias que cooperan entre sí.&lt;br /&gt;Los procesos invocan diferentes funciones MPI que permiten&lt;br /&gt;&lt;span style="font-style: italic;"&gt;• iniciar, gestionar y finalizar procesos MPI&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;• comunicar datos entre dos procesos&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;• realizar operaciones de comunicación entre grupos de procesos&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;• crear tipos arbitrarios de datos&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Funciones básicas&lt;/span&gt;&lt;br /&gt;Cualquier programa paralelo con MPI puede implementarse con tan sólo 6 funciones, aunque hay muchas más funciones para aspectos avanzados. Todas ellas empiezan por MPI_ y obligan a que todos los programas escritos en MPI contengan la directiva:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt; #include "mpi.h"&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Este fichero contiene las definiciones, macros y prototipos de función necesarios para compilar los programas MPI.&lt;br /&gt;&lt;br /&gt;Antes de llamar a cualquier otra función MPI debe hacer una llamada a &lt;span style="font-weight: bold;"&gt;MPI_Init();&lt;/span&gt; esta función sólo debe ser llamada una vez. Sus argumentos son punteros a los parámetros de la función &lt;span style="font-style: italic;"&gt;main(), argc y argv&lt;/span&gt;. Esta función permite al sistema hacer todas la configuraciones necesarias para que la biblioteca MPI pueda ser usada. Después de que el programa haya acabado de utilizar la biblioteca MPI se debe hacer una llamada a &lt;span style="font-weight: bold;"&gt;MPI_Finalize()&lt;/span&gt;. La función &lt;span style="font-weight: bold;"&gt;MPI_Finalize()&lt;/span&gt; limpia todos los trabajos no finalizados dejados por MPI. Los programas MPI deben ser obligatoriamente inicializados y finalizados en MPI (MPI_Init, MPI_Finalize).&lt;br /&gt;MPI ofrece la función MPI_Comm_rank(), la cual retorna el identificador de un proceso en su segundo argumento. Su sintaxis es:&lt;br /&gt;int MPI_Comm_rank(MPI_Comm comunicador, int* identificador)&lt;br /&gt;El primer argumento es el comunicador. Esencialmente un comunicador es una colección de procesos que pueden enviarse mensajes entre sí. Normalmente para diseñar programas básicos el único comunicador que se necesitará es MPI_COMM_WORLD. Está predefinido en MPI y consiste en todos los procesos que se ejecutan cuando el programa comienza.&lt;br /&gt;&lt;br /&gt;Muchas de las construcciones que se emplean en los programas, dependen también del número de procesos que se ejecutan. MPI ofrece la función MPI_Comm_size() para determinar dicho número de procesos. Su primer argumento es el comunicador. En el segundo argumento retorna el número de procesos pertenecientes a dicho comunicador. Su sintaxis es:&lt;br /&gt;int MPI_Comm_size(MPI_Comm comunicador, int* numprocs)&lt;br /&gt;La función MPI_Get_processor_name() permite conocer el nombre del procesador donde está ubicado cada proceso. Esto puede ser útil para monitorizar los programas en redes heterogéneas. Conocer en qué máquina concreta se está ejecutando un proceso específico puede ser determinante para explicar su comportamiento, para lo cual puede apoyarse con las herramientas de monitorización . La sintaxis de dicha función es la siguiente:&lt;br /&gt;int MPI_Get_processor_name(char* nombre, int* longnombre)&lt;br /&gt;&lt;br /&gt;El parámetro nombre es una cadena (vector de caracteres) cuyo tamaño debe ser al menos igual a la constante MPI_MAX_PROCESSOR_NAME. En dicho vector quedará almacenado el nombre del procesador. El parámetro longnombre es otro parámetro de salida que informa de la longitud de la cadena obtenida.&lt;br /&gt;&lt;br /&gt;El paso de mensajes bloqueantes se lleva a cabo en los programas por las funciones MPI_Send() y MPI_Recv() principalmente. La primera función envía un mensaje a un proceso determinado. La segunda recibe un mensaje de un proceso. Éstas son las funciones más básicas de paso de mensajes en MPI.&lt;br /&gt;&lt;br /&gt;En MPI el entorno contiene la siguiente información:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;1. El identificador del proceso receptor del mensaje.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;2. El identificador del proceso emisor del mensaje.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;3. Una etiqueta.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;4. Un comunicador.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fichero cabecera:&lt;/span&gt;&lt;br /&gt;1. include &lt;mpi.h&gt;&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h&gt;Formato de las funciones: codigo_error = MPI_nombre( parámetros ... )&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h&gt;Inicialización: int MPI_Init ( int *argc , char ***argv )&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h&gt;Comunicador: Conjunto de procesos que se intercomunican. Por defecto podemos utilizar MPI_COMM_WORD , en cuyo caso el grupo de procesos es el conjunto de procesos lanzados conjuntamente para resolver un problema&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h&gt;Identificación de procesos: MPI_Comm_rank ( MPI_Comm comm , int *rank)&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h&gt;Procesos en el comunicador: MPI_Comm_size ( MPI_Comm comm , int *size)&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h&gt;Finalización: int MPI_Finalize ( )&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h&gt;Mensajes: Un mensaje estará formado por un cierto número de elementos de un mismo tipo MPI.&lt;/mpi.h&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;mpi.h style="font-weight: bold;"&gt;Tipos MPI básicos:&lt;/mpi.h&gt;&lt;br /&gt;&lt;/div&gt;&lt;mpi.h style="font-style: italic;"&gt;MPI_CHAR    signed char&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h style="font-style: italic;"&gt;MPI_SHORT signed short int&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h style="font-style: italic;"&gt;MPI_INT       signed int&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h style="font-style: italic;"&gt;MPI_LONG signed long int&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h style="font-style: italic;"&gt;MPI_UNSIGNED_CHAR unsigned char&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h style="font-style: italic;"&gt;MPI_UNSIGNED_SHOT unsigned short int&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h style="font-style: italic;"&gt;MPI_UNSIGNED               unsigned int&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h style="font-style: italic;"&gt;MPI_UNSIGNED_LONG unsigned long int&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h style="font-style: italic;"&gt;MPI_FLOAT                       float&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h style="font-style: italic;"&gt;MPI_DOUBLE                    double&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h style="font-style: italic;"&gt;MPI_LONG_DOUBLE      long double&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h style="font-style: italic;"&gt;MPI_BYTE &lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h style="font-style: italic;"&gt;MPI_PACKED &lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h&gt;&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h&gt;Tipos MPI derivados: los construye el programador.&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h&gt;Envío de un mensaje a otro proceso: int MPI_Send ( void *posicion_de_memoria , int contador , MPI_Datatype tipo , int destino , int etiqueta , MPI_Comm comunicador )&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h&gt;Recepción de un mensaje de otro proceso:&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h&gt;int MPI_Recv ( void *posicion_de_memoria , int contador , MPI_Datatype tipo , int origen , int etiqueta, MPI_Comm comunicador , MPI_Status *estado)&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h&gt;El receptor puede emplear MPI_ANY_TAG y/o MPI_ANY_SOURCE&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h&gt;&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h&gt;&lt;/mpi.h&gt;&lt;br /&gt;&lt;mpi.h&gt;&lt;/mpi.h&gt;&lt;/div&gt;&lt;mpi.h&gt;&lt;span style="font-weight: bold;"&gt;Material Recomendado:&lt;/span&gt;&lt;br /&gt;&lt;a style="font-weight: bold;" href="http://w3.linux-magazine.com/issue/31/MPI_Cluster_Programming.pdf"&gt;Cluster Programing with MPI&lt;/a&gt; (&lt;/mpi.h&gt;http://w3.linux-magazine.com/issue/31/MPI_Cluster_Programming.pdf)&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: normal;"&gt;&lt;br /&gt;&lt;a href="http://www-unix.mcs.anl.gov/mpi/"&gt;&lt;span style="font-weight: bold;"&gt;The Message Passing Interface (MPI) standard&lt;/span&gt;&lt;/a&gt; (http://www-unix.mcs.anl.gov/mpi/)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt; &lt;mpi.h&gt;&lt;/mpi.h&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8806783586291247971-8680074204302480617?l=lecastillox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lecastillox.blogspot.com/feeds/8680074204302480617/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8806783586291247971&amp;postID=8680074204302480617' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/8680074204302480617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/8680074204302480617'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/2009/02/interfaz-de-paso-de-mensajes-mpi.html' title='Interfaz de Paso de Mensajes - MPI'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02595989421573640651'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8806783586291247971.post-8844710482522097394</id><published>2009-02-18T00:24:00.002-05:00</published><updated>2009-02-18T00:27:35.050-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='entretenimiento'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Parallel Computing'/><title type='text'>MPI</title><content type='html'>En los siguientes dias publicare unos articulos sobre MPI el cual es usado para realizar programas multiproceso en pocas palabras distribuido.&lt;br /&gt;Antes de eso empezaremos configurando un pequeño cluster y luego empezaremos a indicar como programar para este tipo de arquitecturas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8806783586291247971-8844710482522097394?l=lecastillox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lecastillox.blogspot.com/feeds/8844710482522097394/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8806783586291247971&amp;postID=8844710482522097394' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/8844710482522097394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/8844710482522097394'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/2009/02/mpi.html' title='MPI'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02595989421573640651'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8806783586291247971.post-6079427506293645589</id><published>2009-01-11T14:15:00.002-05:00</published><updated>2009-01-11T14:19:37.858-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Instalando Ubuntu Linux</title><content type='html'>Aquí les traigo un video que elabore sobre como instalar Ubuntu Linux, realizando un particionamiento manual de disco espero que les guste.&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/_4LZGu-FTyo&amp;amp;hl=es&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/_4LZGu-FTyo&amp;amp;hl=es&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8806783586291247971-6079427506293645589?l=lecastillox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lecastillox.blogspot.com/feeds/6079427506293645589/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8806783586291247971&amp;postID=6079427506293645589' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/6079427506293645589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/6079427506293645589'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/2009/01/instalando-ubuntu-linux.html' title='Instalando Ubuntu Linux'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02595989421573640651'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8806783586291247971.post-4563230936127372263</id><published>2008-12-31T12:37:00.000-05:00</published><updated>2008-12-31T12:39:53.402-05:00</updated><title type='text'>Happy  2009</title><content type='html'>&lt;div  style="text-align: center; font-weight: bold;font-family:arial;"&gt;&lt;span style="font-size:180%;"&gt;OS ESPERO QUE TENGAS UN&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);font-size:330%;" &gt;FELIZ AÑO 2009&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8806783586291247971-4563230936127372263?l=lecastillox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lecastillox.blogspot.com/feeds/4563230936127372263/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8806783586291247971&amp;postID=4563230936127372263' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/4563230936127372263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/4563230936127372263'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/2008/12/happy-2009.html' title='Happy  2009'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02595989421573640651'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8806783586291247971.post-5472706481163129445</id><published>2008-12-26T23:18:00.002-05:00</published><updated>2008-12-26T23:22:54.675-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>C# Development  | Libro de fundamentos de C#</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_B2UF94EDC3E/SVWtITwi7gI/AAAAAAAAAFU/XURjiZWmVdA/s1600-h/libroTMP.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 227px; height: 320px;" src="http://3.bp.blogspot.com/_B2UF94EDC3E/SVWtITwi7gI/AAAAAAAAAFU/XURjiZWmVdA/s320/libroTMP.png" alt="" id="BLOGGER_PHOTO_ID_5284320096043593218" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Si te interesa aprender C# puedes descargar el libro "C# DEVELOPMENT" en formato digital desde el vinculo que se encuentra a continuación:&lt;br /&gt;&lt;br /&gt;&lt;iframe marginheight="0" marginwidth="0" style="border: 1px solid rgb(221, 229, 233); margin: 3px; padding: 0pt; width: 240px; height: 66px; background-color: rgb(255, 255, 255);" src="http://cid-f64d9be7eb5dd817.skydrive.live.com/embedrowdetail.aspx/Public/Development%20Books/Rob%7C_Miles%7C_CSharp%7C_Yellow%7C_Book%7C_2008.pdf" scrolling="no" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Este libro toca temas desde los mas básicos para que comprendas como programar usando C#.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8806783586291247971-5472706481163129445?l=lecastillox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lecastillox.blogspot.com/feeds/5472706481163129445/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8806783586291247971&amp;postID=5472706481163129445' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/5472706481163129445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/5472706481163129445'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/2008/12/c-development-libro-de-fundamentos-de-c.html' title='C# Development  | Libro de fundamentos de C#'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02595989421573640651'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_B2UF94EDC3E/SVWtITwi7gI/AAAAAAAAAFU/XURjiZWmVdA/s72-c/libroTMP.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8806783586291247971.post-5867697710507437208</id><published>2008-12-25T03:46:00.003-05:00</published><updated>2008-12-26T23:24:48.216-05:00</updated><title type='text'>DateTime felizNavidad = new DateTime(25,12,2008);</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Gracias por visitar mi blog, este 25 de Diciembre deseo de todo corazón desearte una&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: rgb(0, 0, 153); text-align: center;"&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;"&gt;FELÍZ NAVIDAD&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8806783586291247971-5867697710507437208?l=lecastillox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lecastillox.blogspot.com/feeds/5867697710507437208/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8806783586291247971&amp;postID=5867697710507437208' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/5867697710507437208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/5867697710507437208'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/2008/12/25-dic-2008.html' title='DateTime felizNavidad = new DateTime(25,12,2008);'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02595989421573640651'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8806783586291247971.post-1400227112445193938</id><published>2008-12-20T21:34:00.003-05:00</published><updated>2008-12-20T21:40:46.076-05:00</updated><title type='text'>Messenger TV</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://messengertv.msn.com/mkt/es-xl/i/howto_scrn.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 256px; height: 192px;" src="http://messengertv.msn.com/mkt/es-xl/i/howto_scrn.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Navegando por Internet encontre que el equipo de &lt;span style="font-style: italic; font-weight: bold;"&gt;Windows Live Messenger&lt;/span&gt; lanzo &lt;a href="http://messengertv.msn.com/mkt/es-xl/default.htm"&gt;&lt;span style="color: rgb(0, 153, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;Messenger TV&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; esta pequeña funcionalidad nos permite compartir con un contacto del MS Messenger un video que se este viendo desde &lt;span style="font-style: italic; font-weight: bold;"&gt;MSN Video&lt;/span&gt; en fin aquí les dejo el link espero que les guste: http://messengertv.msn.com/mkt/es-xl/default.htm ó si no pueden hacer click en el siguiente anuncio para tener acceso a esta funcionalidad.&lt;br /&gt;&lt;p style="text-align: center;"&gt;&lt;a href="msnim:add?contact=MessengerTV@live.com"&gt;&lt;img src="http://messengertv.msn.com/mkt/es-xl/i/bt_chatbox.jpg" alt="También puedes ver Messenger TV por ti mismo" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: left;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;Nota: Hay que tener iniciada la sesion del Messenger&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8806783586291247971-1400227112445193938?l=lecastillox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lecastillox.blogspot.com/feeds/1400227112445193938/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8806783586291247971&amp;postID=1400227112445193938' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/1400227112445193938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/1400227112445193938'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/2008/12/messenger-tv.html' title='Messenger TV'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02595989421573640651'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8806783586291247971.post-2024570247066687602</id><published>2008-09-14T12:50:00.002-05:00</published><updated>2008-09-14T12:53:13.895-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Personalizando el GridView en ASP .Net</title><content type='html'>&lt;object width="425" height="350"&gt; &lt;param name="movie" value="http://www.youtube.com/v/hpFA1wCUw2Q"&gt;  &lt;embed src="http://www.youtube.com/v/hpFA1wCUw2Q" type="application/x-shockwave-flash" width="425" height="350"&gt;&lt;/embed&gt;  &lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8806783586291247971-2024570247066687602?l=lecastillox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lecastillox.blogspot.com/feeds/2024570247066687602/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8806783586291247971&amp;postID=2024570247066687602' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/2024570247066687602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/2024570247066687602'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/2008/09/personalizando-el-gridview-en-asp-net.html' title='Personalizando el GridView en ASP .Net'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02595989421573640651'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8806783586291247971.post-1733539679441426452</id><published>2008-09-12T02:39:00.005-05:00</published><updated>2008-09-12T02:54:12.188-05:00</updated><title type='text'>Programmer Day</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.programmerday.info/"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 393px; height: 141px;" src="http://farm2.static.flickr.com/1371/1380397061_28df2ffd8a_o.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Antes de nada Feliz Día del programador, a todos aquellos que tenemos el Corazón puesto en el código que desarrollamos.&lt;br /&gt;&lt;br /&gt;Este día, 12 de Septiembre se ha designado de manera no oficial el día de los programadore esta  fecha representa el día &lt;span style="font-style: italic;"&gt;256 del año&lt;/span&gt; que es una equivalencia del 2 a la 8 ó en binario &lt;span style="font-weight: bold;"&gt;1111 1111&lt;/span&gt; que es la representación máxima de un &lt;span style="font-weight: bold; font-style: italic;"&gt;byte&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Nota: esta fecha aun no es oficial&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8806783586291247971-1733539679441426452?l=lecastillox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lecastillox.blogspot.com/feeds/1733539679441426452/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8806783586291247971&amp;postID=1733539679441426452' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/1733539679441426452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/1733539679441426452'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/2008/09/happy-programmer-day.html' title='Programmer Day'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02595989421573640651'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8806783586291247971.post-6883492095528889097</id><published>2008-08-26T23:46:00.004-05:00</published><updated>2008-08-26T23:56:54.791-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Framework 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Codificar al puro estilo Microsoft con StyleCop</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blogs.msdn.com/sourceanalysis/archive/2008/08/19/stylecop-4-3-is-released.aspx"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 634px; height: 60px;" src="http://blogs.msdn.com/photos/sourceanalysis/images/8652246/original.aspx" alt="" border="0" /&gt;&lt;/a&gt;Navegando por Intenet encontre esta pequeña herramienta que se llama&lt;span style="font-weight: bold;"&gt; StyleCop&lt;/span&gt; la cual se la puede usar para analizar el código que uno como desarrollador y verificar si cumple con misma estructura de codificación que usan los ingenieros de Microsoft al desarrollar el software de dicha empresa.&lt;br /&gt;Esta herramienta se encarga unicamente de verificar  la estructura y mas no de enseñar a codificar, la recomiendo, ya que ademas de verificar la estructura nos obliga &lt;span style="font-style: italic;"&gt;(a los desarrolladores) &lt;/span&gt;a comentar el código que se escribe con el fin de que este documentado de manera adecuada.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Puedes visitar estos links:&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:78%;"  &gt;&lt;a style="font-weight: bold;" href="http://blogs.msdn.com/sourceanalysis/archive/2008/08/19/stylecop-4-3-is-released.aspx"&gt;http://blogs.msdn.com/sourceanalysis/archive/2008/08/19/stylecop-4-3-is-released.aspx&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a style="font-weight: bold;" href="http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=sourceanalysis&amp;amp;ReleaseId=1425"&gt;http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=sourceanalysis&amp;amp;ReleaseId=1425&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8806783586291247971-6883492095528889097?l=lecastillox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lecastillox.blogspot.com/feeds/6883492095528889097/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8806783586291247971&amp;postID=6883492095528889097' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/6883492095528889097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/6883492095528889097'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/2008/08/codificar-al-puro-estilo-microsoft-con.html' title='Codificar al puro estilo Microsoft con StyleCop'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02595989421573640651'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8806783586291247971.post-4727207527614129798</id><published>2008-08-14T00:20:00.002-05:00</published><updated>2008-08-14T00:28:12.310-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='sqlserver'/><title type='text'>DataTierGenerator for Enterprise Library</title><content type='html'>Hace ya algun tiempo en un WebCast de Microsoft que no recuerdo el nombre hablaron de como mapear una tabla de una base de datos y bueno alli salio el tema de usar herramientas de generacion de codigo en este caso un generador de una capa de acceso a datos usando el Enterprice Library y bueno eso me llevo a buscar una herramienta y encontre DataTierGenerator for Enterprise Library 2.0 es una pequeña herramienta que se conecta a una base de datos determinada y la examina generando archivos SQL con procedimientos almacenados y clases con una representacion de las tablas de la base de datos en las que se usa los procedimientos almacenados que se generan en esta vez no encontre el lugar exacto de donde descargue la herramienta que uso pero encontre una similar ya que solo le faltan unas caracteristicas aquí les dijo el link: &lt;a href="http://sourceforge.net/projects/dtg-entlib/"&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;http://sourceforge.net/projects/dtg-entlib/&lt;/span&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;En la pagina de descarga del DataTierGenerator for Enterprise Library describe la herramienta como: "This tool generates the TableDataGateway classes and SQL scripts that create stored procedures for the tables in your database. The generated classes use the patterns &amp;amp; practices Enterprise Library."&lt;br /&gt;Espero que le hechen una mirada a la herramienta&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8806783586291247971-4727207527614129798?l=lecastillox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lecastillox.blogspot.com/feeds/4727207527614129798/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8806783586291247971&amp;postID=4727207527614129798' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/4727207527614129798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/4727207527614129798'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/2008/08/datatiergenerator-for-enterprise.html' title='DataTierGenerator for Enterprise Library'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02595989421573640651'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8806783586291247971.post-8759442352445545535</id><published>2008-08-12T23:17:00.008-05:00</published><updated>2008-08-13T00:00:59.890-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='sqlserver'/><title type='text'>Base de datos SQL Server en modo solo lectura (READONLY)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://picasaweb.google.com/lecastillox/Blog/photo#5233860710724652786"&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://picasaweb.google.com/lecastillox/Blog/photo#5233860710724652786" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Luego de haber perdido algunos días tratando de instalar SQL Server 2005 en Windows Vista, me comentaron que las versiones SQL Server 2005 no son compatibles con este Sistema operativo y bueno al final de todo logre instalar por lo menos el motor aunque no se instalo con todas las herramienas (Reporting Services, Analisis Service etc) y bueno le instale el Management Studio para las versiones Express de SQL, en fin llego el momento de montar una base de datos que tenia e mi antigua laptop, y cuando la añadi sorpresa, que solo se me monta la base de datos en mi servidor en modo solo lectura, y bueno como pueden ver en la imagen esta la solucion para dehabilitar el modo solo lectura de nuestra base de datos.&lt;br /&gt;&lt;br /&gt;Este modo de &lt;span style="font-weight: bold;"&gt;READONLY &lt;/span&gt;se lo suele usar comunmente para que los usuarios no cambien datos ó en sistemas que solo se necesita hacer consultas a la base de datos en los que un insert o un update no existen (ojo desde el punto de vista de la aplicacion que consuma la DB).&lt;br /&gt;&lt;br /&gt;Para deshabilitar el modo solo lectura hacermos los siguientes pasos: &lt;span style="font-style: italic; font-weight: bold;"&gt;Click &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;derecho en la BD que esta en modo solo lectura, luego hacemos click en Propiedades, luego seleccionamos Opciones y alli nosubicamos en Estado y cambiamos el valor de Base de dato&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;s de solo lectura a FALSE y luego procedemos a aceptar&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh6.ggpht.com/lecastillox/SKJolhKdzvI/AAAAAAAAACI/j0IQKBa826I/s400/sololectura.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh6.ggpht.com/lecastillox/SKJolhKdzvI/AAAAAAAAACI/j0IQKBa826I/s800/sololectura.jpg"&gt;&lt;img style="cursor: pointer; width: 501px; height: 338px;" src="http://lh6.ggpht.com/lecastillox/SKJolhKdzvI/AAAAAAAAACI/j0IQKBa826I/s800/sololectura.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8806783586291247971-8759442352445545535?l=lecastillox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lecastillox.blogspot.com/feeds/8759442352445545535/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8806783586291247971&amp;postID=8759442352445545535' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/8759442352445545535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/8759442352445545535'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/2008/08/base-de-datos-sql-server-en-modo-solo.html' title='Base de datos SQL Server en modo solo lectura (READONLY)'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02595989421573640651'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/lecastillox/SKJolhKdzvI/AAAAAAAAACI/j0IQKBa826I/s72-c/sololectura.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8806783586291247971.post-6922958063862724917</id><published>2008-08-12T17:52:00.003-05:00</published><updated>2008-08-12T18:09:03.030-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Informática'/><category scheme='http://www.blogger.com/atom/ns#' term='Framework 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='OOXML'/><category scheme='http://www.blogger.com/atom/ns#' term='office2007'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Visual Studio 2008 y .NET Framework 3.5 Service Pack 1</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.microsoft.com/spanish/msdn/vs2008/images/sp1_hero.jpg"&gt;&lt;img style="cursor: pointer; width: 437px; height: 91px;" src="http://www.microsoft.com/spanish/msdn/vs2008/images/sp1_hero.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;p style="text-align: justify;"&gt;&lt;em&gt;Ya está a disposición del público la versión final del Service Pack 1 de Visual Studio 2008 y .NET Framework 3.5.&lt;/em&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Visual Studio 2008 y .NET Framework 3.5 Service Pack 1 dan continuidad a la inversión de Microsoft en herramientas de desarrollo líderes del mercado. El Service Pack 1 resuelve problemas encontrados tanto mediante pruebas internas como gracias a información recibida de clientes y &lt;em&gt;partners &lt;/em&gt;. En general, el Service Pack 1 ofrece a sus usuarios tanto nuevas características como mejoras en la estabilidad y el rendimiento de Visual Studio 2008 y .NET Framework 3.5. &lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="color: rgb(87, 17, 16);"&gt;&lt;strong&gt;Descripción general &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Con el Service Pack 1, Visual Studio 2008 introduce una gran cantidad de nuevas características para el desarrollo de aplicaciones para Windows, Office y la Web. Los desarrolladores que creen aplicaciones basadas en .NET disfrutarán de un rendimiento superior del diseñador de WPF, nuevos componentes para Visual Basic y Visual C++, así como un &lt;em&gt;ribbon &lt;/em&gt; de Office 2007 para las MFC. Los desarrolladores de aplicaciones Web encontrarán múltiples mejoras en el soporte para la programación de &lt;em&gt;scripts &lt;/em&gt; del lado del cliente, incluyendo el IntelliSense para Javascript. Adicionalmente, el soporte total para SQL Server 2008, la incorporación de ADO.NET Entity Framework y las mejoras de rendimiento del entorno hacen que el Service Pack 1 sea un producto sumamente atractivo. &lt;/p&gt;&lt;p style="text-align: justify;"&gt;Por su parte, .NET Framework 3.5 Service Pack 1 ofrece más controles, una configuración más dirigida y mejoras en el rendimiento durante el arranque, así como potentes características gráficas para el desarrollo de aplicaciones cliente y nuevas posibilidades de acceso a datos, soporte mejorado para AJAX y otras mejoras para el desarrollo Web. Adicionalmente, introduce ADO.NET Entity Framework y ADO.NET Data Services, que permitirán simplificar aún más el código de acceso a datos en las aplicaciones ofreciendo un modelo conceptual extensible para representar datos provenientes de diversas fuentes y permitiendo que este modelo refleje de un modo más cercano los requisitos de negocio.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;a style="font-weight: bold; color: rgb(255, 102, 0);" href="http://www.microsoft.com/spanish/msdn/vs2008/sp/sp1.mspx"&gt;Leer mas....&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;DESCARGALO HACIENDO &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=27673C47-B3B5-4C67-BD99-84E525B5CE61&amp;amp;displaylang=en"&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;CLICK AQUÍ&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8806783586291247971-6922958063862724917?l=lecastillox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lecastillox.blogspot.com/feeds/6922958063862724917/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8806783586291247971&amp;postID=6922958063862724917' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/6922958063862724917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/6922958063862724917'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/2008/08/visual-studio-2008-y-net-framework-35.html' title='Visual Studio 2008 y .NET Framework 3.5 Service Pack 1'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02595989421573640651'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8806783586291247971.post-2969250733098337656</id><published>2008-08-10T23:44:00.002-05:00</published><updated>2008-09-12T02:55:28.576-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Guía para Crear aplicaciones ASP .NET seguras</title><content type='html'>Hace poco estaba investigando como construir una pagina web con un poco mas de seguiridad y me coneontre esta interesante pagina web: &lt;a style="font-weight: bold;" href="http://www.microsoft.com/spanish/msdn/arquitectura/BuildSecNetApps/html/SecurityGuide-LandingPage.mspx"&gt;http://www.microsoft.com/spanish/msdn/arquitectura/BuildSecNetApps/html/SecurityGuide-LandingPage.mspx&lt;/a&gt;&lt;br /&gt;Esta guía presenta un enfoque práctico, basado en escenarios, del diseño y creación de aplicaciones ASP.NET seguras para Windows 2000 y la versión 0.1 de .NET Framework. Se centra en los elementos clave de la autenticación, la autorización y la comunicación segura en y entre los niveles de aplicaciones Web .NET seguras.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8806783586291247971-2969250733098337656?l=lecastillox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lecastillox.blogspot.com/feeds/2969250733098337656/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8806783586291247971&amp;postID=2969250733098337656' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/2969250733098337656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/2969250733098337656'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/2008/08/guia-para-crear-aplicaciones-asp-net.html' title='Guía para Crear aplicaciones ASP .NET seguras'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02595989421573640651'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8806783586291247971.post-2832576205148563662</id><published>2008-07-14T00:35:00.001-05:00</published><updated>2008-07-14T19:24:28.424-05:00</updated><title type='text'>El conocimiento tácito y explícito</title><content type='html'>A la hora de hablar de conocimiento existe una serie de conceptos aparentemente similares que dificultan su entendimiento. Conocimiento no es lo mismo que datos, ni tan siquiera lo mismo que información. Los datos son los elementos base de la pirámide del conocimiento. Al conjunto de datos organizados y analizados en un contexto determinado lo denominamos información. Pero información, como decíamos, no es lo mismo que conocimiento. Recopilar datos, organizarlos e incluso analizarlos, es algo que pueden hacer (y en algunos casos mejor que los seres humanos) el software informático. Ahora bien, al conocimiento, de momento, no llegan los ordenadores. EL conocimiento es un paso adelante. Es identificar, estructurar y sobre todo utilizar la información para obtener un resultado. Requiere aplicar la intuición y la sabiduría, propios de la persona, a la información. La capacidad de interpretar esos datos es lo que provoca que la información se convierta en conocimiento.&lt;br /&gt;Según Nonaka y Takeuchi existen dos tipos de conocimiento. Dadas sus características el conocimiento explícito se ha definido como el conocimiento objetivo y racional que puede ser expresado con palabras, números, fórmula, etc., también se le denomina explícito. Por otro lado tenemos el conocimiento tácito, que es aquel que una persona, comunidad, organización o país, tiene incorporado o almacenado en su mente, en su cultura y es difícil de explicar. Es necesario explicar que este conocimiento puede estar compuesto por:&lt;br /&gt;- Ideas, experiencias, destrezas, habilidades, costumbres, valores, historia, creencias...&lt;br /&gt;- Conocimiento del contexto o ecológico (geografía, física, normas no escritas, comportamientos de personas y objetos, etc.),&lt;br /&gt;- Conocimiento como destreza cognitiva (compresión de la lectura, resolución de problemas, analizar, visualizar ideas, etc.) que le permite acceder a otro más complejo o resolver problemas nuevos.&lt;br /&gt;Cuando estos conocimientos nos permiten actuar se llaman competencias o conocimiento en acción. El problema que presenta este tipo de conocimiento es su dificultad a la hora de transmitirlo, por ello es necesario gestionarlo creando códigos que faciliten su transmisión.&lt;br /&gt;Para la gestión del conocimiento la dimensión tácita del conocimiento es una parte del conocimiento personal y organizacional, que se hace visible cuando se utiliza para ciertas situaciones donde el conocimiento codificado o explícito es insuficiente para enfrentar dicha situación.&lt;br /&gt;El conocimiento tácito y explícito como pensamiento Es importante observar que el enfoque que se ha expuesto para reconsiderar el pensamiento va acompañado de una explicación radicalmente diferente de la naturaleza de los seres humanos. El conocimiento se puede entender como la integración intencional de diferencias en todos coherentes porque se concibe al individuo como una unidad de significado. Como dice M. Merleau-Ponty en The Structure of Behavior, el acto de conocer consiste en tomar posesión de los acontecimientos y constituye una extensión de la capacidad humana de actuar con respecto al medio ambiente. El dualismo mente-cuerpo no tiene cabida en esta escuela filosófica holística.&lt;br /&gt;En lugar de preguntar en que actividades participan los seres humanos, la pregunta fundamental ahora con respecto a la inteligencia es como se realiza una determinada actividad. Si el criterio para medir la inteligencia es el descubrimiento intencional de conexiones y la integración de disimilitudes, lo que verdaderamente importa es la calidad de las acciones y no el supuesto ámbito de desarrollo. La centralidad del cuestionamiento a pasado del reino del que al del como. Al aceptar estos conceptos como las normas para poner a prueba la conducta sobresaliente, tanto el jugador de tenis que sabe cuando y donde probar un determinado tiro sin poder explicar cómo lo hace y el matemático que sabe que los lados de un triángulo isósceles son iguales manifiestan inteligencia por igual. Ambos son dignos de ser considerados intelectuales. Normalmente ha habido y habrá diferencias en la calidad dentro de un determinado ámbito de la conducta humana, pero la calidad o grado de complejidad no queda intrínsecamente definido por la modalidad de conocimiento. No se puede decir que uno sea inferior al otro. Lo mismo se aplica a la creatividad y a la sofisticación del conocimiento. Nadie puede dudar que pintar un libro para colorear es menos impresionante que el cuadro de V. Van Gogh titulado 'Noche estrellada', o que un niño de tres años de edad que trata de pegarle a una pelota de golf con un cepillo es menos 'capaz' que T. Goods cuando juega en el torneo de maestros. Sin embargo, ninguno de esos ejemplos puede ser acusado de no mostrar acciones inteligentes.&lt;br /&gt;En otras palabras, el pensamiento y el conocimiento como medidas de la inteligencia pueden ser motrizmente activo o sedentario, impresionantes o no, verbales o no verbales, pueden mostrar poca creatividad o mucha, pero ningún acto puede ser desacreditado por su carácter definitorio. El inglés deficiente es tan común y tan poco inteligente como el fútbol deficiente. El significado se encuentra cuando la inteligencia y el pensamiento contribuyen a la integración de diferencias mediante el aprovechamiento de los elementos subsidiarios; esto sucede cuando la imaginación de los seres humanos resulta impredecible, lo que permite ampliar las limitaciones naturales de tiempo y espacio y al mismo tiempo sentirse libre.&lt;br /&gt;&lt;br /&gt;Son distintas manera de como se aprecia al conocimiento, pero hay que saber aplicarlas deacuerdo a nuestro entorno ya que de culturas en culturas hay sustanciales cambios en la manera de pensar y de actual respecto al conocimiento&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Referencias:&lt;br /&gt;&lt;a href="http://www.redcientifica.com/doc/doc200405180600.html"&gt;http://www.redcientifica.com/doc/doc200405180600.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.efdeportes.com/efd10/torres10.htm"&gt;http://www.efdeportes.com/efd10/torres10.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8806783586291247971-2832576205148563662?l=lecastillox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lecastillox.blogspot.com/feeds/2832576205148563662/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8806783586291247971&amp;postID=2832576205148563662' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/2832576205148563662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/2832576205148563662'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/2008/07/el-conocimiento-tcito-y-explcito.html' title='El conocimiento tácito y explícito'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02595989421573640651'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8806783586291247971.post-7974318710569833037</id><published>2008-07-09T18:17:00.000-05:00</published><updated>2008-07-09T18:19:33.897-05:00</updated><title type='text'>Tipos de conocimiento</title><content type='html'>&lt;strong&gt;El conocimiento revelado &lt;/strong&gt;procede de un sujeto para el que todo fenómeno es inteligible. Habría dos versiones de este tipo de conocimiento, una fuerte y otra débil. En la fuerte el sujeto que revela el conocimiento sería Dios, en la débil, la conciencia de uno mismo. No podemos decir nada acerca de la objetividad del conocimiento revelado, aunque si procede de un Dios podríamos presumir que es un conocimiento objetivo. Y por último, nótese que el conocimiento revelado necesariamente no cambia.&lt;br /&gt;&lt;strong&gt;El conocimiento artístico&lt;/strong&gt; se apoya en el principio de comunicabilidad de complejidades initeligibles (teniendo en cuenta el significado atribuido a la palabra inteliglible). Por otro lado no necesariamente cumple el criterio de objetividad (aunque puede hacerlo). Además, el conocimiento artístico no necesariamente cambia.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8806783586291247971-7974318710569833037?l=lecastillox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lecastillox.blogspot.com/feeds/7974318710569833037/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8806783586291247971&amp;postID=7974318710569833037' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/7974318710569833037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8806783586291247971/posts/default/7974318710569833037'/><link rel='alternate' type='text/html' href='http://lecastillox.blogspot.com/2008/07/tipos-de-conocimiento.html' title='Tipos de conocimiento'/><author><name>Luis Castillo</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02595989421573640651'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>