User Stories

How to create a RSS feed web tile with notifications for your Microsoft Band

This is a blog post not only for developers, but also for users (I will try to get not to technical in this post).  I managed to buy a Microsoft Band 2 for me here in Europe two weeks ago, and of course I am still exploring all the functionality that it has. A web tile is one of the cool features it supports – with a web tile, you can add your digital footprint to the Microsoft Band. And the best thing: you don’t need to be a developer to create your own! Microsoft provides a web kit that creates the tile for you!

Let’s have a look at the (not so hard to understand) steps it takes to create your own web tile:

The First step is to choose the layout, which also describes the type of the web tile:

Screenshot (82)

After selecting the feed tile template, you need to find the RSS url of your blog or other source site. Paste it in the desired field and hit the next button.

Screenshot (83)

Microsoft’s site now reads your RSS feed and provides you the single fields that come with your feed. When you hover with your mouse over the fields, they’’ll get highlighted. Just drag and drop them into the Microsoft Band preview image on the left hand side.

Screenshot (77)

Now that you have selected the data that should appear on the Microsoft Band, let’s set up the notification for the web tile. This is where it gets a bit tricky, but most feeds should be covered by the following image:

Screenshot (79)

No worries, I am telling you what is done here. The first and second line is the title and the description of the notification. You can put in there whatever you like. The most important part is the condition expression below the Band preview. Sadly the documentation provided by Microsoft is not as detailed for feed tiles as it should. Luckily, I found a post at StackOverflow that explains a little bit more. If you’re a developer, feel free to read the full text. If you are a user: just drag and drop the guid field of the “item” section into the first and also into the last field and set the condition to not equal. If your feed gets a new item, you will get a notification on your band with that. This condition looks if there is any new guid in the items list of your feed – and if so, sends out the notification and shows the badge.

In the last step, we just need to provide some details about the web tile we have created. If you want to have all features, you must provide both images:

Screenshot (80)

If you want to have control on how the image looks like, you should provide the images already flattened into a transparent and white image already. The result could look very creepy otherwise. After that, you have finally created your web tile – congratulations!

Screenshot (81)

Once you have downloaded the web tile, you just need to mail it to yourself or anyone who wants to use it. The other option is to put it on your OneDrive and just share a link to your web tile. To share the link you need to add the link of your online storage to this: “mshealth-webtile://?action=download-manifest&url=”. The web tile I created for my blog is in this case: mshealth-webtile://?action=download-manifest&url=http://1drv.ms/1TDRGSC . This link only works on phones (also Android and iOS). It opens the Microsoft Health app (that needs to be installed for the usage of web tiles, anyways) and asks you to install the web tile:

wp_ss_20160226_0001

Once you have done that, your web tile is ready to go. Once you have a new entry in your RSS feed, the notification should appear on your band. If you want to force the update, just force the Microsoft Health app to sync with your band. After that, you should see the notification and also the badge count. Here is a shot of the one I did for testing:

WP_20160226_17_48_20_Rich_LI

I only began to play around with web tiles, and already was able to create a pretty good result so far. As I will explore them more and more, I will continue to blog about it. In the meantime, I hope this blog post is helpful for some of you. Have fun, everybody!

Posted by msicc in Dev Stories, Microsoft Band, User Stories, Windows Phone, 1 comment

Review of 2015–my first year in Switzerland

2015 was once again a year where a lot happened. My year began with the start of a new job – I am now employed as a full time developer at the Swiss Shareholder register ShareCommService AG. The first days in Switzerland where full of trouble, as I needed to start from scratch in a new country. I found a room in a shared appartment, which was quite ok for me alone. Internet, phone, insurance, pass port – these were the things I had to do in the first weeks besides learning all the new things that you usually do when entering a new company.

timerarmvvmAs part of my new job, it was also heavily demanded that I finally get deeply into MVVM. I always read a lot about that, but avoided it because I wanted to get things done in my private projects. My MVVM learning project was a WPF timer app that supports resuming, multiple timers and more. I learned it in the only right way: without any frameworks/toolkits, which helps a lot to understand what is going on. Needless to say that I am happy to be past this point, as we are using MVVM Light a lot in our LOB applications. LOB (Line-of-Business) applications are different from what I have done before. They are used only internally and directly affect our daily business. I also learned more about SQL and databases, and also SignalR took a big part of my learning curve.

I have the luck to learn from Roman Müller, who has a gigantic amount of experience in programming and also has always some funny programming story to tell from his past. Together with Reto, the second programmer in our team, he teached me a lot – not only programming things, but also better ways to analyze and think about situations where you can end in programming. I am really thankful to be part of this team. Our system administrator Stefan, which I like to refer as a ‘BOFH with the heart on the right place’, makes the team complete.

During the year, I participated also in several Annual General Meetings (AGM) of our customers. This was very helpful for me to understand my new job, as we are responsible for all things regarding the votings on their agenda.

My first private project this year was to rewrite Voices Admin as a universal (Windows 8.1) app. Of course I did it as plain MVVM app, and it helped me a lot to get even deeper into it, and also boosted my learning curve in my daily job. I updated my UserVoice library as well to be fully portable in the meantime. Currently, I am working on the UWP version of UniShare.

voices admin

My family stayed in Germany for several private reasons in the first month of the year. Beginning in August, we moved completely to Switzerland. I am happy that we passed this point as my family is very important to me and is giving me a lot of power. I have to thank my wife and also both of my kids for their understanding, as being a programmer is often very time consuming.

I also discovered a completely new area: the Internet of Things. With the Rasperry Pi2 supporting the Windows 10 IoT Core, I played around with it, learned a few new things about building hardware – and build a prototype for internal testings.

raspi2proto

You see, I had a year full of action, and I tried to make this post as short as possible. I am looking forward to 2016, where my developer story will continue. I did also blog only a few things this year, and I am trying to keep things up and post more frequently next year.

For now, I whish everyone all the best for the end of this year and also for 2016!

Posted by msicc in Dev Stories, User Stories, 0 comments

Review of a geek’s 2014

We are close to the end of this year 2014, time for a little review.

At the beginning of the year, I was mostly busy with working on my UserVoice library that makes it easier for me and other developers to integrate UserVoice into Windows Phone apps. I also launched Voices Admin, the companion app for the library. I will start to rewrite this library in 2015 to make it a true Universal library for Windows, Windows Phone as well as Xamarin (and make it return objects instead of naked JSON strings).

I also had some troubles with my former hoster, which lead to a total domain chaos and finally ended in January, too. Thanks to Azure Websites, the transition should have been without problems.  At Telefónica, I was busy finishing the internal App “Friends & You” for Android and Windows Phone. I learned a lot using Xamarin for the Android version, and even more about corporate rules and requirements. In the beginning of December, I also finished the iOS variant of the app (using Xamarin.Forms) – which is sadly set to be not launched for the moment (mostly because of my departing of Telefónica).

During the year, we also received the Windows Phone 8.1 Developer Preview. It removed the ability to cross post on social networks on Windows Phone. As this was one of my most used features, I decided to solve this problem for myself and started to write my own cross posting solution. As some of my followers recognized this, I continued my efforts to a more public and polished version, the result is UniShare for Windows Phone.

ae4dc8ca-2d86-4e36-bf9b-d7c2985a68b1

Since the first WP8.1 Developer Preview, we also have Cortana. Cortana is an awesome piece of software – if you are willing to use your phone with English and US region settings. I tried the UK version as well as the Italian and German version, but was only satisfied with the US one. I truly hope that the other countries will be on par in 2015.

I also updated my very first app ever (Fishing Knots +) to a Windows Phone 8 only version, leaving the old version for WP7 users. Also my NFC Toolkit received some love (and will receive even more in 2015). On top, I started to work on a Universal library for WordPress, which I will also continue to work on in 2015 to make it even better.

One of my saddest geek moments was when the screen of my Intel developer Ultrabook broke shorty before Christmas. As I need to be able working while on the go, I needed a replacement. I found it in the ASUS TP300L Transformer Flipbook, which is an awesome piece of an Ultrabook. On top, Santa (aka my wife) gifted me an HP Stream 7 tablet, that perfectly fits my needs for a tablet use (reading, surfing, playing some games). And so this part also turned well.

The most significant thing happened in September, when I read about a job as a C# Junior developer in Switzerland. I am truly happy about the fact I got this job (read more on it here), and already learned some new things in WPF. Currently, I am also working on my first WPF application, that is a practicing project for my new job I am going to start next year. Which leads me to the end of this short review.

2014 was a year with ups and downs like every year. I had some trouble in “first world” that we were able to solve as family (and friends), but made some good success in my geek and dev world. I am looking forward to 2015, where I am starting a new chapter in my dev story (with becoming a full time developer). But there are also some nice side projects, like maybe porting some apps to Android as well as the Internet of Things, which I am looking forward to dive in deeper. And of course, like any other MS fan, I am looking forward to the next evolutions of Windows 10!

What are you all looking for? How was your 2014? Feel free to comment below.

158340786

Happy New Year, everyone!

Posted by msicc in Dev Stories, User Stories, 1 comment

Service post–domain chaos finally has an end (msicc.net is back)

 

moving_chaos

 

Some of you might have noticed that a lot of chaos was going on with my domain msicc.net in the last few months.

The reason were some serious issues with my old hoster – that would be a evil long post to describe.

As backup, I used msicc.cloudapp.net, a virtual machine on Azure that I set up to play around and learn more about webservers on Linux. Sadly, I just don’t have enough time to dive deeper into that.

Now that msicc.net is finally working again, this will be the primary address to go to.

I will shut down the server on Azure soon. If you come across links for my blog with msicc.cloudapp.net, just remove the ‘cloudapp.’ part of the link, and you will end on the corresponding blog post on msicc.net.

Also my apps for Windows Phone and Windows 8 are working again (some small updates will come with an update).

Sorry for any inconveniences caused by this.

Posted by msicc in Dev Stories, User Stories, 0 comments

Merry Xmas, everyone!

 

Merry-Christmas

 

This year was an amazing year. We got a lot of new devices, great apps, and a lot of development work was done.

Now, with Xmas around the corner, I want to wish all of you a

Merry Christmas!

After the xmas days, I will start a new series here on my blog, together with my review post of 2013.

Enjoy your family time, and may god bless you all!

Posted by msicc in Dev Stories, User Stories, 0 comments

Nokia promoting his Lumia 925 at German carrier o2

WP_20130709_004

As some of you know, I am working for the German phone carrier o2. Today a Nokia promotion team visited us to show us more of the Lumia awesomeness and gifted us some ice cream.

The promotion is called “Nacht.Sicht.Gerät”, which means “Night. Sight. Device”.

Within the truck Nokia showed off the FatBoy chargers and the Purity wireless headset. They weren’t working with my current Lumia 925 testing device – the promoter said it was due to the fact that my battery was already full. Honestly I think there was no charger in it.

WP_20130709_010

 

There was also the possibility to win something. For that, Nokia put up giant Lumia Buzzer automat, where you had to hit the buzzer as often as the screen said. The price was some Nokia Lumia swag (yes, that’s me on that pic).

 

WP_20130709_009

 

At least Nokia was demonstrating Nokia SmartCam. You could wear a “Man of Steel” costume and be photographed behind in front of this scenery from the movie:

 

WP_20130709_008

 

Sadly I did not find the time to let me photograph there. Funny thing:  there was also some Kryptonite Candy swag (get it?).

Here one final image for all the swag I was able to get:

WP_20130709_015

 

Good to see Nokia is still pushing their Lumia phone(s) and their accessories and helping Windows Phone to get more acceptance.

Posted by msicc in Windows Phone, 0 comments

Game Review: EA Real Racing 2 for Windows Phone

It has been a very long time now that I did my last game review, but Real Racing 2 somehow made me changing this.

wp_ss_20130523_0012

 

Although the game is a Lumia Exclusive and has a relatively high price ($4.99/€4,99), I love racing games. After playing around with the trial version, it was clear that I’ll buy it. It needs 243 MB of your phone storage to work.

So let’s get into the game:

First, you need to choose a car to get into the racing cups and leagues. Therefore you get 25.000 bucks to buy a new car. I started with the Volkswagen Golf GTI, but you are also able to choose a 2010 Volvo C30.

wp_ss_20130523_0007

After buying your first car, you will have no money left for the moment, so you need to start your first race. There are 5 different ways to control the game, I prefer the “Auto acceleration-Tilt to steer”-touch to brake combo.

I switched off the steering and the brake assistant because I want to control the car by myself (or even not, you will see).

wp_ss_20130523_0004

In most races you’ll start from the very last position and need to drive through to position 1. This is a bit tricky for the first races, because the CPU drivers are closing gaps very hard partly, but you will find a way to pass them after you have made some experiences with it. Sometimes it also helps to be as rough as the CPU drivers.

You have 5 different camera angles which you can use during a race:

  • in car
  • behind the car – near
  • behind the car – far
  • front on top of the engine hood
  • front bumper

I often us the front bumper angle, but with Real Racing 2 it is a lot of more fun to use the in car angle. The movements of the driver are realistic, which makes the whole game play more realistic.

Of course, like every good racing game, Real Racing 2 let’s you pimp your car a little bit. There are upgrade packages which you can buy like Racing brake pads or a chip tuning for your engine.

wp_ss_20130523_0009

Besides the career mode, you can also play Quick Race, Time Trial or Multi Player. There is also a Leaderboard, where you can check how good you are compared to your friends.

Cars from the following  constructors are available:

  • BMW
  • Chevrolet
  • Ford
  • Jaguar
  • Lotus
  • McLaren
  • Nissan
  • Volkswagen
  • Volvo

Every constructor has street models as well as special racing models to choose from. Over all, I already love this game, and hardly can put it down.

Here is a short demonstration of the game in action. Thanks to my son Daniele, who was the “camera man” for this video:

If you use my blog reader app, click here to open the browser.

You can download the game here in the Windows Phone Store.

Posted by msicc in Game Reviews, Windows Phone, 0 comments

Are lockscreens outdated?

In one of their latest shows, Vernon and Andrew from the awesome Glance and Go Radio discussed whether or not having a lockscreen still makes sense.
Unlike many people may think, lockscreens were not really meant to protect a device from being accessed by other individuals, but derived from the keypad locks cell phones used to have to avoid accidentally performing a phone call while carrying the device in your pocket (butt dialing).

While you may argue about the actual use on touch devices, I find lockscreens a great way to further personalize my device. Especially with the new features Microsoft introduced with Windows Phone 8.
Meanwhile several dozens of all kinds of lockscreen apps can be found in the Windows Phone store. Some of them offering quite unique features. I’m currently going with Lock Buster, which you can find here.

And even though there are certainly more important parts of the OS which need optimization and improvements, I seriously hope Microsoft hasn’t reached their end of the line with the lockscreen options. I personally would like to be able to add more than just 5 apps to it. I don’t see a single reason why a second array of icons couldn’t be added.
And while these icons at least serve the purpose of letting users know about the amount of new items for the configured apps, I don’t see it necessarily stop there. I’d love to be able to tap the icons to have them reveal more detailed information about what’s awaiting me. These could simply be displayed above the clock. Perhaps with a net slide or fade in effect.
That’s just my personal opinion of course.

What do you think? Would you rather get rid of this ancient feature or keep it?  Share your thoughts in the comments below.

 

Posted by dkp1977 in Microsoft, Windows Phone, 1 comment

Editorial: Samsung Ativ S – a Windows Phone that should not be

I managed to get my hands on a Samsung Ativ S recently and to play around with it a bit. This post is about my experience.

First, of course I am happy about every OEM that releases a Windows Phone Device. But Samsung achieved something I never thought it would happen to me: I wish they would have not released the Ativ S.

Ok, let’s check the device itself:

If you open the package and see the device, you will see immediately that the Ativ S is a revamped device. It looks identical to the Samsung Galaxy S3. Even the lock screen wallpaper is the same. First bad feeling on that device.

WP_20130326_002

First positive thing: the display. The Ativ S uses Samsung’s AMOLED technology, which is really a good piece of technology. Colors are strong, and the display illuminates very well in the dark as in the light.

As it is a Windows Phone, the social networks integration works as you’d expect. Apps are working like they should, no surprise here.

Let’s check the Samsung Zone in the Windows Phone Store. Samsung has only a few apps they provide. They have a diary app, some photo apps, a RSS reader, their on ChatON app and a Music Hub. The biggest part of the Samsung Zone are Dictionary apps.

wp_ss_20130330_0001

I did not test all of the apps, but the apps I tested did not feel spectacular or made me want to use them again.

Even HTC, who also produces also Android devices, has lead me to more enthusiasm for their apps than the Samsung Apps do.

Ok, now let’s take another look at the hardware. The device feels very light-weight in your hand. On the other side, it feels very cheap. They brushed the back cover to look like solid metal cover, but it feels just like plastic.

WP_20130330_009

I had multiple Smartphones in my hands already, even plastic could feel better.

The only advantage I can see is the extreme large battery, which has a very good life time.

Clearly Samsung needed to bring a Windows Phone 8 device to the market as a Microsoft Partner. But they did it in a wrong way.

Using the hardware of one of their Android devices makes sense from the economic view. But they could not expect to be successful with that.

My conclusion: This device will get some attention from Samsung fans, but I doubt it will be one of the top Windows Phones. The only recent news about the Ativ Series (both Windows and Windows Phone) were that Samsung discontinues distribution to certain markets, which is not surprising me after I had the chance to play around with the Ativ S.

Posted by msicc in Windows Phone, 10 comments

How to search the Windows Phone Store within your app

MPSearch

I am currently working on my NFC app, and I want to make it easier for the end user to search for the AppId which you need for the LaunchApp record. So I thought about a possible solution for this, and of course the easiest way is to search the app.

If you only want to search the Windows Phone Store and let show some search results, there is the MarketplaceSearchTask, which you can call as a launcher. The only problem is, you cannot get any values into your app this way. But I found a way to get the results into my app. This post is about how I did it.

The first thing you will need to add to your project is the HTMLAgilitypack. It helps you parsing links from an HTML-based document. Huge thanks to @AWSOMEDEVSIGNER (follow him!), who helped me to get started with it and understand XPath. Xpath is also important for the HAP to work with Windows Phone. You will need to reference to System.Xml.Xpath.dll, which you will find in

%ProgramFiles(x86)%Microsoft SDKsMicrosoft SDKsSilverlightv4.0LibrariesClient or
%ProgramFiles%Microsoft SDKsMicrosoft SDKsSilverlightv4.0LibrariesClient

Ok, if we have this, we can continue in creating the search. Add a TextBox, a Button and a ListBox to your XAML:

            <Grid.RowDefinitions>
                <RowDefinition Height="90"></RowDefinition>
                <RowDefinition Height="90"></RowDefinition>
                <RowDefinition Height="*"></RowDefinition>
            </Grid.RowDefinitions>
            <TextBox x:Name="MPsearchTerm" Height="80" Grid.Row="0"></TextBox>
            <Button x:Name="searchButton" Height="80" Grid.Row="1" Content="search" Click="searchButton_Click_1"></Button>
            <ListBox Grid.Row="2" x:Name="ResultListBox">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <Image Source="{Binding AppLogo}" 
                                   Height="50" 
                                   Width="50" 
                                   Margin="10,0,0,0">
                            </Image>
                            <TextBlock Text="{Binding AppName}"
                                       FontSize="32"
                                       Margin="12,0,0,0" >
                            </TextBlock>

                        </StackPanel>

                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>

After creating this, we will hook up the Click-Event of our Button to create our search. We are going to use the search of windowsphone.com to get all the information we want. You can parse any information that you need like ratings etc., but we focus on AppId, Name of the App and of course the store Logo of each app.

First, we need to create the search Uri. The Uri is country dependent like your phone. This is how we create the Uri:

string currentLanguage = CultureInfo.CurrentCulture.Name;
string searchUri = string.Format("http://www.windowsphone.com/{0}/store/search?q={1}", currentLanguage, MPsearchTerm.Text);

After that, we are using a WebClient to get the HTML-String of  the search. I used the WebClient as I want to make it usable on WP7.x and WP8.

//start WebClient (this way it will work on WP7 & WP8)
WebClient MyMPSearch = new WebClient();
 //Add this header to asure that new results will be downloaded, also if the search term has not changed
// otherwise it would not load again the result string (because of WP cashing)
MyMPSearch.Headers[HttpRequestHeader.IfModifiedSince] = DateTime.Now.ToString();
//Download the String and add new EventHandler once the Download has completed
 MyMPSearch.DownloadStringCompleted += new DownloadStringCompletedEventHandler(MyMPSearch_DownloadStringCompleted);
MyMPSearch.DownloadStringAsync(new Uri(searchUri));

In our DownloadStringCompletedEvent we now are parsing the HTML-String. First thing we need to do is to create a HTML-Document that loads our string:

//HAP needs a HTML-Document as it is based on Linq/Xpath
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(e.Result);

The next step is a bit tricky if you do not know Xpath. You need to got through all the HTML elements to find the one that holds the data you want to parse. In our case it is the class called “medium” within the result table “appList”.

var nodeList = doc.DocumentNode.SelectNodes("//table[@class='appList']/tbody/tr/td[@class='medium']/a");

Note that you have to use ‘ instead of ” for the class names in Xpath. I recommend to open a sample search page in an internet browser and look into the code view of the page to find the right path.

image

Now that we have a NodeList, we can parse the data we want:

foreach(var node in nodeList)
            {
                //get AppId from Attributes
                cutAppID = node.Attributes["data-ov"].Value.Substring(5, 36);

                //get ImageUri for Image Source 
                var ImageMatch = Regex.Match(node.OuterHtml, "src");
                cutAppLogo = node.OuterHtml.Substring(ImageMatch.Index + 5, 92);

                // get AppTitle from node
                //Beginning of the AppTitle String
                var AppTitleMatch = Regex.Match(node.InnerHtml, "alt=");
                var StringToCut = Regex.Replace(node.InnerHtml.Substring(AppTitleMatch.Index),"alt="",string.Empty);
                //End of the AppTitle String
                var searchForApptitleEnd = Regex.Match(StringToCut, "">");
                //FinalAppName - cutting away the rest of the Html String at index of searchForApptitelEnd
                // if we won't do that, it would not display the name correctly
                cutAppName = StringToCut.Remove(searchForApptitleEnd.Index);
           }

As you can see, we need to perform some String operations, but this is the easiest way I got the result I want – within my app. As always I hope this will be helpful for some of you.

You can download full working sample here:  MarketplaceSearch.zip

Happy coding!

Posted by msicc in Dev Stories, Windows Phone, wpdev, 0 comments