My CodeMash - updated for 2014

New and improved! Well OK it's not new and how much it has improved is your opinion. But a new version has been published in the app store. You can get it here.

There is a WP7 version that has been adapted to the 2014 data feed and includes some bug fixes. This is a maintenance release to enable those stuck on WP7 to continue to use the app. I'm not sure how many people are stuck but I don't want to assume that everyone has been able to upgrade their phones.

The WP8 version includes some new features:

  • Calendar integration.
  • Scrolls to the correct day and next session time when precompilers or sessions are opened.
  • When editing a session it remains in view when returning to the list. Due to the way WP7 handles pivot items I was never able to get this to work. A couple of methods are available in WP8 that make it possible.

Live tiles didn't make the cut this year, primarily because I ran out of time. I will probably add it at some point in the future. I think calendar integration is a reasonable alternative for now.

As I said last year please take the time to review the app. I didn't put any annoying "rate me" screens in the app but for those of us who take the time to write and publish free apps reviews are the only reward. You can review the app and/or leave comments and suggestions for me through the "About" page in the app. Or leave comments here or through the contact page. I'd appreciate any feedback, especially regarding My CodeMash vs the official EventBoard app. I'm trying to decide if this app needs to exist since there is an official app.


My CodeMash is now available in the Windows Phone app store

My CodeMash is a simple, clean schedule organizer. I've always wanted an app that would let me create my schedule and select alternate sessions. So, I wrote one for myself. I didn't want to be able to watch twitter or post a tweet, I have other apps for that. I just wanted a simple way to view my schedule.

If you've ever attended CodeMash you know how hectic it can get. The session you've chosen for a given time is standing room only. Or you need to "vote with your feet". So what's your next choice? Rather than standing in the hall thumbing through the conference guide why not have your next choice at your fingertips?

My CodeMash lets you rank the sessions that you are most interested in and sorts the sessions by rank within a time slot. The data provided by CodeMash is stored on the phone and can be refreshed manually. A network connection is not required to use the app other than to occasionally manually refresh the data. This keeps the app useful even when the wifi and cellular networks are jammed up.

As I said I wrote this for myself but I've published it in the app store hoping that other CodeMash attendees would find it useful. You can find the app in the store here. Download it and give it a try. It's free, what do you have to lose?

Please take the time to review the app. I didn't put any annoying "rate me" screens in the app but for those of us who take the time to write and publish free apps reviews are the only reward. You can review the app and/or leave comments and suggestions for me through the "About" page in the app. Or leave comments here or through the contact page. I'd appreciate any feedback.

A weekend with Windows 8

Since our Labor Day weekend was supposed to be a washout due to the remnants of Hurricane Isaac (it wasn't, the forecast was wrong, big surprise) I decided to repave my development laptop with Windows 8.

First the dreaded start screen. There has been much wailing and gnashing of teeth over this. I had a much easier time dealing with it once I realized it's just a full screen Windows 7 start menu. Actually (and this didn't hit me until day 3) it's the pin to start section of the start menu. 

The start screen search feature did replace an application launcher called SlickRun that I install on all of my computers. Pressing the Win key to open the start screen and typing part of the name of the app that I want to run is very close to what I use SlickRun for.

Gripes? Application installers seem to find it necessary to pin EVERY one of their start menu items to the start screen. I don't know if that's a Windows 8 problem or an installer problem. Installers need to get smarter about what needs to be pinned.

Why isn't the time displayed somewhere on the start screen? Is it some kind of minimalist "modern UI" decision? The only time it's visible is when the charms bar is open. It's a little thing but it's annoying. I didn't realize how much I use my computer to keep track of time until it wasn't there.

The takeaway is that Windows 8 isn't bad. I want to start developing Windows 8 applications and it's only possible on Windows 8. Otherwise I haven't found a compelling reason to upgrade any of my other computers. Granted I haven't spent a lot of time looking at Windows Store apps, most of my time has been spent in the desktop which feels almost exactly like Windows 7 with some minor changes. While I do think it will be a good tablet OS, it's a tolerable desktop/laptop OS. I don't think corporations will be jumping to install it.

A fix for the WP7 Toolkit LongListSelector (aka JumpList)

I ran across this issue while trying to duplicate the functionality of a third party jumplist. I wasn't necessarily trying to replace it but just trying to learn how to make the LongListSelector from the Windows Phone Toolkit behave the same way. Along the way I learned a little bit about how LongListSelector was put together. Reading someone else's code is always a good thing.


The problem is no matter what HorizontalAlignment property is specified on the control contained in the GroupItemsPanel ItemsPanelTemplate the content of the popup is always centered. This works fine for the canonical single letter phone book example but does not look right in most other cases. This shows what it looks like when the grouping is by time.

I submitted a patch for this in January but the Windows Phone Toolkit project looks a little dead. That's understandable given Windows Phone 8 and Jeff Wilcox's move to the Windows Azure team. Since someone might be trying to use it in the interim I thought I'd post this fix.


In my case the groups are based on date and time so the normal WrapPanel alphabet example doesn't make much sense. Instead I wanted a StackPanel with each group item stretched across it. It should look something like this.

The solution is to comment out the line

_itemsControl.HorizontalAlignment = HorizontalAlignment.Center;

in the BuildPopup method in LongListSelectorGroup.cs. This allows the Horizontal alignment property of the popup content to control how it is displayed.

With this change the LongListSelector behaves more like the third party controls that I have seen.