lunes, 27 de agosto de 2012

PPTs y talleres de la clase sistemas de información

 

Para mis estudiantes del curso de Sistemas de Información de la UN.

Por favor diligencien este formulario para enviarles el material de las clases.

Como subir un App WinRT a Windows app store

Dentro de las oportunidades que se vienen con Windows 8 es la de poder ofrecer nuestras aplicaciones a través del Windows app store. En este artículo veremos los pasos para subir nuestras apps:

1. Registro:

Lo primero es ir al Windows Dev Center (http://msdn.microsoft.com/en-us/windows/apps) e iniciar sesión con el live id.
Seguido vamos a la opción de Dashboard, en la cual iniciamos el proceso de registro, seleccionando el país en el que nos encontramos, para nuestro caso “Colombia”
image
Una vez en la ventana de registro llenamos la información correspondiente. Para tener en cuenta, el código postal lo podemos encontrar en la página de 4-72 (aplica para Colombia: http://190.26.208.149/CodigosPostales/Index.html#app=76ee&4817-selectedIndex=1)
image

Una vez hacemos clic en siguiente debemos leer y aceptar el contrato (Application Development Agreement)
image

2. PRECIO y pago

En la página se nos especifica el precio a pagar por el registro, si se tiene un código se puede incluir en esta parte.
image
Una vez se hace clic en siguiente se activa la ventana de pago, en la cual registramos la información de una Tarjeta de Crédito por medio de la cual se hará el pago.
image
Una vez registrados los datos del medio de pago se debe hacer la confirmación de la compra:
image
Una vez realizados estos pasos nos llega un correo de conformación de la creación de la cuenta y del pago realizado. Ahora ya podemos iniciar nuestro trabajo en el dashboard
image

3. SUBIR UNA APP

Una vez ingresamos al Dash Board podemos iniciar con el proceso de carga de nuestra aplicación, para ello utilizamos el link Submit an app:
image
Para subir la app nos pide los siguientes pasos:
image
  • App Name
Se debe reservar el nombre que tendrá la app.
image
image
  • Selling details (Opciones para la venta)
En esta opción se determina el precio, y si aplica en periodo de prueba de la app, para nuestro caso nuestra app será gratis (Free).
Además en esta opción se debe seleccionar en que mercados quedará disponible, teniendo en cuenta las opciones y palabras que tiene nuestra app, pues una palabra común en el dialecto colombiano, puede ser mal vista en otra región, lo cual puede causas que la app no sea subida al app store.
image
También se debe seleccionar la fecha en que será lanzada nuestra app, la primera opción es publicarla una vez pase el proceso certificación.
También se debe seleccionar la categoría sobre la cual se alojará la app, en mi caso “Business”
Se debe también seleccionar si la app requiere para funcionar algunas especificaciones de hardware, particularmente si el dispositivo debe tener alguna versión de DirectX o si requiere dispositivos con más de 2GB de RAM.
Se debe seleccionar si la app  cumple con las directrices de accesibilidad, importante tener en cuenta que si la app no cumple con alguna de las opciones de accesibilidad descritas en la guía y es seleccionada esta opción, la app no será certificada.
image
  • Características avanzadas
image
En este apartado configuramos 1. si la app y cuenta con  “Push notifications and Live Connect services”  los cuales deben ser configurados antes de subir la app para la certificacion. 2. “In-app offers” si se quiere configurar ofertas dentro de la aplicación.
  • Audiencia a quien va dirigida la app (Age rating and rating certificates)
Se debe seleccionar para que público puede estar disponible la app, hay que tener en cuenta que Windows Store no permite subir aplicaciones explicitas para adultos únicamente (por ejemplo apps de contenido sexual)
image
  • Criptografía (Cryptography)
Permite especificar si la app usa encriptación.
image
  • Paquetes
Es necesario subir el paquete de nuestra app, este paquete se puede crear a través de Visual Studio (proximante publicaré un post al respecto)
image
  • Descripción
Una ves tenemos los paquetes subidos, precedemos a dar una descripción de nuestra app, en la cual se pide:
  1. Descripción de la app, que será el texto que leerán nuestros usuarios antes de descargar la app
  2. App Features (Características)
  3. Keywords (Palabras clave)
  4. Description of update (descripción de la actualización)
  5. Copyright and trademark (Derechos de autor)
  6. Additional license terms (Términos adicionales de la licencia)
  7. Screenshots (pantallazos)
  8. Promotional images (imágenes promocionales)
  9. Recommended hardware (Hardware recomendado)
  10. Website
  11. Support contact info (Información de contacto para soporte)
  12. Privacy policy ( Política de privacidad)
image
  • Notas a los probadores (Notes to testers)
Permite escribir información que ayuda a los probadores a entender y a utilizar la aplicación. La información ingresada en esta parte no será vista por los usuarios de la app.
image

4. Enviar la app para certificación

Una vez se han completado todos los pasos se habilita la opción de enviar la app para la respectiva certificación.
image

Bueno, espero sea de utilidad este pequeño tutorial sobre el proceso de carga de nuestras apps.

viernes, 3 de agosto de 2012

Capacitación gratuita!

Hola,

Para los interesados en adquirir nuevos conocimiento y ampliar sus horizontes les recomiendo le den un vistazo a esta página, en la cual encontrarán cursos online gratis ofrecidos por la universidad de Harvard y el MIT.

https://www.edx.org/courses

image

image

image

image

Espero sea de su total interés

martes, 31 de julio de 2012

Calcular la edad en SQL con una Funcion

A veces en proyectos de orden social nos encontramos en que debemos calcular la edad de una persona a partir de su fecha de nacimiento, y pues los primero que a uno se le ocurre es restar las dos fechas con la función datediff:

select DATEDIFF(year,fNacimiento,getdate()) from personas
Sin embargo esta respuesta no es tan exacta por que no tiene en cuenta si ya cumplió o no años, para solucionar eso, hay que evaluar si la fecha de cumpleaños ya paso y si es así sumar un año.

select
DATEDIFF(year,fNacimiento,getdate() )+   
case
when ( Month(getdate()) < Month(fNacimiento) Or
(Month(getdate()) = Month(fNacimiento) And
Day(getdate()) < day(fNacimiento))) Then -1 else 0 end
as edad from personas

Ahora esto lo podemos poner en una función para calcular la edad cada vez que lo necesite, asi:


CREATE FUNCTION [dbo].[fnEdad]
(-- Add the parameters for the function here@fNacimiento datetime,
@fdiligenciamiento datetime
)RETURNS int
AS
BEGIN
-- Declare the return variable hereDECLARE @ResultVar int
set @ResultVar = DATEDIFF(year,@fNacimiento,@fdiligenciamiento )+   
case
when ( Month(@fdiligenciamiento) < Month(@fNacimiento) Or (Month(@fdiligenciamiento) = Month(@fNacimiento) And Day(@fdiligenciamiento) < day(@fNacimiento))) Then -1 else 0 end
RETURN @ResultVar
END

Ahora podemos utilizar la función fnEdad para calcular la edad de una persona, incluso si queremos saber la edad en una fecha especifica se envia como segundo parametro la edad en la que se desea calcular dicha fecha:

select dbo.FnEdad(fechanacimiento,getdate()) as edad from personas

Espero les sea de utilidad!
Saludos!

miércoles, 7 de marzo de 2012

Probando VS 11–PowerPoint Storyboarding

Instalé el Visual Studio 11 y estoy probando y mirando cositas y me encontré con una herramienta bastante interesate.

Resulta que el con la instalación del VS 11 se incluye algo llamado “Powerpoint Storyboarding” que no es otra cosa que una plantilla para Powerpoint con las cosas que uno necesita para hacer facilmente historias de usuario.

Alguna vez ha utilizado Powerpoint para hacer prototipos de aplicaciones y mostrarle a cliente como van a quedar?

Pues con esta herramienta ese proceso se hace mucho mas sencillo.

Algunas pantallas:

Figuras para utilzar en el StoryBoard

image image

Incluye dentro de sus figuaras iconos y figuas de Metro Style y de WP 7

Además tambien permite conectar la presentación Team Foundation:

image 

Y para terminar: una pantalla de reportes para mi cliente montado sobre una tablet:

image

lunes, 3 de octubre de 2011

Repetir encabezado de una tabla en Report viewer (ASP.NET y VB.NET)

Hola,

En un curso que esoty dictando de ASP.NET con VB, me hicieron una pregunta interesante, “¿Como repetir el encabezado de una tabla en cada una de las hojas del reporte?” 

Al agregar una tabla a nuestro reporte, se activa en la parte inferior de este una zona de agrupación de filas y columnas, en esta zona, en la parte superior derecha se encuentra una flecha con un menú contextual.

image 

En esa opción se selecciona “Modo avanzado” (“Avanced mode”), al hacerlo se habilitan unas opciones ocultas que hacen referencia al encabezado de la tabla, tanto en filas como en columnas:

image

 

Cuando se hace clic sobre el grupo (Static) de las filas la venta de propiedades se activa la pripiedad “RepeatOnNewPage”. Cambiamos la propiedad a “True” y listo.

 

image

El resultado:

Página 1:

image

Página 2 y siguientes:

image

jueves, 18 de agosto de 2011

Quien es el dueño de lo que yo desarrollo.

Como desarrolladores de software nos encontramos siempre con este caso: quien es el dueño de lo que hacemos?

Lo que siempre hay que tener en cuenta es bajo que norma se rigen las relaciones entre los individuos, estas normas están reglamentadas en leyes, códigos, decretos y una serie de cosas más que los abogados saben con más detalle.

En el desarrollo de software lo que se crea es una relación entre dos individuos (personas naturales o jurídicas) el desarrollador y el cliente, teniendo en cuenta este aspecto, esta relación se puede dar entre otras teniendo en cuenta los siguientes casos:

1. Caso 1: Al desarrollador lo contrataron como empleado por nómina con todas la prestaciones del caso o como freelance pagado por horas para desarrollar algo específico para la empresa por medio de una orden de prestación de servicos, para desarrollar algo con recursos de la empresa, en las instalaciones de la empresa. En este caso todas las líneas del código desarrollado, las librerías creadas, y el producto, serán propiedad del cliente. En este caso la relación está amparada bajo el código sustantivo del trabajo (contrato laboral) y el código de comercio (contrato de prestación de servicios) algo al respecto en este vínculo: http://www.gerencie.com/contrato-de-servicios.html.

En este caso el desarrollador ganó experiencia, reconocimiento.

2. Caso 2: Una empresa contrata a un desarrollador para que le haga un producto a la medida. El producto fue desarrollado por el desarrollador, en las instalaciones del desarrollador, con herramientas del desarrollador.

En este caso la relación cliente-desarrollador es regido por el código de comercio y por tanto se debe realizar un contrato entre las dos partes donde se especifique claramente quien es dueño de que, en este contrato debe de regir una cláusula de confidencialidad, para que el cliente proteja su negocio, que es lo importante para el cliente.

En este contrato también se debe especificar los derechos patrimoniales, es decir quién puede lucrarse de la comercialización de dicho producto. Sin embargo el derecho de autor o derechos morales son del desarrollador y no se pueden negociar ni ceder, al igual que pasa con las obras de arte.

En el contrato también se puede especificar quien es el dueño del código desarrollado, lo que yo hago, es que en mis contratos especifico que el producto es del cliente. Pero el código es de mi propiedad, es decir, el cliente puede coger su producto, modificarlo, ampliarlo, venderlo a su gusto, pero yo, puedo usar el código utilizado para crear dicho producto en otras aplicaciones, eso sí, sin infringir la cláusula de confidencialidad. Lo que quiere decir, que si yo hice durante el desarrollo del sistema para la empresa A, una librería que optimiza el acceso la base de datos, dicho código lo puedo utilizar en mis posteriores aplicaciones. Lo que no podría hacer, es venderle el producto que le hice parea la empresa A a la empresa B (si así se encuentra especificado en el contrato).

Hay una práctica que yo hago, y así lo específico en mis contratos, es que yo entrego el producto con el código fuente al cliente, sin embargo, aclaro que cualquier modificación que hagan al código anula la garantía. Y créanme que siempre el cliente me ha contratado de nuevo para que le haga yo mismo las mejoras al producto, y si eventualmente el cliente modifica el código y daña la aplicación, adivinen a quien llama y adivinen cuanto cobro yo por arreglar el daño…

3. Caso 3: Yo hice un producto y el cliente me quiere comprar dicho producto, en ese caso, el producto fue desarrollado por mí, en mis instalaciones y con mis recursos. En este caso el cliente adquiere el producto que yo le estoy ofreciendo, y también está regido por el código de comercio en una operación de compra-venta en la cual también hay que hacer un contrato y en este se especifica que la propiedad es mía y que, el cliente puede utilizar dicho producto para su beneficio. Como en el caso por ejemplo de un sistema de nómina, ahí no hay procesos del cliente a proteger ni confidencialidad sobre procedimientos ni nada, pues es una tarea común a muchos clientes, el producto se puede vender sin ninguna restricción de confidencialidad.

4. Caso 4: Ahora aprovechando las nuevas tecnologías, como Windows azure, surge una nueva posibilidad, el software como servicio, en este caso, el cliente compra el acceso al sistema por un tiempo especificado, por una cantidad de transacciones especificadas, etc, etc, etc, más o menos como un alquiler, en este caso también se debe realizar un contrato y es regido por el código de comercio, pero es más parecido a un contrato de arrendamiento, en el cual el cliente hace uso del producto bajo unas condiciones especificadas. Es contrato es lo que normalmente uno chequea como “Acepto” en algunos sitios sin ni siquiera leer lo que allí dice.

En conclusión hay que tener muy claro lo que se especifica en el contrato, pues en caso de un pleito jurídico es el primer documento que se tiene en cuenta para el desempate (es decir definir quién tiene la razón, si el cliente o el desarrollador), y por consiguiente sugiero que se valgan de un abogado para que les ayude a crear una buena minuta contractual que se encargará de regir la relación con sus clientes.