Working for this

October 22nd, 2010

Sitting at my desk at work, with two Android phones, speaking to the Decision Making Simulation Engine that I’ve been working on for 4 years at work.  There’s some sort of personal satisfaction about all of that.

Later this afternoon taking these bad boys on the road*, abusing mobile hotspot and GPS, and getting some real usage.

* – “The Road” is actually the company’s parking lot, but it’s technically a road, and easier/safer to walk on.

A Developer’s Summary of Windows Phone 7

October 14th, 2010

This week was the release of Windows Phone 7, Microsoft’s re-write of a mobile operating system. I went to the two-day developer conference this week in Boston, MA, and wanted to offer a little write up of my thoughts on this new competitor. The UI of the operating system they refer to as “Metro”, meaning that it is intended to present information in an easily understandable at-a-glance way (similar to how public transportation signage presents lots of info in a clear manner with big words, shapes, and colors).

For the first few minutes of the first presentation, I was really excited about what Microsoft was doing with Windows Phone 7. They kept stressing that it’s not windows mobile, and that their user interface was different from the standard grid-of-icons. Cool, something innovative. To make sure that they don’t get into the WinMo hardware issues, they’re enforcing hardware minimum specs which manufacturers need to abide by. Again, that’s a great thing. C#, Silverlight and XNA enable app developers to make visually intensive and sleek apps with a very short development period. Wow, that’s something big for a market struggling to just get FLASH to run on their devices, and you have silverlight AND can run XNA-based games. That’s huge. Some of the other advantages include office applications such as Powerpoint and Office being made mobile, Bing search provides location-aware results, Exchange Server integration allows for devices to be wiped if lost or stolen, Expressions Blend allows for cool transitions and animations to be easily implemented. Push notifications, another feature that only recently entered into other mobile operating systems, allow for some nice off-device functionality to occur. Their app market is where things went from good, to ok, to WTF.

Their app market:
There’s an approval process
Ok, some approval process is better than Android’s no approval process, and better than Apple’s “We don’t like it, so it’s banned” model. This gives me hope that this might be done right.

Each app developer license can only have 5 free apps
By limiting free apps, the idea is that the market will be flooded with less of the same glut of chaff apps. Another pretty good move, and also means that you have a reason to charge for apps again (I think other markets have app prices driven down by the amount of ad-funded competition, this may change that)

You can only “side-load” onto unlocked phones, and only on up to 3 unlocked developer phones
At first they said you can’t load apps onto phones that are not available from the market (my LEAST favorite feature of Apple’s store). Enterprise applications, government applications, etc all would need their applications to be available on the market. Their amendment to this later was that you can side-load on developer “unlocked” phones, and each developer can only have 3 such phones. This is your test bed. For each $99 you want to spend per year. One of the conference participants asked how you Beta test applications, and didn’t receive anything near the answer he was looking for. So how do you Beta test apps? Release it to the Market, and see what the responses are. Ugh.

You cannot run background services on phones
This was what ground my gears the most through the conference. They’re playing the Apple “to maintain user experience by not having background processes using cycles in the background, or stealing data” shtick. But rather than providing system-based hooks that can simulate a background process, their go-to answer was to use Push notifications from an intelligent server that can chew through all the cycles they want. How do you create any sort of alarm app? Just make sure your user doesn’t quit your app, and you’ll be fine.

Ok, so onto the bad stuff.

The built in browser is some combination of IE7 and IE8. Why not use Web Kit? Who knows, probably because it’s what Google and Apple do. They weren’t focused on HTML5, as it was a moving target when they started. Maybe in the future.

Push notifications are their catch-all workaround. You want to do background processes, have a Web Service on MSFT’s Azure platform use all the cycles, and then ping back the phone when complete.

All apps are basically single threaded. If you’re in App A, and hit the windows button, App A is killed. It’s on the app developer to save the state of the app before it gets killed (aka “Tombstoned”, http://bit.ly/wp7Tombstoning). This isn’t a terrible thing, but why is it necessary? This is the prime reason for why you can’t have a background process (because it dies). When you re-open App A, you need to check the state store and then re-load your state to what it was before being tombstoned.

So that’s my summary, I don’t think that windows phone 7 is “there” yet. I do think that it has a lot of potential, but they need to work out a lot of the issues that developers have, or else they won’t attract the apps that will attract the users. IPhone has a big market share, Blackberry has a big market share, Android’s share is growing. To breach those existing holds, they’ll need to knock it out of the park.

EDIT: Some other good reviews of Windows Phone 7 can be found here:

  • Anandtech - A very in-depth review of the entire windows phone 7 experience, with some good pics and descriptions.
  • Engadget - Another in-depth review of the experience.
  • Gizmodo - Gizmodo offers some further insight into how WinPhone 7 will fit into the stuffed smartphone market.
  • Mobilecrunch - A great review highlighting the negative WinPhone shortcomings that I agree will keep WinPhone7 from ever taking over the majority of the market share (not to say that they couldn’t get 10% with their current offering)

The Privacy Conundrum

June 1st, 2010

I was just having a conversation with Mike, who is very cautious about online privacy controls (rightfully so).  During this conversation, he was asking what I set my facebook privacy settings to, because he couldn’t find me (as easily) using facebook’s search.

This led me to discover the Privacy Conundrum:  If everyone has their privacy set such that you can’t be discovered by non-friends, then how are you supposed to build your social network?

I guess that the easiest way is to allow networks to find you (which is an option on facebook, which I had turned off).  Another good method is similar to how linkedin allows people to connect with people, by providing an email address for the person that you want to connect with.  This shows that you either know the person on some level, or are perhaps a spam bot.

Oops…

March 15th, 2010

So not being an avid convention goer, I didn’t think to register so early for Google’s IO conference.  I was waiting for final approval, and realized that they had already sold out.  While that’s kind of a drag, it’s my own fault.  But now I have to go and look for something else, currently looking at ACM’s MobiCom or MobiSys.  Both conferences should provide me with some useful info, but probably wouldn’t have been as applicable as the IO conference.  I was told that the IO sessions would be posted to YouTube, so I guess I can always just review them afterwards.

Planning an Android User Interface… for dummies

February 26th, 2010

So I’ve been recently looking into Android development, and have been abusing the internet searching for information.  I found that the easiest way for me to absorb the Android framework was to create a power point presentation as I went along with useful information.  As I was going through, I realized that the “stack” idea (explained REALLY well here) of how Activities are created and managed was familiar to me, and was trying to figure out how to best leverage this familiarity.  I determined that it was similar to creating index cards, and as you create new Activities, to put the new Activity “card” on top of the previous Activity “card”.  As you finish Activities, you pop them off of the stack, so you’d remove the Activity card from your stack (see the analogy here?).  You could certainly use a power point slide show to provide a similar model, but I feel that you get a little more use out of physical cards.  I’m still working on developing this model, but my card composition (currently) is as follows:[img coming soon]Front of Card:

  • A label showing the name of this Activity.  This is merely used as reference between the different cards.
  • A series of UI Components which display different Activities to the user.
  • These components will show the layout, and will be represented in the appropriate layout xml file in your project.

Back of Card:

  • List of Activity interactions.  These will outline which Activities on the front will spawn new Activities (push them onto the Stack).
  • List of incoming parameters.  Might populate certain text fields, or retrieve data from a SQLite DB based on this info.
  • List of Services, Content Providers, and Broadcast Receivers which will be called within this Activity.  Data from these objects might populate some UI Activities here.

Some other really useful utilities that I’ve found:

Sometimes, a little spark…

September 20th, 2009

… is all you need.Last week, Rich Miner visited my school to talk about his life journey and how he ended up where he is now (Managing Partner of Google Ventures).  The talk was heavily focused on what it takes to start a business and to be entrepreneurial-minded.   Afterwards, it got my mind ticking, and trying to find the niche that interests me.  I’m going to start to try and write down my ideas and think more “big picture” rather than “this is a cool piece of software”.  Overall, it takes a little spark every so often to sort of reorient me to get back into focus, and we’ll see where that leads.until then, I’m stuck in a hotel room in Jersey for work, waiting for the drive home tomorrow night.  But there will be another good walking and talking demo tomorrow, so that’ll probably help me out a bit.

September Resolution

September 3rd, 2009

I’ve been busy with work, school, baseball, buying a house, etc, but will now try to devote at least 1 night a week to write something here.  I’ll be starting off with a display of the home renovation work that Julie and I have been going over after the home purchase, as well as some real estate thoughts from the point of view of a first time home buyer.

Ok, for real

July 29th, 2009

It’s been over a year since the last post, and I really do want to get back in the habit of posting.  Since then…

  • I’ve taken 4 more classes, and am 3 away from my Masters in Comp Sci.
  • I’m 1 day away from buying a house.
  • I’m 3 days away from riding in my third PanMass Challenge.
  • Julie and I have made it to the 2-year mark.
  • Work and I have made it to the 3-year mark.
  • My car is still quite fun.
  • I’ve been working on a trip tracking website that I’ll post here in a few days (ok, probably after August 10th, when back from vacation.

Long time, no see

July 4th, 2008

Apparently, it’s been about 5 months since I actually posted anything here.  Funny thing is I’ve actually started writing 3 posts.  Maybe I’ll actually get those out.

In any event, some friends and I are going to Martha’ Vineyard for the 4th this weekend, and I get to come back Monday night to some baseball.  Baseball season is upon us again, and I’ll be keeping track of my stats once again.

Also, the PMC is coming near.  If you stumbled upon here and want to donate, feel free to help out!

Also also, got a nice new car.  2007 VW GTI.  There’s some nice pics over on my Flickr page.

Once I get back, I’ll set up that baseball page, till then, have a fun Fourth!

Stuck in the middle with, ahhh!

February 1st, 2008

There’s this little barber shop in downtown Woburn that I go to, and they do the ol’ “Lather and straight razor” your neck thing. Normally, I don’t mind this. However, when he’s in the middle of shaving, and “Stuck in the Middle With You” starts playing, let’s just say that I was having some immediate fears. Mostly, I blame Tarantino for this random nightmare. In any event, you try being in that position and NOT being freaked out :)