Tuesday, April 23, 2013

I am HERE!

Yesterday afternoon, I posted the "second half" to the hot fix that was caused by the deprecation of the Yahoo Geo coder.  The static location picker should now be working again.  When you enter your location, if there's more than one returned you'll get prompted with the first 20 results.  If you're location isn't there you may need to provide more information (state for example).  In some ways, I'm a little happier with how this works, but in other ways, I preferred the old method as I was able to pre-filter the results by your location (ie US, UK, AUS, etc).

My goal for tomorrow is to write (or at least write most of) a post regarding the state of Desk Clock Plus.

Wednesday, April 3, 2013

Where are you again?

I got a couple emails about the weather not loading.  I looked into the problem and found that there's a problem converting your Latitude and Longitude position into a Where On Earth ID (WOEID).  It looks like the reverse geo coder that I was using got retired, so I made a quick change to use a different look up process.  There is probably still a bug in there when you're trying to search for your location to set it as a static location (if you're already using a static location, you should be good as long as you're not trying to update it).  I'll address that bug tomorrow or next week at the latest.

If you want to side load the update you can visit +Desk Clock Plus . on g+.

Friday, August 17, 2012

Previously on Desk Clock Plus...

It's been a month and a half since the last post.  Work and life in general has had me running like crazy with little time (or motivation) to work on the clock program let alone update the blog.  Since the last post on July 2, here's what's changed:

  • A number of smallish bug fixes that came up from any number of reporting methods (see: How to get a bug fixed.)
  • A quick hot fix because one of things I tried didn't work... 
  • Two new features:
    • Orientation Lock
    • Static background color
  • Caught a potential NULL value
  • Fixed a display bug for 100+ degree days
That brings us up to today's minor update which is just adding 1 minute to the screen saver time out.  I promised this to a user back in December, but I forgot about it.  Sorry!

I have been working on Desk Clock Plus when I can since the last post, but I haven't gotten anywhere really.  The game plan is to break the application up from one big project into a number of smaller libraries and one execution project.  This will then allow me to swap parts of the application out on a version by version basis. The real push for this is the Alarm code which is still based off the 2.2.  I had to maintain that version of code as it pretty much worked for all the different versions of Android.  Google made a major improvement for 2.3 which I'm not using.  The goal is to build a legacy version of the alarm and then other versions for 3.x versions and for 4.x versions.  Libraries are key to keeping all that code manageable by re-using all the common code among 3 different versions.  The problem is the code is so interlaced that can't quite get the code split up correct to avoid circular references (ie two libraries that reference each other, which leads to the chicken vs the egg problem). 

Earlier this week, I came to the conclusion that the on-the-fly design method really wasn't working (there's a big surprise) and I'm going to have to sit down with some design tools and figure out how I can break up the application that works for now and should work for future enchantments.

Monday, July 2, 2012

Hold on tight...

The updates might be a little fast and frequent for the next week.  I figured that I would spend some time reviewing the stack traces that have been sent in (I was up to about 15 issues).  Some of them were odd little things that only happened once, but still required some extra checks to make sure it didn't happen again.  I did however make a couple minor fixes to the stuff I released last week that caused some users to get an index out of bounds error.

I still have about 10 issues that need to be looked at, but as long as nothing critical comes in overnight, I'll probably hold off as long as I can before pushing the next set of bug fixes out.

Friday, June 29, 2012

Long time coming...

The last post to this blog was made on April 10th and the last update to the app was probably around that time as well.  That's almost three months... and you would think that after that amount of time I would have some crazy new enhancement ready to roll out.  Sadly, I don't.  After the last update, I started into looking at a weather extension and I think I have a plan for that, but then my 9-5 job got real crazy and home life got crazy.  I also got an email from a user who couldn't configure the docks, so I started into a redesign of the save / load mechanism for the custom docks.  The problem was that I lost motivation to work on this during my lunch break, so things started moving very slowly.

That started to change a couple weeks ago... with Verizon's move from the unlimited data plans.  My wife and I replaced our 2 1/2 year old OG Droids were replaced by shiny new Samsung Nexus' (Nexi?).  That kind of got me moving again as developing on the new phone is a dream compared to the OG Droid.  Then as it seems almost always happens I got a couple emails about the dock configuration issue.  What was nice was that one of the user's said that the problem started after his Razr was updated to Ice Cream Sandwich.  Quick emails to the other users and it seems that they were all on version 3.2 or higher.    I was able to confirm the issue on my new phone as well.  Fortunately, I was about 75% done with a rewrite of the dock extension and I was able to finish it up and send out a Beta to the users who has emailed me.

I made some other minor adjustments and that brings me up to where we are now.  Version 1.0.0.28 was just pushed out the market a little while ago with a better way for me to handle saving the dock configuration (that also works for ICS) and a small tweak to how I try to get the music apps, based off this article from Android ER.

I do feel a little motivated to work on Desk Clock Plus more after diving back into get this last bug fixed, so hopefully I'll be able continue to be motivated and get going on the other extensions that I've been thinking about since I started on the Desk Clock Plus project about a year and half ago.

Thank you all for your support and patience between updates.

Tuesday, April 10, 2012

How to get a bug fixed...


I've been meaning to do a post like this for a little while and with the last update, this seems to be a good time.

If something happens inside the app that causes it to crash, you'll probably see a window like this:


The important thing to do is hit that "Report" button.  I think that a lot of users don't even consider that as think it probably goes off to Google and into a list of a million other reports never to be read.  That certainly is the case for the Microsoft windows version of this screen.  However with Android, these reports come to developer and can be seen in the development console:


The 4 that I have outstanding are minor and happen infrequently, I've left them as "New" so I don't forget about them.  Each of the reports contain a stack trace (what functions were called before the application crashed).  For example, the bug that was fixed for Monday here's part of the stack trace:


Even if you don't understand everything (I don't always either), the important pieces are:
  • The app version
  • When it happened
  • How often it happens
  • What happens (a null exception in this case)
  • Where it happens (class name, file and most importantly line number)
The other bit of information that comes along is provided by the user.  When you tap the Report button you're given a chance to include a note of what you were doing (you could also include beer suggestions or your thoughts on Hockey or Soccer teams).  These notes are optional and not nessacary, but the user who sent in this report also sent a good note on what they were doing.
attempted long press set action on second dock of 4th icon to Music App
This defiantly helps me re-create the bug, but wasn't as important in this case.  Looking at the code I realized what had happened on line 512.  I had a check to make sure that I wasn't going to go out of bounds on my list of buttons and if something caused the buttons to go out of bounds, I cleared everything, displayed a toast message and reloaded the list of buttons.  As far as I can tell that's what happened to this user and instead of exiting when the reload was called it continued on (I missed an exit call).  Which then caused the null error.  The fix for this was very simply to add the exit call.

Hopefully this gives a little insight on how things work behind the curtain.

Tuesday, April 3, 2012

It's been rough...

Since March 13, I've had make a number of releases, sadly only one was a new feature, so just to make a quick refresher of what's been fixed:

  • 1.0.0.20 -- Brought a fix for the application not launching when it was not in a dock (the details were in the last post)
  • 1.0.0.21 -- This was the release of the tablet mode feature (details also in the last post).
  • 1.0.0.22 -- A number of code "fixes"
    • I spent some time with the theme down loader.  This is a good example of me not knowing what I was doing when I wrote it (not that I completely know what I'm doing now).  
      • I moved some code out into threads to avoid Application Not Responding reports 
      • I made some changes to how the dialogs were handled
      • I also localized some strings (I am working on getting everything localized)
    • I also got a report of an infinite spinning dialog when loading the album list which lead me to redo how I did the dialogs for the preference window (making things uniform with the theme down loader)
    • I also fixed the dialogs with slide show (another source of crash logs)
  • 1.0.0.23 -- My changes to the preferences caused a problem with the color picker which resulted in quick release.
  • 1.0.0.24 -- Fixed a problem with the themes loading incorrectly.  Which was pretty much there since the release of the tablet mode release.  The problem (for non scrolling dock users) would cause an icon to be loaded into the dock background instead of it's proper place.  The problem was just some really hard to read code and not being able to flush out all the situations where to use the tablet mode dock background vs the regular dock background.  There were some misorginized parentheses as well.
That should bring us to where we are now... What looks to be a pretty stable release that I can start to build on again.  The stabilization of the code shows in the stats that Google provides me.  Since the release of version 1.0.0.24 I've gained about 100 users in 5 days, and previous to that the amount of active installs stayed pretty level and looking back to the releases that had issues, there were points that I lost users.

I am hopefully going to start on something new here soon and that and that will include two other minor fixes.  One of which is upgrading the PayPal SDK.  It's very frustrating to get error logs and they are related to some random issue with the PayPal code that I don't have control over.