Buenas noches!

El día de hoy me encontré con una tecnología nueva e interesante llamada Scss. Es una tecnología para la compilación y organización

Imagen de SCSS

SCSS

de las hojas de estilo.
Actualmente existe una problemática con las hojas de estilo, ya que son poco administrables, lo cual afecta su escalabilidad. Scss viene a combatir esta problemática, incorporando nuevas funciones a las hojas de estilo.
El archivo Sassy Css es de extensión .scss, este archivo es compilado y su resultado es el archivo CSS que utilizará la página web

El tema que encontré más interesante fue el de selectores anidados (como les comento, esto es algo que recién aprendo, así que disculpen la ignorancia), estos selectores vienen a facilitar la vida del diseñador, ya que permite agrupar los distintos estilos combinados, ayudando a evitar el error humano y mejorar la visibilidad del código del estilo.

Por ejemplo, un estilo CSS sin anidar

.content {
border: 1px solid #ccc;
padding: 20px;
}
.content h2 {
font-size: 3em;
margin: 20px 0;
}
.content p {
font-size: 1.5em;
margin: 15px 0;
}

Un ejemplo del mismo código con SCSS sería,

.content {
border: 1px solid #ccc;
padding: 20px;

h2 {
font-size: 3em;
margin: 20px 0;
}

p {
font-size: 1.5em;
margin: 15px 0;
}

}

Vemos como los diferentes selectores son agrupados, lo cual facilita la lectura del CSS.

Otra propiedad interesante es la del selector padre, la cual podemos utilizar para indicar la posición del selector del cuál queremos heredar sus propiedades, el selector de padre es el &.

Por ejemplo un estilo CSS:

.surveyor {
border: 1px solid #ccc;
padding: 20px;
}
.factory .surveyor {
padding: 30px;
}

Escribiéndolo en SCSS sería de la siguiente manera

.surveyor {
border: 1px solid #ccc;
padding: 20px;

.factory &{
padding: 30px;
}
}

Espero que les haya gustado, conforme vaya conociendo un poco más sobre esta tecnología les estaré contando.

Anuncios

Publicado: 28/06/2012 de jimmycampos en Uncategorized

Excelente amigo, colega y compañero, conozcan un poco sobre Rick García

El Blog de MSP para Latinoamerica

Cuéntanos sobre ti

Saludos, mi nombre es Rick Lennie Garcia, MSP Lead para Nicaragua. Radico en la capital de mi país, Managua y estudio Ing. Sistemas y tecnologías de la información en la Universidad Centroamérica UCA, es decir 100 % Jesuita

¿Qué es lo que más te gusta de tu ciudad y/o país?

Bueno me gusta su gente, es muy espontánea, cálida y alegre para que les comento, mejor vengan a Nicaragua el país de lagos y volcanes, hay lugares muy bellos para visitar como la isla de Ometepe, san Juan del Sur, el cañón de Somoto, entre otros.

¿Cómo te convertiste en Microsoft Student Partner?

Es una historia muy bonita, entre unos amigos creamos una comunidad llamada “Student Tech Club UCA” y comenzamos hacer muchos eventos y nos llevo al reconocimiento de ser el STC mas activo de LATAM en el 2010, y gracias mi labor dentro el STC…

Ver la entrada original 617 palabras más

Publicado: 21/06/2012 de jimmycampos en Uncategorized

Buenas queridos y queridas lectores/as. En esta ocasión, quiero comentarles sobre el desarrollo de aplicaciones para Windows Azure en otras plataformas diferentes a .NET.

Un momento… ¿Microsoft e interoperabilidad con otras plataformas?

La verdad esta fue una pregunta y una de las cosas que menos me gustaba de los productos de Microsoft, su poca compatibilidad con otras plataformas, mas esto es un mito que arrastramos desde el pasado.

Si bien es cierto aún no hay un nivel de complemento nativo como todos deseamos, ya ésta empresa hace mucho entendió la importancia de la interoperabilidad y está realizando importantes esfuerzos por crecer en este tema. Para conocer más sobre esto podemos ver la página de Open at Microsoft (http://blogs.msdn.com/b/interoperability/)

Ahh… Entonces esto aplica también a Windows Azure?

Para la creación  de esta nueva plataforma, Microsoft pensó en las empresas que desearan tener sus soluciones en la Nube pero seguir desarrollando en otros lenguajes de programación, como Node.Js, Java, PHP y otros lenguajes de programación.

¿Puedo crear Web Roles y Workers Rol?

De momento, el uso de lenguajes de programación diferentes a .NET puede ser utilizado para la el desarrollo de Web Roles. Los Workers Role solamente pueden ser desarrollados en lenguajes de la plataforma de .NET (C#.NET, VB.NET y aquellos que se apeguen al CLS (Common Languaje Specification)).

Algunos lenguajes de programación para Web Role

Node JS

El desarrollo para Windows Azure es fácil cuando se usan las herramientas disponibles. En este tutorial se supone que no tiene ninguna experiencia previa en el uso de Windows Azure. Cuando complete esta guía, tendrá funcionando en la nube una aplicación que utiliza varios recursos de Windows Azure.

Obtendrá información acerca de:

  • Cómo crear una nueva aplicación Node.js de Windows Azure con las herramientas de Windows PowerShell.
  • Cómo ejecutar la aplicación Node localmente, utilizando el emulador de proceso de Windows Azure.
  • Cómo publicar y volver a publicar una aplicación en Windows Azure.

Esto fue tomado de la dirección http://www.windowsazure.com/es-es/develop/nodejs/tutorials/getting-started/, si deseas conocer más sobre el desarrollo con Node.js en Azure puedes ver el link.

PHP

Para la creación de una primer aplicación “Hola Mundo” con PHP sobre Azure puedes ver el siguiente enlace http://azurephp.interoperabilitybridges.com/articles/build-and-deploy-a-windows-azure-php-application

Otros lenguajes

Para la creación de aplicativos en otros lenguajes para Windows Azure podemos ver la página de desarrolladores de Windows Azure http://www.windowsazure.com/es-es/develop/overview/

Bueno, esto es todo para esta entrada, espero que les haya gustado y que haya sido de provecho.

PD: La canción para esta entrada es una de mis canciones favoritas. Shine – Collective Soul.

Buenas noches amigos/as lectores, el día de hoy quiero hacer una pequeña introducción al desarrollo de aplicaciones móviles multi plataforma con una herramienta llamada PhoneGap.
En esta entrada, veremos los siguientes puntos

1. Qué es PhoneGap?
2. Qué tecnologías se utilizan para programar?
3. Para qué plataformas puedo desarrollar?
4. Cómo lo instalo?
5. Ejemplo

1. Qué es PhoneGap?

PhoneGap es una plataforma para el desarrollo de aplicaciones en HTML5 crear aplicaciones nativas con tecnologías web, además de poder accesar a las API’s y el market place.

2. Qué tecnologías se utilizan para programar?

Para escribir aplicaciones móviles podemos aprovechar las tecnologías: HTML5, CSS3 y Javascript (jQuery). La importancia con esto radica en escribir aplicaciones basadas en el cliente, la comunicación con base de datos y demás se realizará en el lenguaje que se desee (C#.NET, basado en WCF, Node.JS, etc).

Además, podemos utilizar técnicas como Responsive Web Design para adaptar la aplicación a cualquier resolución de teléfono.

3. Para qué plataformas puedo desarrollar?

Se puede desarrollar para Windows Phone 7, Android, iOS, OS 5 (Blackberry), webOS (hp), Symbian y Bada (Samsung)

4. Cómo lo instalo?

En esta pequeña guía, vamos a configurar PhoneGap para desarrollo con Windows Phone 7 y Visual Studio 2010.

Primero, descargamos e instalamos el SDK de Windows Phone para VS2010. Luego, descargamos PhoneGap desde http://phonegap.com/download

Luego, descomprimimos el archivo y vamos a lib/Windows/ y copiamos el archivo” CordovaStarter-1.7.0.zip” en “C:\Users\[USERNAME]\Documents\Visual Studio 2010\Templates\ProjectTemplates\” y extraemos el archivo en ese directorio.

5. Ejemplo

Desde Visual Studio 2010, vamos a Nuevo Proyecto -> Visual C# y seleccionamos CordovaStarter. Colocamos un nombre DemoPhoneGap.

Vamos al archivo WMAppManifest.xml y cambiamos las capabilities por estas  (Se encuentra en Properties/)

   <Capabilities>
           <Capability Name="ID_CAP_APPOINTMENTS"/>
           <Capability Name="ID_CAP_CAMERA"/>
           <Capability Name="ID_CAP_CONTACTS"/>
           <Capability Name="ID_CAP_GAMERSERVICES"/>
           <Capability Name="ID_CAP_IDENTITY_DEVICE"/>
           <Capability Name="ID_CAP_IDENTITY_USER"/>
           <Capability Name="ID_CAP_ISV_CAMERA"/>
           <Capability Name="ID_CAP_LOCATION"/>
           <Capability Name="ID_CAP_MEDIALIB"/>
           <Capability Name="ID_CAP_MICROPHONE"/>
           <Capability Name="ID_CAP_NETWORKING"/>
           <Capability Name="ID_CAP_PHONEDIALER"/>
           <Capability Name="ID_CAP_PUSH_NOTIFICATION"/>
           <Capability Name="ID_CAP_SENSORS"/>
           <Capability Name="ID_CAP_WEBBROWSERCOMPONENT"/>
           <Capability Name="ID_HW_FRONTCAMERA"/>
     </Capabilities>

Ya tenemos montada la plantilla de PhoneGap y los permisos.

Para ponerlo más interesante, vamos a utilizar HTML5 Boilerplate (http://es.html5boilerplate.com). Esto es un punto de partida para la creación de sitios HTML5, Javascript y CSS3. Porqué es importante? Porque las aplicaciones en PhoneGap se desarrollan con estas tres tecnologías.

Descargamos el boilerplate y lo agregamos a la carpeta “www”. Se debe ver de la siguiente manera:

Visual Studio 2010 y PhoneGap

Visual Studio 2010 y PhoneGap

Para efectos del ejemplo solamente vamos a modificar la página index, específicamente el menú

              <header class="wrapper clearfix">
			<h1 id="title">PhoneGap / HTML5 Boilerplate  </h1>
			<nav>
				<ul>
					<li><a href="#">Inicio</a></li>
					<li><a href="Camera.html">Camara</a></li>
					<li><a href="#">Acerca de</a></li>
				</ul>
			</nav>
		</header>

Ahora agregamos la página HTML que se llame Camera.html. Este es un pequeño ejemplo que utiliza la cámara del teléfono. Este ejemplo puede ser utilizado desde Windows Phone, Android y todas las plataformas que se mencionaron anteriormente sin cambiar nada del código fuente.


<!DOCTYPE html>
<html class="no-js" lang="en">
    <head>
        <meta charset="utf-8" />
        <title>Tomar Foto</title>

        <script type="text/javascript" charset="utf-8" src="cordova-1.7.0.js"></script>

        <meta name="description" content="Camara desde WP">
	    <meta name="author" content="JimACampos">

	    <meta name="viewport" content="width=device-width">

	    <link rel="stylesheet" href="css/style.css">

	    <script src="js/libs/modernizr-2.5.3-respond-1.1.0.min.js"></script>
        <script type="text/javascript" charset="utf-8">

            var fuenteImagen; //fuente de la imagen
            var tipoDestino;
            //agrega el evento cuando PhoneGap está listo
            document.addEventListener("deviceready", onDeviceReady, false);

            //PhoneGap está listo para usarse
            function onDeviceReady() {
                pictureSource = navigator.camera.PictureSourceType;
                destinationType = navigator.camera.DestinationType;
            }

            // Llamamos a este método cuando la data fue recibida
            function onPhotoDataSuccess(imageData) {
                // Uncomment to view the base64 encoded image data
                // console.log(imageData);

                // Obtiene el manejador de la imagen
                var smallImage = document.getElementById('smallImage');

                // Muestra los elemetos de la imagen
                smallImage.style.display = 'block';

                // Show the captured photo
                // The inline CSS rules are used to resize the image
                //
                smallImage.src = "data:image/jpeg;base64," + imageData;
            }

            // Llamado cuando la foto está lista
            function onPhotoURISuccess(imageURI) {
                // Uncomment to view the image file URI
                // console.log(imageURI);

                // Obtiene el manejador de la image
                //
                var largeImage = document.getElementById('largeImage');

                // Unhide image elements
                //
                largeImage.style.display = 'block';

                // Show the captured photo
                // The inline CSS rules are used to resize the image
                //
                largeImage.src = imageURI;
            }

            // Un Botón llamará a esta funcion
            //
            function capturePhoto() {
                // Toma la foto usando la camara del dispositivo y devolverá la imagen en formato base64-encoded
                navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50,
                    destinationType: destinationType.DATA_URL
                });
            }

            // Un botón llamará esta funcion
            //
            function capturePhotoEdit() {
                // Toma la foto usando la camara del dispositivo, permite editarla y devolverá la imagen en formato base64-encoded
                navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 20, allowEdit: true,
                    destinationType: destinationType.DATA_URL
                });
            }

            // Un botón llamará a esta funcion
            //
            function getPhoto(source) {
                // Obtiene la ubicacion del archivo de imagen de la fuente especificada
                navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50,
                    destinationType: destinationType.FILE_URI,
                    sourceType: source
                });
            }

            // Show image
            //
            function cameraCallback(imageData) {
                var image = document.getElementById('smallImage');
                image.src = "data:image/jpeg;base64," + imageData;
            }

            // Es llamado si algo malo paso
            //
            function onFail(message) {
                alert('Failed because: ' + message);
            }

        </script>

    </head>
    <body>
        <div id="header-container">
		        <header class="wrapper clearfix">
			        <h1 id="title">PhoneGap / HTML5 Boilerplate  </h1>
			        <nav>
				        <ul>
					        <li><a href="#">Inicio</a></li>
					        <li><a href="#">Contenido</a></li>
					        <li><a href="#">Acerca de</a></li>
				        </ul>
			        </nav>
		        </header>
	        </div>
	        <div id="main-container">
		        <div id="main" class="wrapper clearfix">

			        <article>
				        <header>
					        <h1>Bienvenido/a</h1>
					        <p>Esta es una pequeña aplicación de ejemplo utilizando HTML5, CSS3 y jQuery</p>
				        </header>
				        <section>
					        <h2>Sobre PhoneGap</h2>
					        <button onclick="capturePhoto();">Tomar foto</button> <br>
                            <button onclick="capturePhotoEdit();">Tomar foto Editar</button> <br>
                            <button onclick="getPhoto(pictureSource.PHOTOLIBRARY);">De la libreria de fotos</button><br>
                            <button onclick="getPhoto(pictureSource.SAVEDPHOTOALBUM);">Del album de fotos</button><br>
				        </section>
				        <section>
					        <h2>Imagenes</h2>
					        <img alt="imagen pequenia"" style="display:none;width:60px;height:60px;" id="smallImage" src="" />
                            <img alt="imagen grande" style="display:none;" id="largeImage" src="" />
				        </section>
				        <footer>
					        <p>JimACampos</p>
				        </footer>
			        </article>

			        <aside>
				        <h3>aside</h3>
				        <p>Contactenos en Facebook, Twitter y WordPress</p>
			        </aside>

		        </div> <!-- #main -->
	        </div> <!-- #main-container -->

	        <div id="footer-container">
		        <footer class="wrapper">
			        <h3>Ningún derecho reservado</h3>
		        </footer>
	        </div>

        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
        <script>            window.jQuery || document.write('<script src="js/libs/jquery-1.7.2.min.js"><\/script>')</script>

        <script src="js/plugins.js"></script>
        <script src="js/script.js"></script>
        <script>
            var _gaq = [['_setAccount', 'UA-XXXXX-X'], ['_trackPageview']];
            (function (d, t) {
                var g = d.createElement(t), s = d.getElementsByTagName(t)[0];
                g.src = ('https:' == location.protocol ? '//ssl' : '//www') + '.google-analytics.com/ga.js';
                s.parentNode.insertBefore(g, s)
            } (document, 'script'));
        </script>
    </body>
</html>

Ejecutamos la aplicación y se debe ver de la siguiente manera:

Inicio de la app

Inicio de la app

WP7 Capturar imagen

WP7 Capturar imagen

WP7 Buscar imagen libreria

WP7 Buscar imagen libreria

WP7 Agregar imagen  desde libreria

WP7 Agregar imagen desde libreria

Bueno, eso es todo, espero que les haya gustado y llamado la atención este primer acercamiento.
PD: Canción recomendadísima de Pink Floyd – Comfortably Numb

Buenas lectores y lectoras, continuando con el tema de Windows Azure pasamos al siguiente tema, los Roles en Windows Azure. Este es un tema meramente para desarrolladores/as de software, por lo que es un aspecto para que lo tomen en cuenta.

¿Roles?

En Windows Azure existen 3 roles para el desarrollo de aplicaciones: Web Role, Worker Role y Virtual Machine Role. Vamos a dar principal importancia a los primeros dos.

Web Role

Un Web Role es un role de Windows Azure donde se implementan las aplicaciones web, sitios web o servicios web. Son las aplicaciones con las cuales interactúa un usuario directamente.

Un Web Role puede ser una aplicación de ASP.NET, ASP.NET MVC, Windows Comunication Foundation, etc. También puede ser un sitio web desarrollado en Node.js, Java, PHP y otros (en el siguiente post hablaré un poco sobre esta interoperabilidad con estas plataformas).

Visual Studio 2010 nos brinda 3 plantillas para Web Roles cuando creamos un proyecto Cloud: ASP.NET, ASP.NET MVC3, MVC2, Silverlight Bussiness Aplication y WCF Service.

plantillas de roles

Los Web Roles cuentan con un archivo llamado WebRole.cs, el cuál Tiene la configuración de las acciones del servicio, como los métodos OnStart, OnStop, y más que se ejecutan automáticamente cuando se levanta el rol.

Worker Role

Un Worker Role es un rol de Windows Azure que se ejecuta en background, muy parecido a los servicios del sistema operativo (hilos de procesamiento). Estos roles se ejecutan durante el tiempo que defina el usuario, pudiendo ser “infinitos” (hasta que sean eliminados). Estos sólo pueden ser desarrollados en .NET.

Visual Studio también nos brinda una plantilla para crear Worker Roles.

Un Worker Role puede ser accesado desde dentro de la Nube, como fuera de esta, mediante HTTP, HTTPS y TCP (Este solamente para los puntos de entrada internos).

Virtual Machine Role

Un Virtual Machine Role es un rol de Windows Azure que permite la ejecución de una instancia de Windows Server 2008 R2 personalizada para facilitar las pruebas y la movida de aplicaciones a entornos en la nube

Código, código

Bueno, luego de esta explicación teórica vamos a un pequeño ejemplo

Creamos un proyecto Cloud en Visual Studio 2010 (si no tienes esta opción probablemente no cuentes con el SDK, lo puedes descargar de http://www.windowsazure.com/es-es/develop/net/). Lo nombramos “DemoRoles”.

Agregamos un Web Role y un Worker Role

El solution explorer se verá de la siguiente manera

explorador de la solución del proyecto

En el Web Role, modificamos el HTML de la página Default.aspx de la siguiente manera


<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="WebRole1._Default" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <h2>
       Roles en Windows Azure
    </h2>
    <p>
        Esto es un Web Role
    </p>
    <p>
        Gracias por leer!
    </p>
</asp:Content>

Ahora, vamos a la clase WorkerRole.cs y modificamos el método Run() de la siguiente manera

public override void Run()
        {
            // Implementacion del método Run
            int numIteraciones = 1;
            string mensaje = "Vamos por la iteracion {0}";
            Trace.WriteLine("$projectname$ entry point called", "Information");
            while (true)
            {
                Thread.Sleep(10000);
                Trace.WriteLine(string.Format(mensaje,numIteraciones), "Information");
                numIteraciones++;
            }
        }

Cuando ejecutamos la aplicación podemos ver el Web Role desde nuestro navegador y el Worker Role desde el emulador Compute.

Web Role

demostración del web role

Worker Role

ejemplo del worker role

Bueno, hasta aquí por esta ocasión, espero que les haya gustado este primer acercamiento con código fuente y esta aplicación en la Nube. Cualquier duda, comentario o queja la puedes dejar al final. Gracias!

Jimmy Campos Blanco. Costa Rica.

PD: Para finalizar, cómo siempre, una recomendación musical, AC/DC y un gran éxito “It’s a long way to the top”.

Primer acercamiento a Windows Azure

Publicado: 16/04/2012 de jimmycampos en Introducción a
Etiquetas:, , ,

Saludos a todos/as las que se toman unos minutos para leer esta entrada del blog, donde se pretende dar esa primera luz para conocer Windows Azure.

Image

Pero ¿qué es Windows Azure?

Windows Azure es un sistema PaaS (Platform as a Service) de la oferta de servicios en la Nube de Microsoft. Es una plataforma sobre la cual podremos hospedar nuestras aplicaciones, servicios, bases de datos, etcétera. Si no conoces muy bien el tema de la nube puedes ver esta entrada que había creado “Introducción a Cloud Computing” (https://studentsexperience.wordpress.com/2011/10/29/introduccion-a-cloud-computing/)

Image

OK, es una plataforma, ¿y eso qué?

La plataforma de Windows Azure se compone de varios servicios a los cuales se puede tener acceso y crear aplicaciones realmente robustas. Algunos de los componentes de la plataforma son Windows Azure Compute, Windows Azure Storage, Fabric Controller, Connect y SQL Azure, por mencionar algunos.

Image

Image

Mmm, ya, ¿y qué es cada uno?

La explicación de cada componente de Windows Azure podría abarcar más de un capítulo por libro entonces no los explicaré detalladamente, pero a grandes rasgos podemos decir:

–          Fabric Controller: Es el componente encargado de la creación de las máquinas virtuales y la asignación de recursos cada vez que se crea un nuevo rol. Luego podemos ver más a detalle que quiere decir esto.

–          Windows Azure Compute: Es el componente encargado del alojamiento y monitoreo de los roles que publiquemos en la plataforma de Windows Azure. Aquí es donde estarán y ejecutarán las aplicaciones.

–          Windows Azure Storage: Es el componente encargado del manejo de los tres tipos de Storage disponibles en Windows Azure. Los tipos de storage son Queue, Tables y Blobs. Los analizaremos cada uno en un blog posterior.

–          Connect: Es el componente que permite conectar de manera eficaz los entornos on-premises con Windows Azure. Igualmente posteriormente podemos tratar este tema.

–          SQL Azure: Es el gestor de bases de datos relacionales totalmente en la Nube. Microsoft SQL Azure posee la mayoría de las características de SQL Server 2008 R2, aunque posee algunas limitaciones. Más adelante podemos crear una entrada para explicar más sobre SQL Azure.

Image

Entiendo, ¿y cuanto cuesta?

Windows Azure Platform posee una versión de evaluación gratuita de 180 días. Para crear la suscripción puedes acceder a http://www.windowsazure.com/es-es/pricing/free-trial/ .

Para conocer los precios de Windows Azure puede acceder a esta página http://www.windowsazure.com/es-es/pricing/calculator/advanced/ .

Image

¿Algo más que deba saber?

Puedes observar la siguiente imagen para conocer, de manera gráfica, el funcionamiento de las aplicaciones en Windows Azure y cómo se comunican.

Image

Esto es todo por esta entrada. Muchas gracias y pronto seguiremos con este tema tan interesante.

PD: La canción recomendada para este blog es un super clásico “Stairway to Heaven” de Led Zeppelin

El Fin de un Mini-Ciclo

Publicado: 13/12/2011 de jimmycampos en Uncategorized

Gracias a tod@s los que se toman el tiempo para leer esta pequeña entrada de hoy. Esta entrada no es técnica, simplemente quiero compartir con mis amig@s, colegas, conocidos y extraños una pequeña historia de agradecimiento.

El día de hoy (13-12-11) estoy dando por terminado un ciclo de mi vida, el bachiller universitario, en Informática Empresarial en la Universidad de Costa Rica, recinto de San Ramón. Han sido 4 años muy duros, de transnochar, de dolores de cabeza, estrés, escasez, entre muchas cosas negativas. Pero han sido más los beneficios y las buenas experiencias, que contrarestan todo lo “malo”.

A nivel académico, he aprendido sobre PROGRAMACIÓN ( 🙂 ),bases de datos, administración de empresas, administración de proyectos, humaninades, expresión oral y escrita, entre muchas áreas más.

Este último año ha sido el mejor, participo en el programa de Microsoft Student Partner donde he conocido grandes personas y expertos. Personas que eran desconocidos y ya son amigos, como Jimmy Saenz, Rick Lennie, Gabriel Rojas, Jessica Fonseca, Brayan Rodríguez. Otros no tan desconocidos pero que se convirtieron en grandes amigos como Bernal Mendoza y Daniel Ramírez. Además donde he aprendido mucho más de lo que creía saber.

Esta experiencia tambien me permitió conocer un grupo de jóvenes muy apasionados e interesados por mejorar y crecer cada día. El Student Student Tech Club UCRTech Club del Recinto de San Ramón de la UCR. Espero que sigan con esa iniciativa y crecimiento como el que tienen ahora, ya que la carrera, sus compañer@s y la universidad los necesita.

Como estudiante, crecí y conocí grandes personas. Me alegra poder terminar con alguien que considero mi otro hermano Eladio Montero, del cual aprendí y me ayudó a crecer, tanto como estudiante como persona. Además de mis otros dos compañeros de práctica: Maikol Rodríguez y Susan Vargas a los cuales quiero y espero que siempre siga la amistad a pesar de la distancia.

Tambien quisiera agradecer a mis amigos Pao Lobo, Jorge Ramírez, Keyrin Chacón, Oscar Chaves, Dani Salas, Kathy Arce, Gonzalo Siles, Mario , Tavo, Kike, Ariel,…. uff la lista sería demasiado larga, pero de verdad gracias por darme su amistad en este tiempo.

Uno especial para Angie Morales, mi compañera más cercana este año, aunque no tanto de trabajo pero sí de vida, a la cual quiero muchísimo y fue un gran y la selección del humorfuerte apoyo este año. Gracias!

Agradecer fuertemente a mi familia, especialmente a mi madre Xinia Blanco, porque sin ella no hubiera podido alcanzar ni lograr nada de lo que tengo o soy de la vida.

Agradezco a los profesores Mike Arias, Alberto Ramírez, Mao Fernández ,Fran Blanco y Jose Eliecer Montero, que me tuvieron que aguantar, pero que siempre los tendré presente y agradecidos por toda la ayuda  y el aprendizaje que obtuve (y no solo académicamente)

Casi terminando, un fuerte agradecimiento para quien fue mi guía empresarial, quien fue la primer persona en confiar en mí como profesional, don Ronald Cambronero, a quien le debo muchisimo aprendizaje y quien fue un gran impulso, porque no solo fue un jefe, sino tambien un gran amigo. Y gracias a esa oportunidad conocí a Christian Castro y Miglan Mami, Angie y yoMadriz, los primeros compañeros de trabajo, quienes fueron muy comprensivos y me ayudaron increiblente.

Por último, pero no menos importante, al contrario, le agradezco a Dios y a Jesucristo quien fue MI FUERZA, y sin él no hubiera no hubera ganado pero ni un curso. Siempre has estado conmigo y siempre lo estarás.

Este blog fue creado de estudiantes para estudiantes, y lo seguiré porque siempre seré un estudiante, porque siempre tengo algo que aprender y algo que me gustaría compartir.

Gracias por tomarse el tiempo para leer y por ser parte de mi esfuerzo y trabajo

Pura vida! 🙂

El pase de diapositivas requiere JavaScript.

Buenas tardes compañeros y compañeros, la entrada del blog de hoy en un poco más teórica, y lo que vamos a realizar es una explicación del término Cloud Computing o Computación en la Nube o simplemente La Nube.

Este término anda y suena por todo lado, pero realmente ¿qué es la Nube?

¿Qué es la Nube?

“La Nube no es simplemente una manera más elegante de describir a la Internet. Si bien la Internet es un fundamento clave para la Nube, la Nube es algo más que eso. La Nube es donde vas para usar la tecnología cuando la necesitas, por el tiempo que lo necesites. No instalas nada localmente, y no pagas por la tecnología cuando no la estás utilizando.”

Como explica la definición anterior, la Nube NO es Internet, si bien necesitamos de Internet para acceder a la Nube, no es solamente esto. La Nube es una serie de servicios que se prestan (o venden generalmente) durante un tiempo determinado.

Dentro de los servicios principales brindados como SERVICIOS, se encuentran:

  • SaaS que es SoftwImagen alusiva a la computación en la nubeare As a Service, o Software como un servicio, donde podemos acceder a un software por el tiempo que lo necesitamos. Entre las aplicaciones SaaS podemos mencionar MS Office 365, MS Exchange Online.
  • IaaS significa Infrastructure as a Service,  es el hospedaje de aplicaciones existentes dentro de máquinas virtuales en la nube. Similar al servicio de Hosting, ya que la únicamente se alquila el equipo y se debe configurar como se desee.
  • PaaS significa Platform As A Service, se trata de los servicios en la nube que permiten crear aplicaciones específicamente desarrolladas para trabajar en entornos “Cloud” con las ventajas ya señaladas. Toda la infraestructura de base, tanto el software como el hardware, son transparentes para nosotros. Se crea la aplicación y se despliega obteniendo alta disponibilidad, alta escalabilidad, y nulos costes de operación. Un ejemplo de PaaS es Windows Azure.

Un tipo de arquitectura, el cual es el que más apoyo, es utilizar el Software + Servicios, o S+S. El siguiente video fue desarrollado por Walter Novoa, colombiano, Microsoft DPE, que explica de manera rápida y ejemplificada lo que es S+S.

 

Para finalizar queda resaltar algo: La computación en la nube es una gran opción para muchas empresas, pero puede que para otros de escenario de negocios no sea recomendable, por lo que se debe analizar los requerimientos organizacionales y la necesidades de negocio.

En mi próximo blog estaré hablando sobre Windows Azure, cómo funciona y con qué se come esto.

Cualquier duda o comentario no duden en realizarlo.

Pura vida y saludos!

PD: Una canción para el disfrute de tod@s, Chris Cornell interpretando Black Hole Sun