No coding today.  Instead I spent time pondering how to structure the local SQLite database and web services for synchronization between the decice and the central data repository.

The only local database that will be close to the central database in terms of data will be the market listing database but it will still only contain active markets.  This list will also push from the server to the devices.

The other tables: characters, plots and user profiles will push to the central database as additions and updates happen at the device level.

Hopefully back to coding tomorrow.

Frustrating morning.  PC crashed.  Spent all the time I had in recovery.  Will try again tonight.


Much better luck this evening.  Implemented a placeholder web service for market listings and integrated it with the Android application. Right now the market values are hard coded but the will be placed in a SQL server database soon.

When I tried to deploy the application to my GoDaddy hosting account I ran into trust level issues that prevented it from running.  I deployed to Microsoft’s Azure platform and it worked flawlessly.  I may be switching platforms.

Next steps will be to tie the webservice to SQL Server and implement the market list interface activity in the Android app.

More to come tomorrow.

Today I extended the application I began building yesterday.  For local data storage I have settled on SQLite.  It will act as the local data repository and will be synched with the server database, most likely SQL server.

I implemented several class objects including:market, character, and plot.  The SQLite ORM allows these objects to connect directly to the data store for inserts, updates and deletes.

I stubbed in a routine to fill default market records into the db if no data currently exists in the markets table.  This will allow a first time used to see market listings when they launch the app for the first time even if they are offline.

I plan on implementing a web service to allow the app to download a current market list when the user goes online.  It will need to detect new markets since the last time it synchronized as well as updates and deletes since that time.  I’m thinking of emulating a service bus model to replay the collection of events since the last synch against the local db when the user syncs the app.

I am also not sure which hosting provider I will use to house the web service I will build.

Done for the night.

Today I began the construction of my first mobile application using Xamarin and Visual Studio 2015 Community Edition.

The purpose of the app is to be a niche networking app for writers.  The functional feature I have identified so far consist of:

– View a list of markets that publish writing.
– View the details of a specific market by selecting it from the list of markets.
– Create character names and biographies.
– Create plot titles and synopses.
– View the list of characters created
– View the list of plots created
– Request support via email

I setup the shell of the application by creating an empty solution and adding an Android project to it.  I then added an empty List Market activity to the application and a button on the main activity to launch it.

Next I added a button to request support via email on the main activity.

Tests of both buttons proved successful.

Tomorrow I will begin work on the domain class libraries and storage of data for offline use.

Welcome/Landing Page
This page requires particular attention for two main reasons. One,iIt is the first impression new visitors/customers get when they arrive at your site. Two, it is likely to be the same page return visitors see each time they come back to your site.

In the first instance it is important that this page provide immediate value for your visitors. If it doesn’t have something they are looking for and can make use of right away they are going to “bounce” right off of your site, most likely never to return.

Give first time visitors value on the welcome/landing page of your site and you will be rewarded. Visitors will stay longer, come back more frequently and tell others about your site. All of the behaviors that will lead to your site becoming more successful.

In the second instance, the returning visitor, your welcome/landing page needs to provide familiarity. It should be thought of as the dashboard for your site, letting returning visitors memorize the navigation controls so each visit they become more efficient at interacting with it.

The pedals and steering wheel in your car don’t change places or function from day to day. This makes it easy for you to get behind the wheel and operate your vehicle with very little frustration. Your welcome/landing page should follow this model. If you have to make changes make sure they would provide drastic improvement to your visitors experience otherwise try to keep the page as familiar as possible.

Continue Reading…

For subscribers to my email newsletter I am offering a free copy of my WordPress web site setup checklist.  This simple, easy to use template will help you make sure you’ve covered all of the necessary steps when setting up a new WordPress web site.

All you have to do is subscribe to my newsletter to begin receiving it via email.  Soon after you’ve confirmed your subvscription you will receive a welcome email with instructions on how to get your copy of the checklist template.  From then on you can use the template each time you setup a new site with WordPress to make sure you don’t miss any critical steps.


I don’t know about you but when I see pictures or video of Google Glass I think of the scene from the Steve Martin movie, “The Jerk“, where his invention, the opti-grab, is causing users to go crosseyed.

However, I’m pretty inspired by some of the concepts I’m seeing for smart watches.  Take a look at this concept for an iWatch.  I think that’s something I could purchase and use.

Question: Google Glass or iWatch?  Which would you prefer?

Months ago I put my name in the hat to participate in the early release of Google Glass.  I got an invitation via email this week to participate in the “Glass Explorer Program”.

Pretty exciting huh?

The conditions of participation listed in the email were:

All Glass Explorers must:

  • Be US residents
  • Be 18 years or older
  • Purchase Glass
  • Provide a US shipping address or pick up their Glass at one of our locations in New York, San Francisco or Los Angeles

So far so good.  So I click through to the site.  What do I see?

Just a reminder that all Glass Explorers must:

  • Be US residents
  • Be 18 years or older
  • Purchase Glass for $1,500 + tax within the US
  • Provide a US-based shipping address or pick up Glass in our our New York, San Francisco or Los Angeles basecamps.
  • Bring a valid US ID or proof of residence when picking up Glass

Holy crap!  No wonder they didn’t put the price in the email.  I wouldn’t even have clicked through.  Not sure why they weren’t up front about the price in the email.  Maybe they realized it was over the top and that extra step of clicking would make someone just that much more comitted to a purchase?

Oh well.  Maybe the general release will be more affordable.

Question: Have you been invited to into the Glass Explorer Program?  What did you think of the price?

If you told a traditional project manager that they’d be running a project where the requirements amounted to a statement of, “I want a website to sell widgets to anonymous customers via the Internet.” They’d probably head for the hills.

However, in Agile development, high level statements like this or user stories are the key means by which requirements are communicated. So how does a traditional project manager bridge this gap?

Agile relies heavily on the product owner being closely involved with the development team. In effect they become a living, breathing requirements document. Any time a developer has a question about the requirements it is expected they will interact directly with the product owner to have them answered.

This allows the developer to keep making forward progress and keeps the product owner updated on progress on and changes to the deliverable. It ensures there are no surprises when the sprint is complete and the user story is delivered.

The requirements document of traditional project management is replaced by continuous interaction with the product owner. In essence the time the product owner would have spent at the beginning of the project is now distributed throughout the life of the sprint.

Question: How have your requirement gathering practices changed as you shift to Agile development methodologies?

My wife and I are firmly entrenched iPhone users. We have been for several years now. We like the features and we’re familiar with how iPhones work. In other words, we’re not likely to change any time soon.

Our daughter on the other hand…

She uses an Android tablet and phone. This choice isn’t one she made against her mother and me. It isn’t even a preference for the technology. It’s based on the decision my wife and I made not to entrust an eleven year old with hundreds of dollars of mobile technology.

You see, we’re not providing this technology as a reward or entertainment. She has a need to use the tablet for school related projects. The phone is a safety measure. We want her to be able to make contact with us when she’s participating on one of her ever increasing extra-curricular activities independent from us.

That being the case we want her to have devices that meet her requirements but at the same time won’t break the bank. The obvious choice here is Android. For a little under $90 we can furnish her with a reliable tablet and phone. It makes replacing them more palatable if they’re lost, stolen or broken.

So, how difficult is it to support her on a different platform than her mother and I use? Not at all. She’s become a whiz at the interface. I don’t think she’s asked me a single question about how to use or do something. The features meet all of her requirements and she’s found additional apps to keep her entertained when she isn’t strictly using the devices for their necessary purposes (she does extra chores to earn this privilege).

I’m happy with the decision even if it means I’m raising a generation that will think I’m old fashioned for using an iPhone.

Question: Is your household a split platform household? What challenges has that presented?