الأحد، 27 يناير 2013

Planificando las bases de una aplicación Windows Phone

Hace unos días hice el intento de escribir un artículo de un tema que noto entre los asistentes a talleres o cursos que es un vacío común. Espero que lo que escribí les ayude a enteder un poco más.

El ejemplo es una aplicación de la cual existen varios clientes ya, pero a la que quisiera dar mi enfoque personal y seguirla creciendo, :)

En este punto igual se encuentra la serie de MVVM que inicié alguna vez y que espero terminar pronto.


Espero como siempre que sea de utilidad 
Sorey

الأحد، 20 يناير 2013

Boya.ca - Campus Party

Hola a todos,

Bien, empieza otro buen año, esta vez con la invitación a Boya.ca para hablarles un poco sobre Windows Phone 7.5 y 8 y también sobre Windows 8. 

El escenario será el Centro de Convenciones de Tunja en Boyacá, Colombia, y estaré dando 2 charlas introductorias el día Jueves y un taller práctico el día viernes.

CONFERENCIA: Introducción a Windows Phone. Jueves 7 de febrero a las 10am en el escenario de software
CONFERENCIA: Introducción a Windows 8. Viernes 8 de febrero a las 9am en el escenario de software
TALLER: Desarrollo de Aplicaciones Windows Phone. Jueves 7 de febrero a las 5pm en el escenario de hardware

Si son trasmitidos en linea se los haré saber en mi twitter, por lo pronto espero que algunos de los lectores del blog hayan conseguido invitaciones al evento.

Allá nos vemos!

الأربعاء، 16 يناير 2013

Selector de listas largas con el Toolkit de Windows Phone

En algún momento cuando hacemos una aplicación que tiene una larga lista de datos desde la que el usuario debe tomar solo un valor, recordamos el caracteristico panel del letras del menú de aplicaciones de Windows Phone, que se vé más o menos asi:


Imagen de Nick Randolph

Pues bien, este control no está por defecto para Windows Phone, pero si está disponible en NuGet. Instalar en nuestro proyecto es así de facil.

Primero crea tu aplicación y en el menú secundario en la cabecera del proyecto ve al adminsitrador de paquetes de NuGet


En el buscador online, escribe WPToolkit


Instálalo y espera hasta que te muestre la señal de que se encuentra incluido en tu proyecto.


Compilamos el proyecto vacio, si vario y abrimos con Blend para poder añadirlo a nuestra app.


Luego de esto crea tus datos de ejemplo o SampleData


Asigna un nombre y edita la colección que se genera a tu gusto.


En este punto establece la propiedad IsFlatList = True en el LongListSelector y arrastra la collección de datos que se genera hasta el control sobre el TimeLine.


Sale una ventana pequeña que te pedirá la propiedad a la que desean enlazar y cuando empieces a escribir ItemSource aparecerá en el selector.


Vas a notar que no se ven los datos, así que deberás editar cada una de las plantillas asociadas al control, a través de su menú contextual.

Pues bien resulta que al intentar usar el control en tiempo de diseño usando Blend, no funcionaba tan sencillo como casi todo en Windows Phone, busque muchos ejemplos, y veia que usaba una clase adicional para crear los grupos, en otros creaban una clase especializada, muchos fueron los tutoriales que busqué, todos funcionaban, pero no me permitían lo que me gusta, editar en tiempo de diseño. 

Ya que traducir cosas de alguien más no me parece bonito, les comparto lo que encontré. Después de un rato de búsqueda dí con el ejemplo de en Visual Studio Magazine, donde Nick Randolph, lo que hace es realizar varios trucos, como usar un estilo de lista plana (IsFlatList = True) para poder usar SampleData en el control al enlazarlo, que es el punto donde vamos, y además de crear esta clase Group que es obligatoria, pero además usa un Converter para poder mostrar las agrupaciones en tiempo de diseño.

Así que retomemos despacio, sin embargo siempre está la opción que sigas con calma el tutorial de Nick.

La forma de editar cualquiera de las plantillas es dar clic derecho sobre el control, como ven hay muchas plantillas, editaremos algunas, inicialmente la de como se ven los items que es la que nos permitira ver los datos de la lista inicialmente.


Luego estableces el nombre a la plantilla y la ubicas donde prefieras, yo la uso en un archivo de recursos independiente.


Usaré una plantilla sencilla con un TextBlock enlazado en su propiedad Text al campo Nombre que es el único que tengo en mis datos de ejemplo


Si todo va bien, el contexto del control es la colección y podremos seleccionar el Nombre, si no, revisa que ItemSource = {Binding Collection} en el XAML, siempre que no hayas cambiado el nombre de la colección en los datos de ejemplo.


La plantilla debe verse más o menos así, si observas bien, al Grid se añadio una propiedad adicional, toolkit:TiltEffect.IsTiltEnabled="True" con el fin de que cuando presiones el item seleccionado se haga un pequeño efecto que de la sensación visual de que si lo presionas.

Ahora veamos como va nuestra página, revisa que esten todos los elementos antes de volver a tiempo de diseño, el namespace del toolkit se debio añadir al arrastrar el control.

Debes agregar el Converter que Nick sugiere en su post, y colocarlo como un recurso en tu página, revisa el DataContext del LayoutRoot, el ItemsSource del control y nota que aun tenemos el truco de la lista plana.


Si todo va bien al regresar a la vista de diseño puedes ver los datos.


Ahora es necesario empezar a construir los grupos, por eso editamos la plantilla de cabecera de grupo.


Como ves, eres libre de usar esta plantilla como quieras, esta es la que más se asemeja a la lista de aplicaciones, un cuadro con el color de acento, y que se da como ejemplo en el post que estamos siguiendo.

Las únicas cosas a notar son, el TiltEffect nuevamente, y tambien el binding a KeyName. ¿De donde iba a salir ese valor? Pues bien, proviene del Converter propuesto y por supuesto, puedes modificarlo según tus necesidades.

Si vuelves a tiempo de diseño para ver el resultado de esto, notarás que no se ahora ningun dato otra vez, la razón es que como ya estamos usando Grupos a través del conversor, es necesario cambiar a Falso el IsFlatList. En este punto te llevarás una sorpresa más y es que sigues sin ver nada, no se cual es el problema con el control, pero si cierras la ventana de la pantalla (Ojo, no Blend solo la pantalla donde estar trabajando) y guardas los cambios, verás reflejado el cambio.


Luego hay que terminar al menos 2 plantillas más, una sencilla y otra no tanto, ambas están en el tutorial, en especial la segunda tiene algunos bindings importantes para cuando la lista no tiene items


Para finalizar Nick, nos regala la parte final, el código asociado a los eventos que abren y cierran el panel de letras. Recuerda que para crear estos eventos en el code behind puedes hacerlo desde Blend, dando doble click en los campos de texto asociados a cada uno.


Revisen y cambien los nombres para que correspondan con el código que vas a copiar, preferiblemente en Visual Studio por si hace falta referencias a namespaces.

Si han seguido todos los pasos correctamente, el codigo del control debe verse similar a este


Ya puden probar a ver los grupos como se ven,  y eso es todo, ya pueden personalizarlo como gusten, incluso añadir más datos a la plantilla de items y tambien personalizar el resto de las plantillas que hacen falta, teniendo disponible la vista de diseño todo será más sencillo, y por supuesto habrá que llenar la lista en tiempo de ejecución con datos reales..


Realmente me encantó el artículo de Nick espero que lo lean y terminen para que vean el resultado final de Long List Selector o Jumpt List, este es el tutorial más adecuado si son de los que les gusta usar Blend tanto como a mi.

--

Actualización Febrero/2013: Hay una anotación y es que al ir al ultimo grupo con items, este aparece cortado. Se me ocurrió solucionarlo modificando el templace del Group Footer y colocando un contenedor con 20 de alto y transparente, al buscar si alguien más le pasaba en efecto alguien más vio el tema y lo soluciono con un footer mas alto, sin embargo el dice que aun no se soluciona del todo bien y con 20, a mi me pasa igual aunque es minimo el item que queda cortado.

Actualización Marzo 2013: Como era de esperarse, aunque la construcción con vista de diseño se hace mucho mejor, claramente en tiempo de ejecución la utilización de un converter no resulto tan buena idea. Por azar del destino terminé utilizando un móvil de gama baja despues de haber terminado la aplicación, un Nokia 610, la verdad es que el funcionamiento del panel con 200 items, es bastante lento, no quiero imaginar como funciona en un Nokia 505, razón por la cual después de finalizar la implementación transforme el codigo para que se agrupen los items en la primera consulta, por que mi lista solo requiero consultarla una vez, y listo, ya con los items agrupados mejora claramente el desempeño para las máquinas de gamma baja.

--

Éxitos y paciencia con el tutorial, son muchas instrucciones que seguir con cuidado.

Sorey

الخميس، 10 يناير 2013

Aplicando localización a datos autogenerados (Sample Data) en Windows Phone

Hace un tiempo les compartí como crear un menú estático usando datos de ejemplo generados por Blend, algo como se vé aquí de forma sencilla o que pueden ver en ese post que les menciono:


Pues bien, recién en una aplicación tuve la necesidad de que este menú tuviera localización y es la razón por la que en el post anterior les explique como ensamblar lo necesario para tener localización en nuestra aplicación de Windows Phone, y ahora continuaremos el mismo ejercicio para añadir de la forma más sencilla posible esta localización al menú que generamos.

Pues bien, lo primero será buscar el archivo donde están alojados nuestros datos de ejemplo y reemplazar las propiedades que queremos localizar, con los nombres de los recursos asociados.


Como ves la imagen tiene una advertencia muy importante, y es que este archivo se sobre escribe si editamos por el diseñador, por eso te recomendaria hacer respaldos o diseñarlo totalmente y no volver a tocarlo. Otra opción de hecho mucho mejor es que uses el diseñador pensando en la localización.


Igual aunque manejes con cuidado el diseñador, contempla la posibilidad de tener respaldos, no sea que un dia pierdas toda la personalización.

Ahora bien, este cambio solo mostrará en los datos de ejemplo los nombres de los recursos, falta un pequeño cambio más en el get de la propiedad a la que aplicaremos localización.


Debes tener presente que este archivo también se puede llegar a alterar con la manipulación del diseñador, por lo que sigue mi consejo de guardar respaldos, de hecho hacer control de versiones a tu proyecto en general te facilitará la vida.

Para finalizar, si todo va bien, probamos nuestro teléfono o emulador con idioma inglés y veremos nuestro menú o datos de ejemplo correctamente localizados.


Como siempre, espero que esto les resulte de utilidad en alguna de sus aplicaciones. Hasta la próxima.

Sorey

Ouchage – Windows Azure





Just when you thought it was safe to move to the cloud there’s a whole series of high-profile outages, but should you really give up on the cloud?


Christmas and New Year is always a good time to schedule a bit of downtime, nobody really works much and a few hours here or there won’t make much difference. Unfortunately the same isn’t true for unscheduled downtime, as PC management service Soluto and online movie service Netflix found to their cost over this Christmas and New Year.


Netflix app logoNetflix was the first outage victim just as the US was cozying up to their internet TVs to watch some streamed Christmas movies the service failed, and it continued to fail over the Christmas Eve peak viewing time and into Christmas Day. The next victim was Soluto, for 62 hours between Christmas and New Year the service was down, no doubt just as their users were probably taking advantage of a bit of R&R to sort out their computers before the New Year. 

The more observant of you will have noticed the words victim used in both of these examples? But were they really victims or did they seed their own problems by choosing the cloud?

Netflix are a service that couldn’t exist without the cloud - to build the sort of infrastructure they needed to launch would have required tens of millions of dollars and taken years to build – and they also know that to build a successful consumer service you need to inspire confidence. So unlike many businesses Netflix take time out to test and test their systems continually using a team of Chaos Monkeys and Chaos Gorillas to see what happens if their own internal systems, and those of their cloud service provider Amazon Web Services (AWS) were to go wrong. 

Soluto logoSoluto are similar in their use of the cloud but very different when it comes to resilience. Like Netflix Soluto wouldn’t have been able to launch if it wasn’t for the cloud, but unlike Netflix, Soluto took a decision to rely solely on their cloud provider (Microsoft Azure) to look after the service resilience. As the Soluto team explains in their apology email.

We could have obviously spent time building various mechanisms to make sure that whatever happens to Azure, we’ll be able to provide our service (the extreme example would be creating a redundant deployment in Amazon). But that’s not the startup way. Because by doing so, we wouldn’t have created hundreds of features for our users at the same time. And for well over a year, we didn’t experience a severe downtime except for a single case of several hours in February, but once a year that’s acceptable.

So are Netflix victims and Soluto guilty? The answer is probably yes, and no. Soluto were unlucky to see such a catastrophic failure, 62 hours is a long time and no doubt Soluto will be drawing to Microsoft’s attention to their SLA agreement and be spared the bill for this month’s hosting.

What you should take away from these two high profile problems is not a fear of cloud but a template for how to deal with a crisis. If there is a problem then deal with it quickly, communicate it to your customers, and keep them regularly updated. Don’t pretend it will go away and don’t hide it, both Netflix and Soluto handled this outage well and hopefully it won’t tarnish their brands, learn from them.

Lastly, if you are choosing a cloud solution then you should probably take a look at a plan b for 2013.

About the Author:
Marcus Austin works for Firebrand Training as a Technical Author. Marcus has over 25 years’ experience in the technology and business sector. His recent work includes constructing a mobile strategy for the Guardian Media Group, together with writing and editing for magazines and websites including TechRadar, Internet Retailing, IT Perspectives, and Santander Breakthrough.

الأربعاء، 9 يناير 2013

Aplicando localización en Windows Phone

Lo primero que debemos hacer para aplicar locación a nuestra aplicación es crear un archivo de recursos el cual tendrá los textos o imágenes del idioma por defecto.


Luego debes configurar en ese archivo los recursos que maneras, pondré 5 items con nombres genéricos pero recuerda que el nombre además de no llevar espacios debe tener algo que te recuerde que es lo que contiene el recurso. El campo de comentarios es opcional pero podria resultarte de ayuda para recordar por ejemplo donde o con que finalidad usas el recurso.


Luego crea una copia en el proyecto teniendo en cuenta que el nombre debe ser igual al original pero escribiendo el lenguaje y pais, que encuentas en las indicaciones de cultura y lenguaje de MSDN. En mi ejercicio usaré inglés de Estados Unidos, por lo que el nombre del archivo es AppResources.en-US.resx.


Cambia los recursos en el interior, solo el campo valor, debes conservar el campo nombre y recuerda que si añades o modificas los archivos debes mantenerlos sincronizados. Es necesario tener presente los idiomas que se soportan en Windows Phone 7.1 y Windows Phone 8 y las recomendaciones de localización que se dan en la misma publicación.


Por favor recuerda establecer el modificador de acceso de los archivos de recursos como Público.

Ahora debemos crear la clase que nos permitirá acceder a los recursos a través de bindings o enlaces.


Luego agregamos a nuestro App.xaml nuestra clase como recurso


Ahora debemos configurar nuestro proyecto para que acepte el lenguaje asociado al archivo que construimos. Así que entramos a las propiedades del proyecto y lo seleccionamos.

En mi caso tenia el inglés por defecto, pero mi aplicación tendría español por defecto así que debemos entrar a la información del ensamblado a cambiarlo.


Seleccionamos nuestro idioma por defecto y guardamos


Cerramos y volvemos a abrir las propiedades para que se refleje el cambio. Y ahora si agregamos como idiomas soportados tambien el inglés.


Ahora vamos a probar la localización sencilla con el titulo, enlazando la Opcion 1.


 Si lo pruebas en el emulador o en el teléfono, entra a la configuración, cambia el estado y verás que cambia el idioma del nombre de la página. Para que cambie el idioma debes reiniciar el telefono o el emulador desde el botón que se habilita al cambiar el idioma del teléfono.


Espero que les sea útil y hasta la próxima.

Sorey

الثلاثاء، 8 يناير 2013

Can I hack your password in 10 minutes?


By 


2011 saw some of the worst passwords ever recorded! In a previous post, we found that the five worst passwords of that year were:
  1. password
  2. 123456
  3. 12345678
  4. qwerty
  5. abc123
‘password’ is the number one password?

The report was made by Splashdata which gathered data from the millions of stolen passwords posted online by hackers in 2011.

But a new year has passed and with MI5 battling "astonishing" levels of cyber-attacks in the UK industry and Symantec stating in their 2011 report that they recorded thousands of hacking events every second, we have surely learnt from our mistakes, right?

According to the list below, we’re still as lazy as it gets. In the 2012 report released by Splashdata, ‘password’ is still the most popular password…

Here's the full list with comparison to 2011:

1.    password (Unchanged)
2.    123456 (Unchanged)
3.    12345678 (Unchanged)
4.    abc123 (Up 1)
5.    qwerty (Down 1)
6.    monkey (Unchanged)
7.    letmein (Up 1)
8.    dragon (Up 2)
9.    111111 (Up 3)
10.   baseball (Up 1)
11.   iloveyou (Up 2)
12.   trustno1 (Down 3)
13.   1234567 (Down 6)
14.   sunshine (Up 1)
15.   master (Down 1)
16.   123123 (Up 4)
17.   welcome (New)
18.   shadow (Up 1)
19.   ashley (Down 3)
20.   football (Up 5)
21.   jesus (New)
22.   michael (Up 2)
23.   ninja (New)
24.   mustang (New)
25.   password1 (New)

Source: Gizmodo - The 25 most popular passwords of 2012


But are we really that lazy? No and here’s why


As mentioned, this data is gathered from millions of stolen passwords posted online by hackers.

There’s a reason ‘123456’ is on this list!

Many hackers use tools to randomly guess your password, and depending on its length and characters contained, it can take the tool anywhere from 10 minutes to (in my case) 44,530 years to get!


How to make hackers wait 44,530 years to get your password


Simply make your password 9 characters, add a symbol and a number. Below you can see how long it takes to hack your current password.

Length: 6 characters
Lowercase: 10 minutes
+ Uppercase: 10 hours
+ Nos. & Symbols: 18 days

Length: 7 characters
Lowercase: 4 hours
+ Uppercase: 23 days
+ Nos. & Symbols: 4 years

Length: 8 characters
Lowercase: 4 days
+ Uppercase: 3 years
+ Nos. & Symbols: 463 years

Length: 9 characters
Lowercase: 4 months
+ Uppercase: 178 years
+ Nos. & Symbols: 44,530 years


As you can see, it’s obvious why the simple passwords are on the list. It only takes 10 minutes for hackers to get any of them. Hackers aren’t going to wait more than two days to get your ‘real’ password. So relax, the world is not as lazy as it seems… unless for reasons you won’t discuss, you are concerned to see "monkey" so close to the top.

Will 2013 bring a more creative list of passwords? let us know in the comment section below.

Lets at least hope 'password' won't still be at the top.

About the Author:
Julian writes for Firebrand Training on a number of IT related topics. This includes exams, training, certification trends, project management, certification, careers advice and the industry itself. Julian is the companies Digital Marketer.

الاثنين، 7 يناير 2013

Firebrand becomes official Cisco Learning Partner


Now you can get official CCNA training at twice the speed. Your training will be delivered by an approved Cisco instructor, and you'll learn from official Cisco courseware.

This ensures that you'll get the most up-to-date training material available. We offer all Cisco Certifications, from Entry level to Professional.

The Cisco Learning Partner Program is recognised as one of the most successful in the industry. It has established a select group of training entities which offer Cisco's customers top quality instruction in Cisco's products, solutions and architectures.

Now's the time to start the New Year with a CCNA, the number one networking certification and an important stepping stone to other more advanced Cisco certifications. CCNA is a beginning-level certification that aims to provide a solid foundation in Cisco networking. Cisco’s certification programs are about certifying the competence of networking professionals in routing, switching and connectivity. CCNA requires passing two exams - 640-822 and 640-816. As you’ve become qualified in Routing and Switching, or you can set yourself for a Professional-level certification.

Get Exam tips and preparation for your Cisco CCNA course here: http://blog.firebrandtraining.co.uk/2012/11/exam-tips-and-preparation-cisco-ccna.html

Already have a CCNA? Why not get a Cisco CCNP Certification in just five working days (a Firebrand exclusive).

How to Manage Multiple Servers in Windows Server 2012 - Infographic

Cloud computing is now the future, and software is moving into this great technology. Server Manger now has a multi-server view of the environment. You can now see all your servers, check their performance and fix any issues.

Windows Server 2012 allows multiple servers; with remote management, monitoring, installations and roles. I can now make changes to a group of DCHP or DNS servers – regardless of where they are physically.

Learn how to manage multiple servers in Windows Server 2012 with this useful infographic designed by Firebrand. The content is from our Windows Server instructor Ed Baker.

How to Manage Multiple Servers in Windows Server 2012

To see the original article posted by Ed Baker, follow this link: http://www.techradar.com/news/world-of-tech/roundup/how-to-manage-multiple-servers-in-windows-server-2012-1098422

To embed this Infographic copy the text in the box below:



الخميس، 3 يناير 2013

Infografía: Posibilidades con tecnologías Microsoft

Me encantó esta infografía compartida por @lvbernal excelente visión de las posibilidades, para quienes a veces nos preguntamos sobre el futuro. Como dice el poster, elije tu aventura.

Si lo quieres tambien está en versión PDF


Microsoft Technologies - An infographic by the team from Next at Microsoft

What is Lean Six Sigma?

Lean Six Sigma MethodologyMany people ask, what is Six Sigma, and why is it so popular? 

Six Sigma is a management philosophy that has transformed organisations, helping them become more effective and efficient. It was originally developed by Motorola in the U.S.



There are four different levels of Six Sigma - Yellow Belt, Green Belt, Black Belt and Champion:

Yellow Belts are trained in the basics of Lean Six Sigma, and can typically carry out performance improvements within their teams.


Green Belts are trained and certified at a more advanced level in the tools and approach of Lean Six Sigma. They tackle change within their business in addition to their other responsibilities. 

Black Belts are professional change agents, who are fluent in the use of the Lean Six Sigma approach and tools. They deliver major performance or efficiency transformations for a business. They usually are Change Leaders.


Championsare those that sponsor performance improvement projects. They are usually managers of processes and business areas that are trained to pinpoint where transformations / improvements are needed to and help remove barriers to the implementation of changes.

This method has had great success and is one of the most used by all types of organisations. The demand for Six Sigma Green Belt and Black Belt certifications has increased dramatically at Firebrand Training especially with the combination of the Green Belt and Black Belt, which will get you both certifications in just 10 days.


Learn more

George Eckes  gives an effective explanation and introduction of Lean Six Sigma.


He uses an interesting story called three blind men and an elephant. The story goes like this: 

Three blind men touch different parts of the elephant and draw very different conclusions. One touches the tusk and says it’s a spear; the other touches his torso and says it’s a wall, and the third blind man touches the tail and says it’s a snake.


The point of the story is that depending on your perspective and viewpoint, it can mean very different things. Six Sigma is a metric, it’s an improvement methodology, it’s a management philosophy and it creates a common language throughout the whole organisation.

You can watch his introduction to Six Sigma in this two part video:







About the Author:
Sarah writes for Firebrand Training on a number of IT related topics. This includes exams, IT training, , IT certification trends, project management, certification, careers advice and the IT industry itself. Sarah has 11 years of experience in the IT industry.