Archive for September, 2006
I saw the announcement about the News Corp and Jamba deal the other day and immediately sent an email to my buddies telling them that 6 months from now we will look back at this as a major inflection point in the evolution of mobility…
Although, this announcement has been overshadowed by announcements from Apple and the latest pushes in video this week, I still think this is the case. Mobile devices are capable of doing some amazing things, like reading RSS of course
Once the masses get exposed to these capabilities on their mobile devices (via channels like MySpace) the whole mobile space will benefit and flourish.
On a related note, the work Dave Winer is doing to push his River of News on mobiles is also helping the cause… even though I personally don’t see the utility in the River when I can have the Gator (more on that later), I still applaud Dave for getting mobility some love.
September 14th, 2006
The latest beta version of NewsGator Mobile is available… if you have a Windows Mobile device, check it out. It kicks butt!
Here is a list of the additions in this beta:
- Improved synchronization – a great amount of work was put into the client and the server to optimize this process. The number of round trips required to sync has been reduced and the payload for each client/server transaction has been reduced. You will see faster and more accurate synchronizations.
- A new API call, UpdatePostMetadata(), was implemented on the server to enable mobile synchronization optimization.
- Posts that are no longer current get purged during synchronization if there was some other change in the feed… previously, there was no way, other than manually marking read, to remove non-current posts on the device.
- Fixed a defect that would cause the feed data to get deleted on the device. This manifested itself as a feed indicating there were unread posts in the subscription tree, but clicking on the feed did nothing.
- Added the ability to go into offline mode while viewing posts. A typical scenario is for a user to sync her feeds and read the content while out of network connectivity. Before on every posts load, if the post had images there would be an attempt to fetch the image. This would result in the OS prompting the user to get connected. In offline mode, images and links are not rendered in the post detail view.
- Improved memory management. Instantiating bitmap objects on device causes unmanaged memory to be allocated. This memory is not automatically disposed by the garbage collector. It is now being manually disposed.
- Improved memory management by removing unnecessary data structures – posts that were marked as unread were previously cached on device. This is not necessary and these data structures and business logic was removed.
- Improved the exception handling throughout the application.
- Improved user feedback when an exception occurs. For example, a network exception is now distinguished from an invalid credentials exception to enhance the user’s trouble shooting experience when an error occurs.
- Changed application name from NewsGator Mobile to NewsGator Go! throughout the application.
- Modified the uninstaller so all files installed (and all files dynamically generated by the application) with NewsGator Go! get removed.
- The installer will not install NewsGator Go! if the application is currently in memory. The user is prompted to close the application.
- Modified the installer so it forces the user to uninstall any prior versions of NewsGator Go!
- When a user changes her location, a synchronization is automatically initiated.
- If a new user logs into NewsGator Go! all data from the previous user is now deleted. Previously, the new user’s feeds would be merged with the previous user’s feeds.
- Fixed the cleanup process so all posts older than 60 days are purges from the device. Previously, any feeds nested in folders or sub folders were not cleaned.
- Resolved a defect that was not persisted the sync failure state of a feed across application restarts.
- Added the ability to check to see if your version of NewsGator Go! is current.
- Remove non-printable characters from feed and post titles… this was causing rendering issues if a post or feed had a carriage return for example.
- Improved the process for changing the persistence location where your feed data is stored – improved the feedback and use of wait cursors to indicate long running processes.
- Resolved a defect that did not save read state changes for feeds and posts that occurred while a sync was in process.
- Resolved a defect that intermittently disabled the “Mark Feed Read†and “Mark Folder Read†menu options on the feed view.
- Replaced the progress indicator on the splash screen from a rotating PDA to a rotating NewsGator feed symbol – also removed the pink shadow from the progress indicator.
- Added a note on the first time a user logs in to indicate that a user needs to create a NewsGator account before proceeding.
- Disable the Clip Post capability from the post view and post detail view when a post has already been clipped.
- If a feed and/or folder name changes this is now handled during the synchronization process.
- Improved messaging when a user resets his sync state or when a new user logs into the application.
- Enhanced the navigation on all combo boxes on the Pocket PC, selecting the Up/Down keys now navigates the user to the previous/next control. This essentially replicates the default behavior on the Smartphone.
- Immediately verifying credential if the user changes her password.
- Fixed typo in the “Update Locations†menu option – used to be “Update Locationssâ€.
September 10th, 2006
So, you’re building a Pocket PC application against the .NET Compact Framework 1.0 and you want to support one hand operation. You have a ComboBox nestled between two other controls. Once you get focus on the ComboBox, how do you allow the user to get off the ComboBox control? D-Pad navigation would be the way to go. However, the Up AND Left keys change the control’s selection to the previous value in the list, and the Down AND Right keys change the selection to the next value in the list.
It would be cool if the Up and Down keys let you move to the Previous/Next control (like on the Smartphone). So, you think you can capture the KeyDown event, handle the event, and you are good to go… something like this would seem to do the trick:
       public Control GetNextControl(Control ctl, bool forward)
       {
           int curIndex = this.Controls.IndexOf(ctl);
           if (forward)
           {
               if (curIndex < this.Controls.Count)
                   curIndex++;
               else
                   curIndex = 0;
           }
           else
           {
               if (curIndex > 0)
                   curIndex- -;
               else
                   curIndex = this.Controls.Count - 1;
           }
           return this.Controls[curIndex];
       }
       private void comboBox_KeyDown(object sender, KeyEventArgs e)
       {
           if (e.KeyCode == Keys.Up)
           {
               // Move to the previous control and handle the event
               GetNextControl(this, false).Focus();
               e.Handled = true;
           }
           else if (e.KeyCode == Keys.Down)
           {
               // Move to the next control and handle the event
               GetNextControl(this, true).Focus();
               e.Handled = true;
           }
       }
It doesn’t work… the focus changes to the proper control which is cool, but the combobox’s selected value still changes. At this point you might get a bit annoyed and after a cup of coffee and chilling out, you end up with something like this:
       // Keep track of the previous selected index
       int previousIndex = -1;
       private void comboBox_SelectedIndexChanged(object sender, EventArgs e)
       {
           if (previousIndex != -1)
           {
               ((ComboBox)sender).SelectedIndex = previousIndex;
               // Reset this to -1 so we only fire this logic when Up or Down is pressed
               previousIndex = -1;
           }
       }
       private void comboBox_KeyDown(object sender, KeyEventArgs e)
       {
           if (e.KeyCode == Keys.Up)
           {
               GetNextControl(this, false).Focus();
               // e.Handled = true; THIS DOES NOT APPEAR TO FUNCTION PROPERLY
               previousIndex = ((ComboBox)sender).SelectedIndex;
           }
           else if (e.KeyCode == Keys.Down)
           {
               GetNextControl(this, true).Focus();
               // e.Handled = true; THIS DOES NOT APPEAR TO FUNCTION PROPERLY
               previousIndex = ((ComboBox)sender).SelectedIndex;
           }
       }
       private void comboBox_GotFocus(object sender, EventArgs e)
       {
           // If the behavior is as we expect (ie, Smartphone) make sure that works too!
           previousIndex = -1;
       }
It’s a bit of a kludge, but it worked for me. Hope this helps.
-kevin
September 8th, 2006
Today, Dave posted about the ttl element in the RSS spec. It seems like if this was an element of - then it would be very useful for distributed consumption of podcast enclosures… at the level it seems to be not very useful.
September 7th, 2006
A lot of folks think email is the killer application for mobile devices…
I disagree. Any time I am near a networked computer I get sucked in. I don’t want to be sucked into my mobile while hanging out with the family or friends, riding my bike, or out on a trail run. I need time away from the computer/email and during these off times I usually solve my really hard problems. It’s amazing how clear you can think when you remove all the noise. If email is on my phone my environment is potentially always noisy.
Paul, our IT guy, has all the infrastructure in place to get mail pushed to my Windows Mobile device. I could get it setup in minutes, but I just don’t want it. The noise would KillMe and Holly would not be psyched about this at all – it would KillHer.
For me, RSS on my device is the killer application. I can take a look at my feeds if and when I want to and there is no need to respond. I can be a voyeur on interesting discussions or topics, peruse for entertainment, or just turn it off without feeling guilty. RSS is the killer mobile app.
September 3rd, 2006
On Friday, I spent a pretty routine day at the office, then met Andrew to get the 45 minute intro to Word Press, and then headed home to hang out with the kiddos. Holly had plans to catch a movie, and I was on the hook to get the kids to bed. This went flawlessly and at about 8:30 pm all three kids were snoozing, I was feeling great, and my plan was to hop on the spin bike for an hour. I could only manage 45 minutes and felt like crap. Weird…
After that I was up till 3:30 am putzing around w/ Word Press (that’s a topic for a future post). Holly had plans to go hiking at 7 am that morning, so I was up at 6:30 making muffins with the kids. I was feeling wiped… when Holly got back, I threw a pair of shorts, my trail running shoes, and an extra shirt in my pack and hopped on the cross bike. I figured I’d be pretty flat, so had no real plan in mind. But to my amazement, the legs felt awesome. I ended up riding to a little town outside of Boulder called Marshall over to the foot of Eldorado Canyon and back to the base of Mt. Sanitas, a short but punishingly steep trail in the heart of Boulder. I locked the bike, ran up the back side of Sanitas, and down the front side. Then I got on the cross bike again and headed up Linden through Pine Brook Hills - this is a great paved climb in North Boulder. I rode down the back side of the ridge on some dirt roads and back to the house. It was an unexpected and fantastic workout… the body is capable of some really good things from time to time when you least expect.
September 3rd, 2006
Over the past few weeks, I have received a bunch of text messages from friends and most recently from my wife (see below).  BTW, I’ll be home soon love.
 
I have received more text messages this past month than in the whole year prior. What’s going on here? Is this technology starting to penetrate my demographic – 30ish, professional, married w/ kids?
I had lunch with my friend Danny last week and he assured me that “everyone in his demographic is doing itâ€. That would be 20ish guys and girls in the cool cat crowd. I guess texting is entrenched in this hip crowd, but the uptake has been slow for us old-schoolers.  Is this finally starting to change, or is the behavior I am seeing just an anomaly?
Having a Windows Mobile device w/ web browsing, email, plenty of apps, and of course RSS via NewsGator Mobile, I had pretty much dismissed texting as a wimpy alternative… kinda like riding a Huffy when you have chance to ride a BMC rig (bad bike vs. great bike for you non-cyclists).  But I am starting to see the utility.
Sometimes simple and functional is not such a bad thing. And when it comes to mobile, one thing is for sure… every phone (and there are lots of them) can handle text messages. I will definitely be thinking about how this can play nicely with NewsGator Mobile. Â
[Andrew Hyde helped me get rolling with Word Press today in about an hour - thanks man. Andrew tipped me off to a cool plugin for overlaying images on the current page, Lightbox. I can’t get it to work… will try again later.  BTW, Andrew’s girlfrend was busy drinking beers waiting for him to join the fun, and here he was drinking coffee with me on a Friday evening. What a guy.]
September 2nd, 2006
Next Posts