Sunday, September 5, 2010
Sunday, August 16, 2009
The most recent release of PockeTwit has an annoying bug that causes the first request upon startup to fail with a communication error. I finally tracked down the code to one line within our WebRequest factory:
public static HttpWebRequest CreateHttpRequest(Uri uri)
var request = (HttpWebRequest)WebRequest.Create(uri);
request.AllowAutoRedirect = true;
var proxy = new WebProxy(ClientSettings.ProxyServer, ClientSettings.ProxyPort);
proxy.BypassProxyOnLocal = true;
proxy.Credentials = CredentialCache.DefaultCredentials;
request.Proxy = proxy;
For some reason, the “request.AllowAutoRedirect = true” is causing the first requests to fail with a “401: Unauthorized” from twitter! No idea why that would happen, my suspicion is another little “gotcha” from CF.NET 2.0.
Edit: It looks like I jumped the gun and did just what everyone else does—blame Twitter’s issue on the client. I’ve had a lot of reports that other twitter clients are experiencing the same issue.
Monday, August 3, 2009
First of all, some bugfixes. There was an issue with the "leaked" version of CF.NET 3.7 that many custom ROMs started using. I still have no idea WHY the issue was happening, but I was at least able to circumvent it.
Also, we were installing a Today Screen plugin during the cab install, which requires writing to a portion of the registry that some carriers do not allow. I've taken that out of the install and put it into the application itself (where it can fail gracefully if necessary). So for those people out there with "locked" phones, this version will finally work.
There have also been a number of other miscellaneous crash fixes and performance improvements brought in by a new team member, @johnb2007. He jumped into the code with both feet and found a few ways to speed up rendering and improve battery usage.
@johnb2007 also contributed some new features. You can now follow anyone by entering their twitter id, rather than having to find and select one of their tweets. There is an "advanced" search dialog to help you build complex search queries. And he has added what is probably the most requested feature of all, the ability to delete one's own tweets! Be sure to let him know how much you appreciate his efforts.
@lifanxi has also joined the team to add some important features. You might have noticed he has created his own fork of the PockeTwit code that works with the popular (but currently unavailable) Chinese site, Fanfou. As a part of this effort he translated the entire UI to Chinese. We hope to take the experience he gained performing that work and find an easy way to provide internationalization for many languages within PockeTwit.
@lifanxi has also added support for proxies to the application. So if your network requires the use of one, you'll still be able to use PockeTwit :)
These guys have kept me really busy trying to keep up. We finally had to take a break and decide to release before too much was added at once. But you can expect another release with even more interesting features coming up soon.
Monday, June 8, 2009
@marclandis has continued refining the today screen plugin. It now offers a list of groups with unread items similar to the standard "Messages" plugin for pocket outlook. And tapping an item in that list will bring PockeTwit to the foreground and display that group.
He also fixed an issue with QuickPost. The "Post Update" screen will now be displayed regardless of whether PockeTwit was already running or not.
There is now a "Saved Searches" feature. This will allow you to define a search and add it to your custom groups timelines. You can also specify if the saved search will be automatically checked with your friends and messages timelines, or only refresh when it's selected. For example, I've defined a saved search for "PockeTwit OR PocketTwit" and set it to autoupdate, so I know whenever anyone mentions the applications name out there. But I also defined a saved search for any posts near my house and told it NOT to autoupdate, since that would get a constant stream of chatter.
Note that PockeTwit's saved searches do not correspond with the user's saved searches on Twitter's site. Twitter added that feature too late into the development cycle of PockeTwit for me to have them match without adding a significant delay to the release. I do plan to have them synchronize in the future.
I've added support for the web service "140it.com" to help users shorten their posts to fit twitter's 140 character requirement. If your post is over 140 characters, PockeTwit will first ask if you'd like to use 140it. If you agree, it will use their service to shorten some common words. For example, it will replace the word "to" with the character "2" and use other common abbreviations. If that still doesn't get the text to less than 140 characters, it will ask if you'd like to use shorttext.com like it did in the past.
@roelvandenbrand has been trying to keep up with the flood of media services popping up around twitter and making sure PockeTwit supports as many as possible. He's added Img.Ly, Posterous, and TweetPhoto support. And thanks to TweetPhoto's support of development, it has been made the default media service for PockeTwit.
A new developer, @theMark_S ,has come forward and volunteered to write a desktop installer for PockeTwit. This will make it easier for some users to install the application through activesync rather than having to download the cab file directly to their device.
As I mentioned, there have also been several bugfixes. The most important one is a fix that allows a user in the cache to be updated. In the last release, if a user changed their avatar or screen name, PockeTwit could not update the cached information. Their avatar would appear as a question mark or their screenname would not be updated. I'm glad to say that bug has been fixed!
As always, thank you to all the PockeTwit supporters out there. This project has been a tremendous learning experience for me and I'm very glad that you find it useful.
When I started development of PockeTwit, I did it with absolutely no financial incentive in mind. I had a good job that paid what I needed. I was just glad to share my work and allow others to enjoy it.
But times and situations have changed and I can no longer afford to be so single-minded in my motives.
Thankfully, TweetPhoto has come up with a simple plan to support PockeTwit development that requires almost no effort from you. If you use PockeTwit to post images to TweetPhoto, any advertising revenue for the page hosting the photo will go to PockeTwit. It's that simple.
Of course you can still choose one of the many other media services supported by PockeTwit. And I won't bug you about that too much, I promise! But if you want a hassle-free way to show your support, this is it.
I plan to release a version of PockeTwit which supports TweetPhoto (and has a lot more!) very soon. Be on the lookout, then take lots of pictures!!
Saturday, April 18, 2009
PockeTwit v.71 is out with some great new stuff. This is the release I've wanted to make for a long time, but had to build the foundation to lead up to it. I needed nested (and dynamic) menus to be able to fit everything in!
PockeTwit now has grouping-- a feature usually reserved for a select few desktop twitter clients. You can now group users together in categories to make it easier to manage the stream of information from people you follow! You can "copy" a user to a group, meaning their posts will still appear in the Friends timeline, or you can "move" them to a group so they no longer appear in the main friends stream.
And it gets better, you can specify notifications on a group-by-group basis. Make your business group vibrate and play a loud sound, but move yourself into a silent group so you no longer get notifications about your own posts. Can you tell how excited I am?
In addition, @roelvandenbrand been hard at work on the picture service integration. He's added two new picture services-- Pikchur and Twitgoo. He also took the feedback from users to heart and it no longer requires two taps to get the URL into your status. And it's able to post the message to those services that support it (like twitpic).
And that gets better too! It can ALSO post the GPS coordinates to services that support it like MobyPicture and Pikchur! So now someone viewing the image on that service will see your image, your message, and the location it was taken! I'm really glad Roel's taken this on-- PockeTwit's becoming one of the best clients for on-the-go twitter media that out there.
Another developer has joined our team, providing an often-requested feature -- a Today Screen plugin! @marclandis has put together a plugin for the today screen that cycles through how many unread items you have in each of your timelines. It can also be used as a quick-launch shortcut to open the application. We've been wanting this for a long time, but I didn't have the C++ skills to make it happen. Thankfully someone else did :)
I've spent some time working on the memory and speed issues. I don't think the memory issues are completely solved, but I expect it's gotten a lot better. And the application loads significantly faster with this release.
And be sure to check out the new themes-- Sunny, Mint, and Ice. I'm no graphic designer, but I'm slowly moving to more advanced visuals. I think a lot of people will like the way these look.
As always, I want to thank everyone who's provided feedback throughout the development process. The nice thing about working on a communications client is that it provides an easy way for users to tell you what they think!
Saturday, April 4, 2009
But I also convened a discussion about Mobile Development, something I've learned a LOT about recently. As it turned out, none of the people who came to my discussion had any real experience with mobile development yet, they were mostly interested in learning about it. So I ended up giving an impromptu presentation on how the special considerations you need to keep in mind when developing for mobile platforms. Overall, I think it went pretty well.
I've put up some notes about the topics I covered on the houstonaltnet wiki. Maybe I'll refine this and give it as a "real" presentation some day.