الجمعة، 20 ديسمبر 2013

The skills you need to succeed in Big Data


By 


In the New Year, companies will have to make a decision, whether to hire new talent for Big Data or train existing data management talent with new skills. It will be a crucial decision, because Big Data is the next big deal.

Organisations, utilising big data differ from those with traditional data practices, because they:

  • Pay attention to flows as opposed to stocks
  • Rely on data scientists and product and process developers as opposed to data analysts
  • Move analytics from IT into core business and operational functions

How does this manifest itself in business? Companies aim to measure customer sentiment or respond to breaks in train tracks in time to effect pre-emptive change. They need to analyse the data coming in from remote points as it flows in, not after it has been 'stocked' in a master database or migrated to a data warehouse.

They also need the statistical analysis skills to know which questions to ask of this data, and how to ask questions to arrive at new processes and even new products that the business sees commercial potential in. To get there, companies must have people possessing these technical skills as well as a strong business understanding.

In-demand skills to succeed

Nowadays, many businesses struggle to find suitable personnel, who tick all the boxes. Thus, the competition between Big Data professionals gets more intense, because those who really got the skills need to stand out. On a different note, Big Data in businesses doesn't run well without contributions from traditional data competencies; therefore the required skills are quite mixed.

“For instance, 59 per cent of companies responding to a 2012 survey conducted by analyst firm Information Difference said that their big data projects were 'highly linked' to their master data repositories. In many cases, master data (e.g. customer data, product data, and so on) was being used as 'vectors' into big data queries that began the process of probing piles of unstructured and semi-structured big data for clues on how customers react to certain offers, or how products were being accepted in certain markets, and so on.”

“In these cases, it was traditional master data that actually formed the core of what big data queries were constructed from — and so it was no surprise that 67 per cent of respondents in the same survey also said that master data was driving big data, rather than the other way around.” – ZDNet.com

Big Data skills vs. Traditional Skills

Big Data demands new programming and analytic skills, that today's typical data analysts lack. Most of these skills fall under the heading of 'data science'.

Key skills include:
  • Strong Background in Mathematics
  • Strong Background in Statistical Analysis
  • Knowledge of Statistical Programming Languages
  • Familiarity with Analytics Modelling Techniques
  • Knowledge of Data Subject Matter
  • Ability to Experiment with Data 

Big Data also demands a new set of technical skills that aren't readily found today in many enterprise data centres. These skills include data architecting that includes the build-out of databases that span terabytes of data, being able to administer software frameworks like Hadoop, expertise in databases like noSQL, Cassandra or HBase; or in analytics programming languages and facilities like R or Pig.

But if these are some of the hard skills areas, Big Data also demands a set of soft skills that enterprise IT has customarily been short on. These include the ability of people to think across the organisation, to be aware of the ultimate needs of the business, to know which analytics questions to pose to get to those ultimate needs, and to measure and communicate results.

To learn more about the essential skills in Big Data, read the full article on ZDNet.com

About the Author:       
Sarah 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. Sarah has 11 years of experience in the IT industry. 

الخميس، 19 ديسمبر 2013

Christmas scams - four tips to keep your personal information safe


By 


With the festive period approaching, many people are eagerly browsing the web to find some last minute deals on gadgets. Word of advice: if a deal is "too good to be true", it probably isn't.

Kaspersky Lab issued the following warning this week: "As we get ready for the latest round of Christmas-themed status updates, we should also prepare for a barrage of scams on social networks in the coming weeks too".

In the lead to Christmas, more and more gullible Facebook users are becoming targets and victims of scammers. There are hundreds of pages offering free gadgets such as PlayStation 4s, and insanely good deals on new Apple products, in exchange for your personal information.

Despite the fact that the majority of these scam posts rarely look legitimate, many people are falling for them. The below give-away received 646 entries. 



Kaspersky’s four tips to keep your social profile and personal data safe:
  • Don’t give away too much. Sharing is caring, especially at Christmas, but it doesn’t mean you have to share your personal information. Try keeping it safe by not sharing too much. If you lose control of your social media account to a hacker, it could mean more than just having your privacy infringed upon. They can also use your information to potentially breach other accounts, such as online banking services or e-commerce accounts, like Amazon.
  • Don’t click on untrusted links. Scammers use various techniques to get people to give away their Facebook login details. Clicking on an email link entitled "Facebook X-mas Specials", for example, could lead to a fake Facebook portal which invites users to enter their credentials. Since the interface seems identical to the real entry page, users don’t realise what’s happening until it’s too late. Once the victims have entered their details, the hacker has their passwords. You should, therefore, never click links that don’t come from trusted sources. But even if a link has been posted from a friend, still watch out - they may have been hacked.
  • Use two-factor authentication. Social media sites, such as Facebook and Twitter are becoming more and more security-conscious. They both have introduced two-factor authentication, which means the user can give another credential, such as a unique number sent to them via text or an application, when logging in. So even if someone gets hold of your details, they won’t be able to login as they won’t have that extra credential.
  • Get the right security. Different types of malware are circulating the web trying to steal social media passwords, such as the innocent-sounding Pony virus. Others, like Kelihos, are spread across Facebook and attempt to steal other personal data. Outside of taking precautionary measures, such as thinking before clicking on links, users need to invest in a decent anti-virus solution that can deal with the latest and most prevalent threats. A properly configured firewall is also essential. 

About the Author:        
Sarah 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. Sarah has 11 years of experience in the IT industry. 

الأربعاء، 18 ديسمبر 2013

Learn how to code on your smartphone


By 


Earlier this year, Firebrand published an article, entitled “What most schools don’t teach” It discussed the great opportunities offered by learning how to code, at an early age. Well, those opportunities are getting even greater, so there is no time to waste. Especially because in a few years’ time, coding will be a basic requirement for many job roles.

To educate people, interested in coding, Codeacademy just launched a new, interactive way of getting to know the basics. It’s free, designed for all age groups and you can use it on the go. You just need to have an iPhone.

The startup and its ‘start-app’

The mission statement of the “Hour of Code” app is that in just a one-hour lesson, you can learn the basic fundamentals of coding, through a variety of activities and tutorials. 

Codecademy was founded in 2011 by Zach Sims and Ryan Bubinski. In 2012, more than 450,000 users signed up for online courses as part of the company's Code Year initiative. Although headquartered in the United States, Codeacademy has undoubtedly gone global, with now over 60% of its users located outside the US.

Co-founder Zach Sims said: "Codecademy was originally built for someone like me to learn how to code. Now, we want to help provide an easy way for people to get the programming skills they need to learn skills, start businesses, and find new jobs.”

"We're all looking to make learning as interactive and fun as possible, and to continue helping our users change the world. Most other programming instruction companies teach by using videos or text-based approaches. We think the best way to learn how to code is to learn by doing – to actually code."



How you can learn coding fundamentals

The app uses much of the free introduction material available on Codecademy.com to create five new, mobile-focused lessons that explore the foundations of code within 60 minutes. “Hour of Code” breaks down coding fundamentals into small bits and gives lesson-by-lesson guidance, to build the right foundations.

According to Codecademy co-founder Zach Sims, you can “do Codecademy online, on a walk, in transit and use that time to be productive and learn skills instead of playing games”.

In an email conversation with Gigaom’s Lauren Hockenson, Sims also said that this is only the beginning of Codecademy’s mobile ventures. The company will continue to expand the variety of courses in the "Hour of Code" app, and also work on future mobile applications.

If you’re interested in coding, download “Hour of Code” or check out our Microsoft MTA Software Development & .NET Fundamentals training course, where you'll learn the basics in just four days. 

About the Author:       
Sarah 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. Sarah has 11 years of experience in the IT industry. 

الثلاثاء، 17 ديسمبر 2013

Important updates to the Microsoft Partner Program


By 

Microsoft recently announced that it would reschedule the planned changes to its Microsoft Partner Network program, which were revealed at this year’s Worldwide Partner Conference (WPC). According to Julie Bennani, General Manager, Microsoft Partner Network, the reason for the delay is to give partners more time to prepare for the changes.

What’s changing and when?

The announced changes were divided into two program releases, with one happening in February 2014, while the other one in late Q3 of 2014. How that impacts you depends on your level of partnership and business model.

Changes in February 2014


  • New MAPs launch: A new universal version of Microsoft Action Pack subscriptions, leading with cloud, will be available.
  • Offer Cloud IUR: Cloud internal use software rights (IURs) will be offered as a part of our core IUR benefits to both MAPS and Competency partners.
  • Retire Cloud Essentials: As planned, the Cloud Essentials program will be retired as of June 30, 2014. Partners, who wish to continue to receive cloud benefits, should look to enrol in the Microsoft Action Pack subscription or a competency.

Competency-specific changes:

  • New Intelligent Systems Competency: A new Intelligent Systems competency, building on the momentum related to the “Internet of Things” will launch.
  • Digital Advertising: The Digital Marketing competency will be renamed the Digital Advertising competency to better reflect the opportunity and partners this is designed for. This includes some minor changes to requirements.
  • Requirement Updates: Standard updates to requirements (i.e.: exams, assessments and application tests) to reflect the latest products in market.


Coming late Q3 of 2014


  • Remaining Incubation cloud programs will be retiring: Cloud Accelerate, Cloud Deployment and Azure Circle programs will phase out at this time. Microsoft will allow new partners to join these programs until this time to enable them to continue earning cloud accelerator incentives. Bear in mind that new partners, aiming to get Cloud IUR after the February release, will need to earn these rights via MAPs or by earning a competency.  
  • Infrastructure competencies mergingThe existing Server Platform, Management & Virtualization and Identity & Access competencies will merge to become the new “Datacenter” competency as announced at WPC in July. This change is designed to help partners deliver on the Microsoft Cloud OS strategy.  Microsoft will offer new training content to prepare for this in February, giving partners more time to prepare. 
  • Business Intelligence becomes Data AnalyticsThe Business Intelligence competency will change to Data Analytics, signalling the increased emphasis on Big Data scenarios. This is not just a name change as Microsoft will introduce new requirements as well. Training material will be made available during the first half of 2014.
  • Hosting competency retiring, hosting tracks launching: Per hosting partner feedback, the current hosting competency does not effectively support their needs. In response, Microsoft will offer unique hosting tracks within the following core competencies - Datacenter, Messaging, Communications and Data Analytics. This enables Microsoft to recognise hosts more precisely for the solution/service offered - what matters most to customers - while introducing requirements and benefits that are more relevant and tailored – what matters most to these partners.
  • Mobility competency retiring: With nearly all devices becoming “mobile” and with the rapid shift to smartphone, Microsoft will retire the Mobility competency and transition current partners into the Application Development or the Devices and Deployment competency appropriately.

If you have any questions about these updates, feel free to give our Microsoft experts a call at 
0207 907 1120 or email Marion Hodges at mh@firebrandtraining.co.uk

About the Author:       
Sarah 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. Sarah has 11 years of experience in the IT industry. 

الاثنين، 16 ديسمبر 2013

Andre Villas-Boas sacked – we are offering him FIVE courses for ZERO money

Dear Andre,

Sorry to hear of your recent defeat(s) and sacking. Perhaps you might consider a change of career?

The IT industry is full of great opportunities and a committed individual like yourself, should have no trouble finding a job. You just need some training.

We are running the Certified Ethical Hacker course, which only takes five (5) days. Oh sorry, too soon? Take the CompTIA A+ instead, that’s only four days. It’s running soon, so you can quickly complete the cert and be ready by early 2014 for a first line support engineer role.

Salaries are starting from about £30k, which might be a sudden drop for you, but it’s still better than going on the dole.

We look forward to welcoming you on our course!

Kind regards,

Cyber-criminals seek ransomware creation kit


By 


Following the grand-scale damages (12,000 victims per week) caused by Cryptolocker, cyber-criminals are now seeking to mass-produce and customise new forms of ransomware. As we’ve discussed in a previous article, Crytoplocker is an increasingly common Trojan horse malware, which encrypts its victim’s files and then demands a bitcoin payment for the decryption.

According to James Lyne, global head of security research at Sophos, there’s evidence that many cyber-thieves are willing to cash in to get a share from the success of ransomware programs such as Cryptolocker.

Documents have been circulating online looking for developers to write a kit that anybody could use to design their own ransomware. These kits have led to a huge rise in the number of other malicious programs, and by removing the need for any technical skill whatsoever; they are enabling more and more users to commit cyber-crimes for the first time. What’s more, some criminally minded developers even offer technical support for those that get stuck with creating their malicious software.

Because of its high success rates in making victims pay, Cryptolocker is expected to attract even more "investors" and followers, who will try to profit from launching modified versions of the program. "There could be a lot more mainstream cybercriminals looking to go "noisy"," said James Lyne. He also added that "Cryptolocker is very much a deviation from the norm," and “it is a sign of things to come.”

To learn more about the methods and dangers of Cryptolocker, read our previous blog entry and watch the following video: 


About the Author:       
Peter 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.

الأربعاء، 11 ديسمبر 2013

Only one day left to get your 25% discount

What’s your most wanted certification? Is it PRINCE2, CCNAor maybe an MCSD? Treat yourself to them now or choose from 100s of other courses and you’ll get 25% off the RRP. Book now for 2013 or early 2014, and you’ll be even better prepared for the challenges of the New Year.

Here’s what you need to do to get your discounted training: click on the image below or give us a call at 080 80 800 888 and our colleagues will guide you through the process.

Act fast, get the certification you need at the price you want. The offer ends tomorrow (12 December 2013) at 5.00pm. Don’t miss out! 

الثلاثاء، 10 ديسمبر 2013

British Airways, schooling the likes of Disney, Coca Cola and IBM when it comes to building a Google+ following.

B



A Google+ profile is like a gym membership, everyone’s got one, but most don’t use it. This makes building a social following on Google+ notoriously difficult for major brands. So isn’t it just awesome when a select few show the masses exactly how it’s done. That select few are the airline brands.


British Airways are leading the way in a Google + follower phenomenon emerging amongst airlines. Whilst most top 100 global brands including Disney and IBM struggle to gain Google+ followers, leading airline brands British Airways, Delta and Emirates fly ahead.


Let’s take a look at the airline success stories in a little more detail.


The numbers do the talking

For the purpose of this post, I’ve contrasted Google+ followers for five of the top 100 Global Brands according to the Financial Times, with five leading airline companies that are putting them to shame.
Let’s take a look at the numbers as of 09/12/2013:


Google+ following for the Top 100 Global 
Google + Following for airline brands     
Coca Cola – 1,195,542
British Airways – 2,420,092
eBay – 375,047
Delta – 1,839,806
Amazon – 353,654
KLM – 1,900,065

Disney – 236,716
American Airlines – 1,682,864

IBM – 30,057
Emirates – 1,438,385







These figures are astonishing; British Airways currently outperform Coca Cola by a ratio of 2:1.  Take into account Coca Cola’s $90.2 billion valuation with British Airways $3.7 billion valuation and the assumption there is a vast gulf in marketing budget, this contrast begins to take on the biblical quality of David vs. Goliath.


Who cares?

Whilst the average Social Media Manager is furrowing their brow and thinking the airline brands success a minor victory, the SEO savvy amongst you will be nodding knowingly at British Airways and Co.’s success. Who cares? Google, that’s who.

Moz, a leading authority on SEO, have just released their 2013 Search Engine Ranking Factors report in which there is an undeniably strong correlation between followers and +1’s on Google+ with, improved search results in Google.

The knock on effect is quite simple:



More Google+ followers and +1s = Improved Google Search Results = More visits from Google = £££s


Replicating British Airways success story

As the most followed airline brand on Google+, we took a closer look at British Airways to find out just what has made them so successful. After trawling their many websites and scouring the web for marketing promotions, British Airway’s strategy looks like it’s all about doing simple things.

Here’s how we think they did it:


  • Implement Adwords social extensions to boost +1’s
  • Across the main BA site and subdomains, they have added the “follow” button to the footer
  • Sharing lots of great content from their sites BA high life, BA business life, Club BA and other third parties… Mashable etc.
  • Using lots of big images and video content to make the Google+ page visibly appealing
  • Adding the “follow” button into their mailer.
  • Linking their Google+ profile  with their main site so it shows in the Google search results


It’s not all success….

It looks almost too easy, for six months British Airways maintained a linear growth of almost exactly 50,000 followers a week. It does however look like the bubble may have burst, in the last few weeks British Airways have experienced a slowdown to what would now seem a meagre 3500 extra followers a week. And they are not alone, KLM and Emirates have experienced an almost identical plateau with Delta now losing followers!

Image from Social Bakers

Where British Airways dominated on Google+ against the top 100 global brands, the same can’t be said for their Facebook and Twitter profiles. A quick look shows only 1,083,743 Facebook ‘likes’ and 337,838 Twitter followers. Not so impressive when compared against the same top 100 global brands they so thoroughly embarrassed earlier.



     

Facebook
         

Twitter
British Airways
1,083,743
337,838



Coca Cola
76,934,326
2,196,801
Amazon
22,105,578
858,503
eBay
6,880,904
285,022
Disney
45,449,840
3,386,905
IBM
275,962
81,384




This deficit becomes amplified as British Airways seem to be placing greater marketing focus on Twitter and Facebook, compared with their Google+ counterpart. They have run a series of viral campaigns, such as Race the Plane and their Perfect Day competition, which were not run on Google+. Despite this, they haven’t been able to match the top 100 global brands, nor even their following on Google+.


Where it counts

Still, British Airways and the other airline brands have created the success where it counts. Success on Google+, compared with Facebook and Twitter is likely to have far greater benefits with improved search rankings and more traffic.

It’s only a matter of time before all the major brands turn their focus to Google+ whilst aiming for SEO success. Why not join them by checking out our new accelerated 3 day Search Engine Optimisation course.


Think we’ve missed a trick?

Spotted other examples of how the airline brands are succeeding that we’ve failed to highlight, why not comment below?

About the Author:       
Sarah 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. Sarah has 11 years of experience in the IT industry. 

Neverquest – a virus designed to empty your bank accounts


By 
Kaspersky Lab has recently published an article about a new “banking Trojan”, called Neverquest, which is a new Trojan horse virus, capable of recognising hundreds of financial sites, including hundreds of English, German, Italian and Indian banking platforms. This Trojan is particularly dangerous, as it spreads itself via social media, email and file transfer protocols.

How it can drain your accounts

When the infected users try to login to their banking sites the virus reacts by activating itself and stealing user credentials. Neverquest then sends the stolen credentials to its command and control server. After getting the credentials, attackers can use them to remotely log into compromised accounts via virtual network computing (VNC). With this technique, attackers are basically using the victim’s own computer to (potentially) empty their bank accounts, which makes it very hard to distinguish between legitimate transactions and thefts.

When your account is breached...

Once the attacker has complete control over the victim’s account, he can empty it into a different account under his control. However, to make the money more difficult to be traced, attackers often make several transfers to other victims’ accounts, before obtaining the money themselves.

It's not a new thing

Banking Trojans have been around for some time. According to Sergey Golovanov, principal security researcher at Kaspersky Lab, Neverquest is trying fill in some holes in the market:

“After wrapping up several criminal cases associated with the creation and proliferation of malware used to steal bank website data, a few ‘holes’ appeared on the black market. New malicious users are trying to fill these with new technologies and ideas. Neverquest is just one of the threats aiming to take over the leading positions previously held by programs like ZeuS and Carberp.”

To read more about Neverquest, visit the official blog of Kaspersky

About the Author:       
Sarah 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. Sarah has 11 years of experience in the IT industry. 

الأحد، 8 ديسمبر 2013

Implementando el servicio de navegación usando MVVM

Uno de los retos básicos al tratar de hacer una buena arquitectura cross platform consiste en que la navegación en cada plataforma es diferente, si han intentado desarrollar en Windows Phone y Windows 8 van a notarlo facilmente, en Windows Phone por ejemplo el NavigationService es una clase que solo podemos usar a nivel de un proyecto de UI, así que, si recuerdan, nuestras Vistas Modelo en el proyecto que tenemos, están ubicadas en un proyecto diferente, persiguiendo el tema de ser lo más cross platform posible. Ese es un problema, además de que el NavigationService de Windows Phone de nada serviría compartido.

Para dejarles opciones quiero compartirles los enlaces que encontré con propuestas parar el tema, y en el transcurso de este post, explicaré la que elegí y como la incluí en CongresoVisible
  1. Alejandro Campos : Ejemplo de una implementación del patrón MVVM
  2. Sara Silva: Adding Navigation Service
  3. Josue Yeray: Cualquier código autogenerado por App Studio
La solución que elegí a este problema la plantea Nick Randolph, en su artículo Estados, Navegación y Testing en Clases Portables, allí pueden encontrarlo además de explicado detalladamente, libre de toda la arquitectura que estamos trabajando, por que ella nos pone en ciertas situaciones al intentar agregarla. Eso sí lo más importante es entenderla de forma básica, por que en nuestro proyecto quedará bastante dispersa.

Lo que más me gustó de esta solución es su sencillez pero que a la vez deja ser a cada plataforma lo que es sin complicarse demasiado y teniendo una estructura apta para test.

La primera parte que vemos de esta implementación es el Contrato del INavigationService


Es así de sencilla por que de hecho lo único que pretendemos reemplazar es justamente la opción de navegar, igual si tuviesemos otros tipo de necesidades en este lugar las añadiremos posteriormente.

Según nuestra arquitectura, esperaríamos que haya en el proyecto Services y en FakeServices alguien que implemente esta interfaz pero ahí viene la diferencia, como ya lo dijimos al ser un problema puntual de cada plataforma, esta clase se va a implementar en cada plataforma. Sin embargo el FakeService si puede implementarse para los test.


La implementación concreta propuesta para Windows Phone es la siguiente:


Esta es la implementación que cambiará para cada plataforma. Si intentamos entender este código, veremos como la ruta a la que se pretende navega es el nombre de una clase, esa clase serán nuestras vistas modelo, y claramente nuestras páginas no van a llamarse como nuestras vistas modelo, sin embargo, la propuesta de Nick si es hacerlas algo similares. Ella consiste en ubicar las páginas en una carpeta y nombralas según la Vista Modelo que representa su contexto.


Para que esta indicación cobre sentido, debemos continuar las instrucciones, la que sigue consiste en crear un Uri Mapper con una estrategia particular que Nick describe en otro de sus artículos.


Si observamos con detenimiento este UriMapper nos damos cuenta que se está usando una parte del nombre de la VistaModelo para ser mapeada contra una página, así es bastante sencillo de entender, claro está nos va a forzar a tener una Vista Modelo por cada vista a la que queramos navegar, pero eso no está tan mal, es más o menos lo típico. Para que esto termine de encajar debemos cambiar una línea en App.xaml.cs para establecer nuestro UriMapper en plena inicialización.


Ahora bien, si lo han estado notando, acompañando al NavigationService hay una clase más que teniamos pendiente por implementar para nuestras apps y es un Locator. Si recuerdan nuestros Test, en ellos la misma clase de Test inicializaba las vistas modelos, pues bien para teminar la implementación de nuestro ServiceLocator, necesitamos un Locator local que sirva como contexto a nuestras vistas, es aquí donde diferimos de la implementación que hace Nick en el artículo, debido a que nosotros tenemos un manejo de dependencias a través de nuestro ServiceLocator.

Pues bien, nuestro Locator quedaría implementado de la siguiente manera

Si analizamos la implementación vemos que este Locator es el responsable de inicializar las instancias particulares de los servicios y de las vistas modelo. ¿Pero como es que esta clase inicializa todo para la app? ¿En que momento lo hace?

Pues bien, el momento es cuando empieza a ejecutarse la aplicación, ya que si lo pasaron por alto, pueden observar que el Locator está definido como recurso de la aplicación en el App.xaml


Pero además siguiendo el patrón Service Locator, debemos hacer que cada una de nuestras vistas tenga como DataContext a este Locator que es un recurso, así:


Para terminar con nuestra implementación de navegación y si son lo suficientemente curiosos habrán notado que cuando el Locator instancia cada una de las vistas modelo y las registra en el Service Locator, además inicializa su Navigator.

Pues bien cada una de las VistaModelo que requiera usar el navigator ahora implementa la interfaz INavigateViewModel, con la que además hice un ajuste en el proyecto de contratos


Así pues de acuerdo a las capacidades que requieran las interfaces de nuestras vistas modelo tendrán que implementar estas interfaces


Pero entendiendo que las implementaciones concretas de estas son comunes a todas las vistas modelos, dejamos la implementación concreta en BindableBase de la cual tenemos certeza es heredada por todas nuestras vistas modelo


Estoy del desacople es literal como juga con legos. Ahora lo que queriamos ver desde el inicio es la navegación, estando todo listo para que pueda darse, ahora navegar desde nuestras vistas modelo es tan sencillo como esto.


Bastante bonito ¿eh? Para completar nuestra implementación haremos algo que Nick muestra en su post y es crear un proyecto de Test de Windows Phone, esto solo por el mero ejercicio ya que como saben tenemos nuestra estructura de pruebas listas para hacer lo mismo.

Lo primero que debemos hacer es crear un proyecto de Pruebas Unitarias para Windows Phone.


Como van a ver en el test que se implementa, no tiene nada particular como para dejarlo en un Test de este tipo, pero como les mencionaba en ese post, si su arquitectura no está tan segmentada como la mía, bien valdria la pena ver que tienen a la mano este tipo de herramientas.

Nuestro test usando comandos sería:


Incluí este test en nuestro proyecto de test general así:


Para quienes recién empiezan con los test observen como en cada uno de los que tenemos hasta ahora hay dos estrategias diferentes, uno es con un Callback y el otro con un contador, cada uno puede hacerlo como mejor lo entienda, lo importante es hacer los test.

Ese es el fin del ejercicio, espero no haber olvidado poner ningun paso, sin embargo el código está publicado. Estamos a punto de llegar al momento donde nuestra aplicación por fín hace algo y si que hemos trabajado. :)

السبت، 7 ديسمبر 2013

Creando prototipos funcionales usando Blend

Bien, una de mis partes favoritas de hacer apps es montar el diseño, con el fin de que no me vean pasar de cero a cien en la app, les daré una pequeña muestra de como crear sus prototipos funcionales usando como base todo lo que ya tenemos para nuestro proyecto de Congreso Visible.

Lo que veremos aquí aplica a Windows Phone y Windows 8.1, en Windows 8 por alguna razón que desconozco no se encontraba disponible el Sample Data con Blend.

Con Blend tenemos una gran herramienta para hacer prototipos funcionales y ver como quedarán nuestras apps, aun sin tener el código que se ejecutará finalmente, vamos a recordar nuestro diseño


Bien vamos a intentar diseñar en este post la primera de las columnas. Como ven en la estructura de mi proyecto que presento a continuación simplemente tengo un panorama y tres panorama items.


Ahora vamos a crear los datos de ejemplo que nos permitirán crear nuestro diseño. Como ven en las opciones hay varias formas de crear datos de ejempo. Yo tipicamente lo creo a partir de una clase y selecciono la clase principal MainViewModel, sin embargo esto tiene sus implicaciones, como que los datos no sirven para hacer prototipos funcionales por que no se ven en tiempo de ejecución y que cada que agregamos propiedades serviría refrescar el DataSource y enlazarlo de nuevo.

Bueno, para evitarnos esas complicacipnes y lograr lo de tener prototipos funcionales en este ejercicio usaré la opción New Sample Data, que crea basicamente un archivo XAML con datos de ejemplo que se cargan en tiempo de diseño si así lo queremos.


Después de seleccionar la opción New Sample Data, Blend nos pide colocar un nombre. Ya que vamos a crear un Sample Data que tiene la estructura del Main View Model sugiero en nombre que ven en la siguiente imagen.


Después de creado el Sample Data podemos empezar a agregar propiedades, como ven las hay de tres tipos, datos simples, propiedad compleja (para simular una clase) o propiedad colección (para simular una lista)


Los que debemos hacer por tanto es simular la mis estructura que tiene el MainViewModel, esto con el fin de que cuando lo asignemos como contexto de nuestra vista encaje como un guante. Sin embargo en el Sample Data solo pondremos los datos que sean necesarios para generar efectos gráficos, en nuestro ejemplo simplemente para visualizar data.


Miren como la estructura del Data Source coincide exactamente con los nombres de las propiedades de la clase MainViewModel


Para verificar los tipos de datos es bueno que se pasen por el API y así puedan ver que tipos de datos obtendrán y cuales quieren dibujar en su diseño, por ejemplo miren el género, no se confien de los nombres en el API en esta como en otras APIs puede pasar que les toque hacer recomendaciones.


Las propiedades de los Sample Data en Blend pueden establecerse de varios tipos: String, Boolean, Numeric e Image. El string tiene algo particular y es que tiene un formato que nos ofrece varias alternativas para la generación de los datos de ejemplo, como generar nombres, telefonos, direcciones, esto con el ánimo de que los prototipos funcionales queden realistas.


La propiedad imagen nos permite tomar una carpeta donde tengamos imagenes y usarlas como datos de ejemplo, con el mismo objetivo de lo anterior, crear prototipos funcionales realistas.


No olviden que cuando quieren que los datos esten disponibles o no en tiempo de ejecución, pueden activar o desactivar.


Muy bien, después de configurar nuestro Sample Data, arrastramos la colección que configuramos hasta el primer panorama y la soltamos allí. Veremos como automáticamente se crea un ListBox con los datos de ejemplo, que inicialmente no vemos por que tienen la letra blanca.


En este punto debemos editar la plantilla para poder cambiar el color de la letra y ademas acomodar los datos como los queremos ver. No olviden borrar la plantilla que queda en el archivo local XAML por el efecto de haber arrastrado la colección. Dando clic derecho sobre el ListBox editamos la plantilla a través de las siguientes opciones.


Le ponemos un nombre a la plantilla que vamos a crear y observen bien la guardamos en un diccionario de recursos.


Editamos la plantilla colocando los datos que queremos en la posición correspondiente, usando los contenedores de XAML que necesitemos. Observen la jerarquía de esta plantilla.


Al salir de la edición de la plantilla veremos una bonita lista.


Usar un botón en los items de nuestras listas, nos permitirá usar facilmente su propiedad Command para hacer alguna función cuando el usuario haga tap sobre el item. El problema es que tenemos que tener en cuenta lo siguiente:


Como ven la lista provoca que el color de acento del teléfono se vea al presionar el botón y obviamente si como en nuestro caso no estamos trabajando en los estilos por defecto, eso no va a gustarnos mucho. Pues bien, para solucionarlo debemos editar de nuevo la plantilla y esta vez editar el estilo del botón.


No se olviden de asignarle un nombre acorde


Allí tendremos la posibilidad de editar lo que sucede en los Visual States del botón, y de observar el efecto que vimos en el video


Pues bien, seleccionamos el ButtonBackground y ponemos el color que deseamos y el efecto es este:


Genial, simple y fácil. Incluso sin haber hecho nada de los post anteriores este post puede resultar útil a diseñadores. Espero les haya gustado y bueno luego voy a sorprenderlos con el avance del diseño.

Actualización 17 de Febrero
Quería compartirles como se ve el panorama después de un tiempo y lo bonito de trabajar con Blend, y ver nuestros diseños sin dejarlos a la imaginación, más bien observandolos en tiempo de diseño.