Tim Murphy's .NET Software Architecture Blog

March 2013 Entries

Beginning PHP On Windows 8

PHP

It is always interesting to find out what technology I will have to work with next.  One of the latest that I’ve had to learn is PHP and since I am running Windows 8 I had to get it working in that environment.  At first I tried just downloading the Apache server files and running that, but then you have to deal with possible collisions between Apache and IIS.  In the end I found out that it is easier to setup PHP for IIS.

The first thing you need to make sure that the IIS feature installed.  Then you install WinCache via the Web Platform Installer.  You will find this by searching for PHP.  This seems to install all of the PHP components but you may need to also install the PHP itself (I was only able to find the Express version in the Web Platform Installer).

image

Fortunately when it comes to PHP the concepts are familiar.  Basically it is the same style of page generation as Classic ASP with a syntax akin to C or Javascript.  The biggest difference that I found is that variables are simply denoted by using a $ and you don’t need to use a format method to insert variables into output.  The code below shows examples of these usages.

<?php
 
$companyname = "PSC Group";
echo "$companyname PHP Test <br/>";
 
?>

You can get a quick reference for PHP here.  With these couple of pieces of information you should be able to quickly get started developing PHP sites using your Windows 8 environment.

March 2013 Chicago IT Architects Group Wrap-up

The group got to know their neighbors a lot better this month with only half the normal room size and a pretty good turn out.  Given that, I would really like to say thank you to everyone who came out on this cold evening before the first day of spring.

Eric D. Boyd gave a great interactive presentation on a variety of aspects around Windows Azure.  With his experience he was machine-gunned with questions and handled it like a champ.  Everyone was so interested in the subject that people stayed until they had to run for their trains.  We really appreciate Eric making the trip and enlightening us on Azure.

We are working on next month’s presentation.  As usual we are always looking for presenters.  Feel free to contact me through this blog if you are interested or know anyone we should talk to.

See you all next month. Be sure to follow our Meetup Group.

Handling Sometimes-On Connectivity In Windows Phone Apps

There are a lot of conditions that you have to deal with when creating mobile applications that do not present themselves in other types of development.  The largest elephant in the room is the unpredictable nature of network connectivity.  This doesn’t just affect if you can send a message across the internet but also your location services.  And strangely enough there are times where you may have one and not the other because of the type of network you are currently accessing.

The first connection you need to address is to the internet.  Unfortunately checking for an internet connection has a significant performance cost so you want to make sure that you aren’t doing this too often.  In order to help with this problem you can subscribe to change notifications.

   1: NetworkChange.NetworkAddressChanged += new NetworkAddressChangedEventHandler(NetworkChange_NetworkAddressChanged);

This will give you a chance to react when either the type of network changes or you no longer have a network connection.  The approach that I have taken up to this point to actually determine if a connection exists directly is to check the NetworkInterfaceType as shown below.

   1: if(Microsoft.Phone.Net.NetworkInformation.NetworkInterface.NetworkInterfaceType != Microsoft.Phone.Net.NetworkInformation.NetworkInterfaceType.None)
As I mentioned earlier the second major source of connectivity issues is determining your location.  The usual way of getting the geographic location is to create a GeoCoordinateWatcher and handle the change event.  The problem is that if there isn’t a connection to a GPS service then this event is never fired.  If you are relying on this event then your app will look like it went to sleep.  In order to address this issue use the TryStart method on the GeoCoordinateWatcher object so that you can detect when the device is unable to get a response from the location service within the time limit you set.
   1: !watcher.TryStart(false, new TimeSpan(0, 0, 5))

Not having a network connection means that you need other ways to allow the user to continue working offline if possible.  This means local data stores of one type or another tied into the application life cycle.  Whether you decide to use isolated storage, a local database or the PhoneApplicationService will depend on your situation, but this is the next consideration that you will have to make.  The only way you can get around these issues if your application does not need to maintain state.  Hopefully these couple of pointers will make your development a little easier.

Review: Feed Me for Windows Phone

feed me

Prior to the announcement that Google will be shutting down Google Reader I was using Feed Reader to keep up with a number of blogs.  The announcement of course sent me scrambling like everyone else.  The additional aspect of the problem is whether the mobile reader solution you are currently using offers more options than just Google Reader.  In my case it didn’t.  I ended up with Feed Me since it integrates with Newsblur.

The Feed Me’s interface is definitely functional with the ability to share posts and save them to read later services like Instapaper.  There were a couple of features that had been in Feed Reader that I found myself wishing for.  The first is that capability to have some sort of context menu directly on the unread post list.  This is because many times I am just doing a quick scan of the new posts and will just mark them as read later in Instapaper.  The other feature involves audible reading of posts.  While Feed Me offers the ability to launch out to Soundgecko to play a single post, Feed Reader had this functionality in the app and would sequentially read your entire list of posts.  The only other improvement that I would like to see is it being showing more graphics from the original post.

Overall I find the application capable and will probably be my main blog post reader for a while.  If they make a few improvements I can easily see them becoming a permanent fixture on my Lumia.

Curating Employee Blogs

I’m not sure if it is ego or a desire to inform our community, but many of us try to post to blogs on a regular basis.  Many companies choose to have their own blog server to host content from their employees.  But this doesn’t always work, especially when your employees already have a community presence before joining the team.  Recently our company has been trying to conquer this very issue.

The first question is “what are your goals”.  For us it is to aggregate blog postings/articles that could be beneficial to both our clients and our employees in a branded and moderate fashion.  We wanted to be able add new entries from RSS feeds to a queue in an automated process and then categorize them and bless them for publication.  Finally the entries should be available for search and review for a definable amount of time from hours to forever.  This seems like a fairly simple set of requirements.  Surprisingly there aren’t a host of companies selling that achieve all of these requirements. 

So what options are available?  Let’s put them into groups by functionality.

Newsletters

This is the largest group of solutions available.  One of the most popular examples is paper.li.  In general they can accept most social media sources, not just blogs.  They also automatically pull and categorize content.  They can have very attractive formatting, but they don’t necessarily attribute content to the original creator especially when you have people retweeting regularly.

Manual Aggregators

These curation solutions give a significant amount of control with the trade off there is a lot of manual work for the curator.  You have to copy and paste URLs and manually assign categories.  An example of this is the open source solution from IBM that is called Collaboration Today.  You will see that tools like this will have the ability to set timeframes for distribution and have approval processes.  They fit all the requirements except the ability to automatically pull and categorize content.

Custom Solutions

As with anything, if you throw enough money, time and resources at the problem you can get exactly what you want.  This is where custom solutions fall.  You can have all the features you are looking for, but you may end up paying considerably more.  In this case the concepts and features are actually pretty simple, so a couple of weeks of time from a good developer could definitely get you a complete solution.

Summary

To make a decision you need to weigh the factors of features, staff impact and cost.  Each of the solution categories can work for you depending on your goals.  Take a number of them for a spin and see how they work.  Check if they can integrate with your current corporate site and branding.  In the end a test drive is really the only way to see if you can live with an off the shelf product or need to go the custom route.

Why Twitter Needs Third Party Apps

Yesterday Twitter released their Windows 8 native application.  This is just a short time after releasing an update for Windows Phone.  It took my all of two minutes determine that these applications are unusable for the way I use Twitter and their web site doesn’t cut it either.

Now I admit that my usage may not be the same as the majority of Twitter subscribers, but I don’t think it is entirely outside the norm either.  I use multiple accounts because of user groups that I work with and employer accounts.  I also follow a number of lists and searches to keep up with the technologies that I work with on a daily basis.  So far the only desktop client that fits my needs is Tweetdeck which now it appears is on the way out.

image

The Windows Phone mobile client from Twitter is also greatly lacking.  Media integration and save for later features like Instapaper are weak or non-existent.  The app is so disappointing that it is barely useful.

I realize that Twitter is trying to better monetize their usage, but they are as popular as they are because of the third party apps.  They can’t expect people to use their web site either unless they improve the experience there universally either.  If they can’t implement the features that people are used to having or better alternatives then they have no business cutting off third party apps.  Find a way to leverage the fact that people want these third party app rather than alienating the community.

del.icio.us Tags: ,

Review: Using Pluralsight Video Training To Keep Up With Technology

image

As a consultant I have long stretches where I may be heads down with a single technology.  In the mean time the rest of the world can be passing you by.  When I get off of that project there is a lot to catch up to.  I could buy a bunch of books or request time to go to a class, but the first is time consuming and the second is expensive.  Pluralsight allows me to catch up quickly at the end of a project or even keep up during a project by giving comprehensive video courses for a reasonable price.

The presenters are people that I have trusted in the Microsoft community for years such as Craig Shoemaker and Brian Noyes.  This greatly increases the value of the material being presented in my opinion.  You can’t beat having industry leaders as your professors.

One of the hazards of these videos is that it is like drinking from a fire hose.  The pace of the presentation is pretty fast.  You need to find a way to digest the content.  Stopping after each section and building your own projects is a great way of doing this.  It is also nice to be able to backup when you miss something.  Especially since the biggest problem is finding time to concentrate on the presentations.

Another thing I found helpful is that when you are studying one subject and you find that there is a detail that you don’t understand because of a prerequisite that you aren’t familiar with, there is usually a class you can go to the includes that subject as well.  This is the advantage of having their entire course library available for one price.

These videos are much more verbose than is possible in blog entries and articles.  It is like having an audio book with demos. There are very complete and include a lot of the history of where current technologies and approaches came from.  I have also seen an effort to make sure that they highlight best practices as opposed to giving you a “Hello World” overview.  I actually learned some tricks that already existed in Visual Studio but I have never come across before.

If there is one thing I would like to see added it would be the ability to ask questions of the teacher.  I would think this should be something that is at least available with the Plus accounts.  Overall I think that a Pluralsight account is a great addition to a developer’s toolkit and well worth the price.  Be sure to take it for a spin a see for yourself.

del.icio.us Tags: ,,,

March 2013 Chicago IT Architect Group Meeting Registration Open

2013 is speeding past us already with two great presentations over the last two months.  For March we have asked Eric D Boyd to discuss what is new in Windows Azure and its implication to your architecture. Eric is an Azure MVP who speaks regularly at a variety of conferences in our area.  The cloud has been a hot topic in the IT community lately and this presentation continues what has become a series on the subject along with Amazon and Google cloud offerings.  Be sure to register here and join us on March 19th.