Windows 8, Windows Phone 8, and Windows Azure mobile services

Fact

Today’s software architects and engineers want to rapidly develop and deploy cross-platform applications that provide useful, real-time services. The more the applications feel connected, interactive, and social, the better.

The project

Given the youthfulness of the platform, I wanted some experience building what I’ll call a “living app” for the Windows 8 + Windows Phone ecosystem. What follows is a high-level account of what it was like to attempt this.

Why Windows 8 / Windows Phone?

I’m not going to descend to the punditry of discussing a “post PC era” and what it means for Microsoft. However:

I mention the Xbox One because it uses an extremely similar interface to Windows 8 (consider the excellent “app snapping” used on both systems) and I consider it firmly a part of Microsoft’s user-friendly device ecosystem.

Therefore, working with some of the most recent smartphone / desktop / tablet / gaming technology is a plus. And Microsoft insists that it is startlingly easy to develop for Windows 8 + Windows Phone using a shared code base.

Enough said.

What’s this app going to do?!?

Well, OK. What was I going to build? Clearly, I wanted a simple challenge which still utilized some interesting “living” features.

So, I decided to attack the issue of being in the middle of viewing a website or web video and wanting to continue reading or viewing from another device. If you’re familiar with the Windows 8 OS already, let’s ignore the fact that Windows 8 has shared favorites across your personal Windows 8 devices.

Also, I want to make it clear at this point that I didn’t check at all to see if someone else had an app like this already, and I built the app on Windows 8 + Window Phone from scratch.

I wanted the user experience of being able to “throw” a website from a Windows 8 desktop to a Windows 8 tablet, or a Windows 8 phone…any modern Windows device. Therefore, we’d use these “living,” real-time features:

  • sharing (“throwing”) the website from a Windows 8 PC/tablet to others with one click
  • notifying the other devices of the thrown website in real-time and allowing users to respond to the notification with a click
  • displaying the latest list of thrown websites on any modern Windows device

If I could accomplish all three of these tasks easily and with a clean user interface, I’d have succeeded in this particular project.

Building the Windows App

I wanted to build the Windows program in the modern app format that runs directly from the default, live tile-based front screen of Windows 8. Some folks may know this as the “metro” interface, even though Microsoft had to drop that name.

As I said, this is a high-level overview, but I used Visual Studio 2012 in C#/XAML to build the app. I have just a small head-start on some others in this arena because I attended an official Microsoft Windows 8 development camp and successfully built two prior Windows 8 apps.

So, our Windows 8 app goals:

  • very simple, clean UI, “snappable” in Windows 8, usable in any orientation on tablets
  • up-to-date display of shared websites…of course, enabling clicking on any website entry to visit that site
  • instant sharing capabilities from any Internet-connected application
  • send “push” notifications to other devices using the app

RESULT: I built, tested, and “released” the above features to multiple Windows 8 devices in less than 8 hours using the aforementioned development tools and Windows Azure Mobile Services.

Below is one screenshot of the results. Here we’re showing our app filling the left side of the screen, while another app is “snapped” on the right side. Both are of course fully usable:

wist_fs

And here is a screenshot of how easy it is to share from another internet-connected app, Internet Explorer 10, in this case:

wist_share

Building the Windows Phone App

For the Windows Phone app, I again wanted the following:

  • very simple, clean UI
  • up-to-date display of shared websites…of course, allowing a tap of the website entry to open the site
  • receipt of notifications from “thrown” websites

To accomplish this, I again used Visual Studio 2012 in C#/XAML. In this case, all I did was add an additional Windows Phone project to my existing “solution” which contained the Windows 8 app.

I expected the work of sharing the logic between the Windows 8 and Windows Phone app to be much more difficult than it actually was. The surprising majority of my code worked perfectly in the Windows Phone app without changes.

The difficulties I had were in using different “controls” (i.e., user interface presentation tools) to display the list of websites on the phone (named differently and with different behavior than Windows 8). What held me up most was trying to determine how to activate the website after tapping its entry. I personally got stuck in a loop of programming workarounds to get the dynamic data stored in each row of the ListBox control. I found a tutorial on this eventually which was much easier than I had made it.

RESULT: I built, tested, and “released” the above features to a Windows Phone device in less than 3 hours. However, it’s important to note that it took me only 40 minutes or so to design the Windows Phone app, and migrate my code from Windows 8 to Windows Phone, allowing for changes in naming conventions. That effort was far more minimal than expected. The remaining 2+ hours was spent on my own hacky workarounds and research with the issue I described above.

I apologize for the quality of the Windows Phone pictures (an issue with my on-device screenshot generator meant I had to take these by hand with a less-than-adequate camera). But, below is one screenshot of the results:

picture012

And here is a screenshot of the Windows Phone “live tile” notification of a new website on the list (note the “The New Xbox” on the w! tile):

picture011

 

Windows Azure Mobile Services

As I already mentioned, I used Windows Azure Mobile Services during the development process. Although I’ve used Azure before, this was my first experience with the mobile-specific “cloud back-end” which it offers.

It’s almost miraculous how easy it was for me to use Azure Mobile Services to:

  • implement cloud storage (like my app’s list of websites)
  • implement push notifications (the notification to other modern Windows devices of the “thrown” website)

I’d say it took me 15 minutes to get the cloud database set up and displaying results in my Windows 8 app and Windows Phone app with no hitches whatsoever.

It took maybe 20 minutes to get the push notifications working on Windows 8 and Windows Phone.

I’ve got to tell you: to me, that’s phenomenally efficient. After this project, I wholeheartedly recommend Azure Mobile Services.

Well, is this app released to the world?

Good question.

I really debated the type of authentication and safety needs of maintaining a real-time list of websites that folks are “throwing” from all their devices. Should it be similar to Stumbleupon or Twitter, acknowledging that anyone who downloads the app knows they’re viewing potentially NSFW/dangerous/phishing websites? Should it only allow folks to “throw” websites to their own personal devices? Their friends’ devices? Should there be a password-protected option?

Honestly, I did actually scope the app a bit for some of these concerns. For example, the data model allows for password-protected confirmation before viewing websites protected by the initiating user. But I acknowledged that it needs a lot more thought, and I didn’t want to go with an authenticated model out of the box.

Therefore, though I have successfully released prior apps to the world, I decided not to even attempt releasing this app with such an open model. Regardless of whether Microsoft’s Windows Store and Windows Phone Marketplace would have accepted it.

Conclusions

Windows Azure Mobile Services was the biggest revelation of this project. The simplicity of using services themselves, combined with the documentation and tutorials, make Azure an undeniably valuable asset.

The second revelation was the ease of re-designing specifically for Windows Phone, when the visual concept — admittedly very basic in my case! — was created for desktop/tablet screens. And the migration of logic was the biggest issue, but still far less of a challenge than I expected.

I’m very pleased that I was able to implement a Windows 8 + Windows Phone app, on desktops/laptops/tablets/smartphones, with all the “living” features I envisioned at the start of the project, in less than 11 hours. I walked away very pleased. And I get a lot of use out of my new app already on all my devices.

Zoe: Flash conversions to HTML5+CSS

This could be very big.

Web developers know that Flash support is diminishing. This is thanks to devices by Apple & Microsoft (at least)** that don’t offer Flash support, and, more important, due to Adobe’s own elimination of support for Flash on mobile devices.

I’ve heard of a few tools so far to do interactive graphical Rapid Application Development (RAD) in HTML5 instead of Flash. However, this one caught my attention.

Zoe is a stand-alone application which significantly helps in converting existing SWF (“Shockwave” Flash) animations to Canvas+CSS. In other words, the work that’s already been done for some Flash applications can be translated to a standardized methdology available on an ever-increasing set of browsers. (Examples: Internet Explorer 10, Chrome.)

Zoe is even sponsored by Adobe itself (as is Edge, another HTML5 development tool which you should also check out).

As we get further and further from Flash viability on anything but current laptops/desktops, I believe there will even be a significant market for developers offering to convert existing websites’ Flash content to HTML5. Perhaps they will find Zoe and such tools useful.

As a real world example, it appears that Atari may have used Zoe to help with converting games to HTML5 for their new touch arcade. Zoe and some other tools are also mentioned if you explore the Developers section at that link.

** Apple’s decisions about lack of support for Flash could take up an entire article.

As for Microsoft, its new Windows 8 operating system is extremely tablet-friendly, with at least a dozen tablets by various manufacturers slated to run on this OS by November. And the IE10 “touch” browser that comes native with Windows 8 will offer no Flash support at all (but full HTML5 support). While there is a browser included on most of these tablets that will still support Flash, I believe Adobe’s own actions prove that Flash is heading into the sunset, however slowly.

 

Stuhrling Prestige Tradition Unboxing

The Stuhrling Prestige Tradition is a timepiece by watchmaker Sturhling Original. It features a 22-jewel Swiss-made automatic movement. When ordering, I chose the silver dial with the blue hands. The leather strap matches the color of the watch hands.

The wristwatch comes in a special carbon-fiber-look box. Incidentally, the Stuhrling Prestige logo is different than the typical Stuhrling wristwatch logo, having the implication of an “SP” instead of the single letter S.

Stuhrling Prestige Tradition Unboxing - 1

Inside the box, we have the warranty, Stuhrling Prestige cleaning cloth, user manual, and other documentation regarding the traditions of Swiss watchmaking. There is a special Stuhrling Prestige quality seal, different than the typical orange seal. The watch itself is covered with a typical warning about not using quick-set date between certain times. The cushion on which the watch sits is plush, as is the material lining the box.

 

When removed from its protective cover, the wristwatch is stunning in its simple beauty. The hands are a spectacular, sparkling blue which I can only describe as azure mixed with cobalt.

 

 

The back of the wristwatch, like many automatics, is transparent, so that the beauty and functionality of the movement can be explored. Note the “Swiss Made” stamp and the Stuhrling Prestige logo on the rotor.

 

 

One of the reasons I selected the Stuhrling Prestige Tradition was the perfect height of the watch case, as well as the design on the side of the case. I felt these features made the watch very attractive, as I am not a fan of “ultra-slim” watches. Yet, the size and design of the timepiece case attracts the right amount of attention.

 

And finally, we can put the timepiece where it belongs…on the wrist. Ahhhh!

 

More information on Stuhrling Prestige can be obtained here, here, and here.

The timepiece can be purchased at many fine retailers, including online at Amazon.com, here.

(As an aside, I simply love watches. I do not work or consult for Stuhrling or Amazon in any capacity, and received no promotional consideration for this article.)

 

Governor Deal: stop obstruction, and implement the Affordable Care Act

The following is a letter which I wrote on July 1st, and sent by mail directly to Georgia’s governor, Nathan Deal. I am publishing it online to go hand-in-hand with my recent petition about the same issue. It is slightly edited, in addition to including linked citations.

 

I hope that Democrats and proud centrist Georgians will join me in this appeal. Please co-sign my petition, write your own letters to the governor, and write to your local newspaper. – JII

Governor Nathan Deal

The Office of the Governor

206 Washington St

Suite 203, State Capitol

Atlanta GA 30334

 

Governor Deal:

Please allow me an introduction as direct background for my important letter. My ancestor, Henry Irby, was responsible for the establishment of Irbyville, now Buckhead. Several generations of my family have lived in the neighborhood inside the Atlanta perimeter where I now live. In addition, I travel all over the state frequently, and also extol its numerous virtues to non-Georgians. In short: it would be difficult to find someone who is a prouder resident inside the Atlanta perimeter, and a prouder Georgian.

Unfortunately, I write you today with the most profound disappointment I’ve had in a governor’s leadership in years. I find your stated opposition to the state-level implementation of the Patient Protection and Affordable Care Act (PPACA) to be unconscionable.

As you well know, we live in a region rife with opposition for the PPACA. Florida’s governor Rick Scott has yesterday stated he has no intention of complying with the Act. Louisiana’s governor Bobby Jindal earlier said the same.

Florida and Louisiana can act as they wish. I expect better from the state of Georgia, and I would love for these expectations to be secure. Unfortunately, I am now exposed to your own anti-progress rhetoric, including the following:

Congress must now work steadfastly on repealing this law and replacing it with reforms that help taxpayers instead of hurt them.

We are probably just going to be in a holding pattern until such time as we see what the events of November bring us.

Governor, you and I both know that the provisions our state must implement are actually matters of simple common sense. First, we must expand an existing program, Medicaid, to cover even more of our state’s poorest citizens. Second, we must implement a healthcare exchange, an absolutely outstanding idea for helping Georgia citizens purchase private insurance in a competitive, free-market way. I should note that this was a good idea under Republican governor Mitt Romney in Massachusetts, and it’s still a good idea now.

I am a centrist who is willing to accept good ideas from either party. What I will not tolerate is lies about an Act that does have “reforms that help taxpayers.” These falsehoods are abhorrent when a minimum of 600,000 of my fellow Georgians would be positively impacted by the Act. Your statements and actions directly stating otherwise do not constitute leadership. Neither does inaction as an effort to appeal to the radical right wing of your party. This is the basest partisan trash, and it should have no place on the agenda of the governor of one of the greatest states in the Union.

Governor, I plead with you to change course immediately. Show some initiative that will reflect positively on Georgia. Stop behavior which keeps citizens in the dark and works directly against their own best interests. As this state’s highest official, you should be ashamed to embrace that behavior. Instead, imagine the positive outcome when our neighbors and other states watch Georgia successfully implement the PPACA reforms.

My wife and I have always envisioned having our home in Georgia for the rest of our lives. I must tell you without hyperbole, governor Deal, that I am beginning to wonder whether this is really the place for centrists like us. Do you want to drive moderates away from Georgia and the south, to states that do implement the best reforms in the PPACA model?

I assure you that adopting the methods of governors Jindal and Scott will lead to a weakened South. Do not let this happen to Georgia. At one time, Atlanta was unarguably the “capitol of the New South.” You can now be the leader who ensures that our state is the gateway to a truly New South.

Providing privacy for criminals

An interesting article came across my radar this morning. It details what happens when the FBI comes to claim a server because of crimes committed using the server’s capability, and you should read it.

However, I’d like to focus on the especially fascinating and contradictory tension regarding providing privacy for cybercrime:

Using Mixmaster, email users can achieve nearly undefeatable anonymity — multiple servers pass messages from one to the other, each time stripping out header information and replacing it with false data, making it nearly impossible for investigators to “trace” the message to the original sender.

“If you had asked me before this happened if one of our members ran an anonymous remailer, I would have said, ‘probably,’ ” said McClelland. “That’s exactly the kind of thing we want to support and we want to protect.”

When correctly configured, anonymous remailers leave no trace at all. There are no log files to check, no other server “fingerprints.”

“The fact that the FBI’s investigation led them to an anonymous remailer should have been the end of the story….” wrote Hanni Fakhoury.

“These people making the threats, these are jerks, nobody wants to protect them,” Lopez said.

There is a hacktivist notion that everything by a single individual should be completely private, and everything by the government should be completely public. It’s an interesting notion, and most of the people who espouse it mean well, but it can be severely misguided.

Terroristic threats are a crime. Bomb threats against a university are not a matter to shrug off lightly. One simply has to examine the rash of recent shooting deaths by lunatics on university campuses to know that student safety is a serious consideration.

Make no mistake: McClelland’s organization is happy that they’re able to provide the ability for anonymous remailing, leaving no trace at all. Fakhoury believes that because the criminal who emailed the bomb threats used an anonymous remailer, that should have been “the end of the story.”

And yet they say “nobody wants to protect [the criminals].” That’s simply a fallacy. One only has to read the enablers’ own words.

As with all privacy issues, from anonymous hate speech by a single individual, to WikiLeaks, this ends up being a debate about the needs of the people as a whole. The argument here is whether the need of the student body of the University of Pittsburgh for safety is more important than the need for privacy of the individual doing the threatening.

Though Lopez protests, he is doing his best before, during, and after the crime to ensure the criminal’s privacy. Now, I’m not here to make a judgment as to whether that’s right or wrong. But I’m also not here to attack the FBI for doing what they believe is necessary to find the criminals.

Not Proud of AJC Coverage of Georgia’s Congressional Freshmen

As a thirty year reader of the Journal and Constitution, I’m not sure I’ve ever read such a one-sided piece as Monday’s front page article, “Georgia’s Freshmen Proud of Budget Cuts.” Essentially, this is an upbeat, positive character profile of the GOP activists who were responsible for the absolute lowest Congressional approval ratings of all time. Where in the article were the balanced voices of any Republican or Democratic Congresspeople who object to the annihilative tactics of these GOP freshmen radicals? Instead, the interviewees are uncritically cited as discussing “come-to-Jesus” meetings and “looking…to the Founding Fathers.” Rather than printing this with a straight face, a balanced Christmas-time article might have made mention of Jesus’ actual teachings on the same promotion of the general welfare that is the foundation our own government. The Founding Fathers designed the government of the United State of America not as a for-profit corporation, but an institution to provide the broad services mentioned in the same Constitution the GOP Freshmen purport to embrace. That’s why the Federal government has carried public debt since its very founding.

This subscriber thinks that feel-good character pieces are fine, but belong in the Metro section or the Living section, not fallaciously passed off as hard news on the front page of the AJC.

On Facebook and Internet citizenry

This morning I read a post on SeekingAlpha. The author accused unhappy Fecebook users and competitors of “whining,” as Facebook “schooled the Internet.” The author is correct that complaints abound, as do comparisons to AOL’s previous dominance in being an Internet gateway.

Thr problem is, Facebook is worse than AOL ever was, and it is not a “walled garden.” In a few short years, due to Facebook’s impressive aggressiveness and other developers’ laziness, there have become two classes of Internet users:

- users of the Internet who try to consume its services
- Facebook Internet CITIZENS

The reason I say that is that more and more sites have resorted to becoming de facto Facebook add-ons. Some big services only accept Facebook logons as sign-ups, period. Many services only accept Facebook comments. Many services haven’t implemented their own internal ratings systems, in favor of Facebook Likes.

You may be okay with a world where Facebook is the passport to the Internet, but I am not. That’s not to knock its impressive zeal for imperialism, new tools, and ease of convincing developers to accept its API and platform as their own base. It’s just to point out the facts.

I represent a startup that is working on two major web 3.0 projects. Hell, web 3.0 will be easier if one company controls the majority of the information and sign-ons. But just let it be said that I am a part of the group warning that Facebook will become more than a social monopoly. It may become an Internet services monopoly also.

Follow

Get every new post delivered to your Inbox.

Join 1,216 other followers

%d bloggers like this: