PickFlicks for Windows Phone–One Year Later

SortBy

 

My Windows Phone application has been in the marketplace for one year now and an update has just been published (v2.5).  The new version was necessary as Netflix updated some API URL’s that required code changes, plus I added a new feature allowing users to sort new titles by date, title, or rating.  As usual, the submission and approval process was smooth and quick (4 days).  I thought it would be good to summarize how things have gone the past year.

The app has been downloaded about 1200 times- it’s free and ad supported via the Microsoft PubCenter, but I won’t be retiring on the proceeds.  The grand total earned with ad impressions was under $20!  But, it’s been good learning experience and I actually use the app frequently as it solves a problem I personally had.

What’s amazing is this system has run almost untouched and automatically for the past year using a WCF service on my website and Amazon EC service (a micro Windows instance free for 1 year).  I shut down my EC instance as the free time was going away, but it was only being used to start the WCF service to process the Netflix RSS feed and this is easily done on my own server.  The RSS feed is processed and data made available to users every few hours, and it’s been working without modification for the entire year.  Nice!

Since I don’t have a Windows Phone 8 yet I won’t be converting it to the new version anytime soon…I doubt there are any new features to take advantage of and this version should run fine on V8 devices.  Writing the application was a good experience and not too difficult, so overall the experience has been very pleasant.  If you want to install PickFlicks, here’s the link:

Update 6/15/2014:  Netflix has decided to discontinue their public API, making updates to this app impossible.  This is unfortunate, I don’t think it’s good to create walled gardens and keep out third party developers.  I’ve unpublished the application from the store and hope to try a new mobile project sometime soon.

 

PickFlicks in the Windows Phone Marketplace

 

Lake Merritt, Oakland – Resources For New Residents

 

Lake Merritt

Arial view of the Lake Merritt, Oakland area

Moving to a new area is always a bit scary and involves a lot of work to get settled.  What things are there to do?  What restaurants are nearby?  What sorts of community involvement are available?  I went through this exercise after moving to the Lake Merritt area of Oakland, a very nice area that has lots of diverse things to see and do.  I found it useful to spend time searching Google about my new neighborhood and making link list of useful resources.  If you’re new to any area, I recommend doing the same and if you’re new to this area , here’s my list of resource links I hope are useful.

(P.S.  Lake Merritt is not actually a freshwater lake, it’s a natural salt water tidal lagoon connected to the Oakland / Alameda Estuary)

 

 

Tags: ,

Baltimore Skywalks Being Demolished

One of my favorite posts about the downtown Baltimore skywalks (here) was timely- I recently learned some of these antiquated but cool urban features are being demolished soon.  Here are three articles about this:

Baltimore City to Demolish Skywalks

City Set To Demolish Skywalk

Baltimore Readies for $2M Skywalk Demolition

The city wants to get pedestrians down to retail (read: sell you crap) street level.  While I understand this desire, it sure was nice to float above the busy streets without waiting for lights or dodging the dangerous Baltimore drivers on the street.  I’ll miss them, and glad I took the pictures and documented their existence before they are removed forever.  RIP.

Where’s Waldo?

 

waldo

Just a couple updates on activities the past few months- I relocated from Baltimore, MD to the San Francisco bay area, CA earlier in the year, got a new job as a computer consultant (at Avanade), and settled into the lovely California weather.  I won’t miss those blistering, sweaty Baltimore summers or shoveling snow while freezing my butt off :-)

Unfortunately, the process of selling houses, moving, finding new places to live, and getting a job is still pretty old school and I was constantly amazed how inefficient some of those activities are in today’s computer age.

Things move pretty fast here in Silicon Valley (although I’m actually living in Oakland) and I found the skill level of people and the technology people use beyond what I’m used to.  Time to accelerate the training videos and reading.  Already the .NET 4.0 Microsoft exams are being retired around July 2013 and I’ve found myself scrambling to figure out the best direction to pursue- say focused on web technologies or Windows 8 development,  then there’s all the tablet and mobile platforms to consider.  There are tons of meet-up groups and start-ups in the area and hard to decide on how to allocate precious time.

I’ll post an update on how my Windows Phone 7 app PickFlicks is doing soon.

Thanks for your patience.

PickFlicks is Available

I’m excited to announce the PickFlicks application is now available on the Windows Marketplace!  The approval process took about 3 days and it passed certification the first time.  You can click the link below or use the QR code to see more details on the marketplace page.  It’s free (ad supported) and I’ll update how the marketing proceeds and if any money is made from Microsoft Pubcenter.

There’s also an application support & info companion website HERE

Download For Windows Phone

 

 

PickFlicks QR Code

 

My First Windows Phone Application – PickFlicks

I’ve spent the last few weeks watching Windows Phone training videos (via learndevnow.com) and reading all the great Microsoft articles on WP7 development and finally writing my own application. I started with the idea that there was no convenient place to get a date sorted list of new titles available on Netflix Instant Streaming and add to your queue and decided this would be a useful phone application and a fantastic learning experience. I really believe in having hobby projects you can work on in the background to learn new skills and keep things fun and interesting.

I can’t say it was entirely easy or straightforward to learn Silverlight programming, MVVM patterns, OAuth security, WCF data services, RSS feed parsing, or the quirks of working with third party API’s (Netflix and Rotten Tomato) but I think the end result is simple, easy to use, and useful. It’s been submitted and will hopefully be available in the marketplace soon…I’ll update as things progress. During this process I also moved my website from GoDaddy to WinHost, and am much happier at WinHost. The site runs much faster and has more flexible policies for .NET developers all the while charging about the same prices. Sold!

WCF Services, Shared Hosting and Windows Phone 7

Creating a Microsoft web service can be a straightforward thing, but add in the requirements of deploying a WCF service to a shared hosting provider (such as GoDaddy) and have it available to web applications and to a Windows Phone 7 device can add a few wrinkles.  Most examples I read only explained these concepts on a local system and did not go into the complications of deploying to a real hosting provider.  This post explains how to achieve those goals using Visual Studio 2010, .NET 4.0, WCF, and a Windows Phone 7 Silverlight project.

You’ll need to have Visual Studio 2010 and also have your shared hosting provider configured for .NET 4.0 and running IIS 7.0.  You’ll also have to download and install the Windows Phone 7 toolkit if you’ll be doing the phone portion also.  The hosting provider steps may take them a few hours to complete, so get that going first.  Once set up, go into the providers IIS admin console page and create a new directory and make sure to set the folder as “Application Root” and enable “Anonymous Access”.

 

The Windows Communication Foundation Steps

image

Below, you can see the new services folder in the IIS console:

image

 

Now, onto the coding.  When working with external systems, it’s best to first get things working locally then move one piece at a time up to the web and get that working.  In other words, only change one variable at a time….so that when you get the inevitable configuration error you can assume it’s a hosting issue rather than your own bug and simply Google for solutions.

The first step is to create a WCF service in Visual Studio.  This example service takes an integer and returns an object holding the number’s square, it’s square root, and a request timestamp field.  This slightly more complicated example shows how you can return complex objects via the web service.  Create a new Project using the WCF Service Application (C#) template.  Change the names if desired. My interface “IService1.cs” looks like this:

using System.ServiceModel;

namespace WcfService
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
    [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        string GetSquared(int value);

        [OperationContract]
        myClass.Numbers Process(int value);
    }
}

We’ll add the “myClass.Numbers” class next.  This holds the results of our service.  Add a new class item to the project, the example looks like this:

using System;

namespace myClass
{
    [Serializable]
    public class Numbers
    {
        DateTime requestTime { get; set; }
        public int squared { get; set; }
        public double root{get;set;}

        public Numbers()
        {
            squared = 0;
            root = 0;
        }

        public void ProcessNumber(int value)
        {
            requestTime = System.DateTime.Now;
            squared = value * value;
            root = Math.Sqrt(System.Convert.ToDouble( value));
        }
    }
}

 

The class implementation is simple- one field holds the request time, another the square, and a final one the square root of the supplied value.  Next, add a reference to the new class to your WCF project (right-click on references).

Implement the WCF service with the following code:

 

using myClass;

namespace WcfService
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.
    public class myservice : IService1
    {

        public myClass.Numbers Process(int value)
        {
            myClass.Numbers item = new Numbers();
            item.ProcessNumber(value);
            return item;
        }
    }
}

The service only has one method “Process”- it takes the supplied value, creates a new “Numbers” object, processes the number, and returns the object to the caller.

Now to test your WCF service locally.  Set the WCF project as the startup project (right-click on the item in solution explorer), and also set the “myservice.svc” item as the startup page.  Press F5 (for a debug run) and VS 2010 should open a WCF test client for you:

image

Double click on “Process()”, type in a value in the request Value field, and click the “Invoke” button.  The response results should come back and you can see the request time, square root, and square values.  Great…it’s working so far!

You can also test the standard WSDL screen by right-clicking on the WCF service project and do a “View in Browser”, then in the directory listing choose the “myservice.svc” item.  You should get a page like this:

image

 

Before deploying to your provider, verify the following configuration setting (multipleSiteBindingsEnabled) in the Web.config…it allows your service to work in a shared hosting environment.  You might need additional settings depending on yours:

 

image

Now, let’s deploy this to the shared hosting provider (GoDaddy in this case).  I used FTP access to publish the project to the folder I previously set up as the application folder.  Right click on the WCF project and choose “Publish…”.  A dialog appears where you can enter your path and credentials:

 

image

Once finished, you can test by invoking the URL to the .svc file which will look like: http://techybit.com/programs1/services/myservice.svc (assuming your application folder configured above is services).  You should get the standard WSDL info page.  If an error occurs, check all details above and/or Google the error message.  If you get stuck, you might have to contact your service provider for details on how to configure WCF services for their environment, but these steps worked for me.

At this point, you could create a standard webforms application, add a service reference to the WCF service, and call the interface method.  I tried this, and no unusual steps were needed other than making sure the WCF binding is set to basicHttpBinding.  It’s more interesting to try this with a Windows Phone 7 system and so the web version is left as an extra exercise.

Click here to proceed to Part 2: The Windows Phone 7 Application Steps

 

Emergency Tech Prep

irene

A rare 5.8 earthquake followed by hurricane Irene within one week of each other on the East Coast has made everyone think about emergency preparedness.  I was on the 12th floor of an office building during the earthquake and for a few moments while the building was swaying, shaking, popping, and booming the terrifying thought of a collapse was on everyone’s mind.  Fortunately, a scary but orderly evacuation from the building resulted in everyone being safe.

Unfortunately, while waiting outside while the fire department responded, everyone was trying to call and text their loved ones, with little luck.  I had phones on both the T-Mobile and AT&T networks and was unable to SMS or call on either even after an hour!  However, I was able to get on the internet with my phone and realized that data services were unaffected by the overload. The hurricane is currently blowing by with the power flickering but my phone still has internet connectivity.  Here’s what I learned from these situations:

  • Cell phone service will  likely be unavailable during an emergency…plan on backup measures with your family.

  • Sometimes, SMS messages will work if cell calls don’t but still may not be available or experience lengthy delays.

  • Coordinate internet instant messaging from Yahoo, Skype, or Windows Messenger with your family and switch over to that when voice service isn’t available.  Most smartphones nowadays can use those services.  Configure and practice using those services BEFORE you need them.

  • Strongly consider keeping a regular phone line at home with a old style phone (i.e. one that does not require a charged base station).  Many people are eliminating the old copper line, but it could be critical in a power outage.  A regular phone will still work if the power is out, and you could possibly use the line for emergency internet access (56K dial-up) if needed.   Buy a USB modem, keep the dial up phone number handy, configure, and learn how to use it!

Be safe, and be prepared.

Applications Page Updated

Maintenance mode: After upgrading the site to ASP.NET 4.0 some of my applications no longer worked.  In addition, the geolocation service I use IPInfoDB changed to require an API key and the JSON interface slightly changed.  I’ve updated the applications so they work now, thanks for your patience!

You can find the applications page here or click on the “Applications” tab above.

Digitize with Windows Phone 7, Gmail, and Handyscan

 

hd7I’ve been using an HTC HD7 running Windows Phone 7 for 6 weeks now, and I love it, rarely missing my iPhone.  I discovered a very useful technique to digitize all my important papers and receipts using the phone, an application called Handyscan, and Google Gmail.  This method allows you to scan papers with the phone, send the result as a .PDF via email to Gmail, and auto tag it for easier retrieval later.  Here’s the steps:

  • Set up a rule in Gmail under Options->Filters and set the parameters for any email with the word “Handyscan” in it which has an attachment to apply a label like “ScannedDocs”.
  • Install the Handyscan application ( JDB Pocketware Handyscan ) onto the phone and start it up by clicking the “Scan New Document” button.
  • Take a picture of the document/receipt.  The new Windows Phone 7 has a good camera with LED flash so the results are excellent.
  • The application presents three image optimizations for you to choose from, select the one which looks best to you.
  • Save the picture in Handyscan and name it something logical related to the document…I also add the month & year at the end for future reference.
  • Use the application’s menu (the three dots along the bottom right) and email the picture in Handyscan as a PDF (you could also leave it as a .jpg) to your google email account.
  • When Gmail receives the email it will apply the label, making it easier to find later.

 

I’ve used this method to archive and digitally store lots of documents in the cloud for later retrieval and only takes a minute to complete…give it a try and see if it’s useful to you.

Note:  The application currently costs $3.99 but there is a light version…I’m not associated with the company, just a satisfied user :-)

Tags:

Switch to our mobile site