Visual Studio Talk Show - Making it mobile friendly

Recently, Google sent an email saying that sites that don't render correctly in mobile devices will be ranked lower in their search results.  My good friend Mario Cardinal tested our Visual Studio Talk Show site hosted on Libsyn and it didn't passed Google test.  Since it is just a simple page with content injected by Libsyn, I was able to quickly modify the HTML and I used Bootstrap to make the site responsive and mobile friendly.

Modifying the page was simple, the only challenge was the width of the images that were too large so I switched divs like this.  I'm not sure if this is the best way so please comment if you have a better way to do this. 

<div class="hidden-xs">
	<p align="center"><img src="http://www.guybarrette.com/VSTS_430px.png" /></p>
</div>
<div class="hidden-sm hidden-md hidden-lg">
	<p align="center"><img src="http://www.guybarrette.com/VSTS_200px.png" /></p>
</div>

To make Google stop complaining about the lack of a viewport, I added:

<meta name="viewport" content="width=device-width, initial-scale=1.0">

I also have hidden the right column because it has too much info for a mobile device.  Anyways, mighty Google now approve the site. 

Web documentary: Do Not Track / Traque Interdite

Do Not Track is an interactive Web documentary about privacy and the Web economy.

Share with your friends and family: English version | French Canadian version | French version

iPhone cannot be synced because there is not enough space

I don't often sync my iPhone 5 and when I do, I get this error message from iTunes:

Searching the InterWeb, looks like a common problem with many possible solutions.  The only thing that's working for me is to use an app called Battery Doctor to clean the memory and the cached data.

The Kudu Debug Console, Azure Websites best kept secret

I wrote a guest blog post about the awesome (but secret) Kudu debug console for the Canadian Developer Connection blog.  Read it here

Live Webcast from Montreal: Rob Eisenberg on Aurelia

We have the pleasure of having Rob Eisenberg come to MSDEVMTL in Montreal to speak about Aurelia on Monday April 13, 2015.  However, the event has sold out even after we booked a larger room.  Don't despair, our friends at Radio-Canada Lab has offered to live stream Rob's presentation on YouTube!  So mark your calendar: Monday April 13, 2015 at 7PM EDT.

 

 

Topic: Aurelia

Want to see what the future of web development will be like? Looking for a simple framework or set of libraries that can help you build complex web or cross platform apps? You’re going to want to see this. In this talk we’ll introduce you to Aurelia, a new framework with a rich heritage. You’ll learn about the fundamental features of the framework, such as Dependency Injection, Templating, Databinding and Routing, while we build a simple application. You’ll leave with all the knowledge you need to get started building your own applications with Aurelia.

Rob is a widely recognized UI development expert. He is the creator of Caliburn.Micro and Durandal and a former Angular 2.0 team member. Currently he's building a new tech startup, Durandal Inc., whose first product is the new open source framework Aurelia. 

 

eisenbergeffect.bluespire.com
@EisenbergEffect

YouTube live stream link: www.youtube.com/watch?v=6Pd53umA5wc
Note that the presentation will be in English.

Udemy course: Build a Cloud backend for Android apps

 

I just published an online course called "Easily build a complete Cloud backend for your Android apps" on Udemy.  In this course, Android developers will learn how to build a backend for their Android apps using Android Studio and Node.JS with Microsoft Azure Mobile Services.

Get 50% off the regular price by using this link: guyb.ca/AndroidCloudBackendHalfPrice 

Canadian students get Office for free!

If you're a Canadian student, you can get Office for free.  To check if you're eligible, click here.

Mobile Services Push Notifications: using tags

I lost almost a day figuring out why I couldn't target a specific device using Azure Mobile Services Push Notifications.  I should be easy...You just need to register for notifications by passing a tag, and on the server, you simply specify this tag.  

In Android Studio, I thought of using the Google Cloud Messaging ID as a tag.  Hey!  It's a unique ID so why not use it?  So I used it as the second argument of the register method.  

@Override
    public void onRegistered(Context context,  final String gcmRegistrationId) {
        super.onRegistered(context, gcmRegistrationId);

        new AsyncTask<Void, Void, Void>() {

            protected Void doInBackground(Void... params) {
                try {
                    ToDoActivity.mClient.getPush().register(gcmRegistrationId, new String[]{ gcmRegistrationId } );
                    return null;
                }
                catch(Exception e) {
                    // handle error
                }
                return null;
            }
        }.execute();
    }

On the server side, upon inserting a new record, I used that tag as the first argument of the send method:

request.execute({
        success: function() {
            push.gcm.send(deviceId, pushMessage, {
                success: function(pushResponse) {
                    request.respond();
                    },              
                error: function (pushResponse) {
                    request.respond(500, { error: pushResponse });
                    }
                });
            },
        error: function(err) {
            console.log("request.execute error", err)
            request.respond();
        }
      });

Well, it didn't work and no errors were returned when registering or sending notifications.  After a few hours of trying to get this thing to work, I figured out who was the culprit...it was the GCM ID.  It was simply too long.  Here's an example:

APA91bF5NAO6-VCUelwaM1G1Qm4K9EKDgb5LDf911bCywiDuXHWomvAbCd_XX-y99G5u0JmHcoOpUm4TbcfX4VllBaIBVtkQY2zY3uXFQPh123-tai3J1n_4YrqzB4zfhdw1vFdPWSMAE8Imld1USntIoIyY5M_abc

The trick was to generate my own device ID using a GUID and bingo, it worked!  The problem is that I couldn't find anywhere in the documentation that there is a limit on the numbers of characters for a tag.

Azure App Service announcement

Yesterday, ScottGu announced the release of a new Azure service: App Service.  This new service combines the previously available Azure Websites and Azure Mobile Services and adds new API service and Logic/Workflow service.  These services are grouped under the Azure App Service name and are available in the preview portal.

This is a major announcement because combining the services into one single will result in cost savings for the customers.  Let's say that you currently using Websites and Mobile Services for a your company or client.  You need to pay for two different services.  Since they are now combined in App Service, you only pay for a single service!

This is the official announcement video:

The Microsoft Ninja Cat theme song

Over the weekend, I got inspired by the Ninja Cat and wrote a theme song for the little kitty.

Page List

Month List