417 Expect Header Issue With Twitterlicious

If you’re getting this error with Twitterlicious:

System.Net.WebException: The remote server returned an error: (417) Expectation Failed.

You are experiencing a new regression bug with the Twitter API has affected all .NET Twitter clients, including Twitterlicious.

Twitterlicious seems to be less affected than other clients: it can still get your main timeline but you can’t update your status. The stated workaround doesn’t work, so for now all .NET Twitter applications won’t work with the Twitter API.

It’s awfully nice of Twitter to make this breaking change to their API during the holiday season, and even though they know about this bug, they haven’t rolled back the changes they made. All sane .NET developers will use the HttpWebRequest class to query the API, rather than reinventing the wheel themselves. But as far as I can see, the only way to work around this is to extend the HttpWebRequest class yourself to modify the headers it sends, or handle the entire thing yourself.

This change should never have been made to the API in the first place. Whatever is the correct behaviour according to HTTP specification, whatever Twitter adopted in the first place, they should keep. APIs are supposed to be very stable, you can add new features to APIs, but the existing functions should be kept the same. Twitter’s casual attitude to their API not only shows a lack of respect for developers using their API, but also a lack of experience or expertise in the design and implementation of their entire platform.

I will continue to update Twitterlicious 2 for the foreseeable future, but I may have to re-evaluate the amount of time I’m going to spend on the next major revision.

Facebook Giveth With One Hand, Taketh With Another

Facebook has ironically caved into all the social pressure from disgruntled users and removed the ‘is’ they force on status updates. Before, you had to follow the not so flexible “[name] is…” format, and with just a few exceptions, only verbs could really follow on after that. Now, you can put anything you like after your name, “[name] loves boys” being the current most popular choice for those who have a weak password.

Getting rid of that ‘is’ was like lifting the shackles off a straight jacket (err, don’t ask how I can make that comparison), you’re now open to the wonderful world that is using adjectives without making something so grammatically laughable that even a pig would snort at it.

So, what has Twitter got to offer now eh? Why bother with this medieval farm boy’s choice of status update tool now that Facebook has set it’s statuses free? Eh well, for one thing people have to be registered on Facebook to be able to track your statuses, there is no RSS feed, although there is an API with a few apps written to update you, they pale in comparison to the apps written for Twitter. And as soon as they removed one limitation, it’s immediately replaced by another by forcing you to start every update with your name.

I can see why they would want to keep those status updates in check by forcing you to make them about yourselves, but then it also removes all the community that you get from Twitter. With Twitter, people are supposed to react to tweets by posting their own tweets, sometimes as a direct response. Tweets are more than just a status update; they’re a conversion, a discussion, or even just spouting of random filth like how the slightly and twitchy sadistic kid at school used to. It allows you to do something that is socially unacceptable: to utter random thoughts that fly into your head and bitch about things no one else cares about. And while some of Facebook statuses carry the same sense of randomness, the majority fall into the toilet bowl that is repetitive boredom.

That is why I use Twitter.

Twitterlicious 2.1

Twitterlicious 2.1 After a two month absence of Twitterlicious updates, I’ve decided to change the way the UI work and get rid of the needless tabs for replies and direct messages. Now, everything is in one list, and any replies or direct messages are highlighted accordingly — blue for replies, and brown for direct messages.

Some people also reported issues with leaving Twitterlicious running, it sometimes stops updating and needs a restart. While I’ve not been able to reproduce this, I think I’ve found the problem and hopefully my solution will work.

If you have Twitterlicious 2.0, then it should automatically inform you of the update and how to upgrade, everyone else can get it at the usual place.

Twitterlicious 2.0

Its been a long road, taking almost six months of on-and-off work to complete, but now I feel comfortable in releasing the full release of Twitterlicious 2.0. No more betas or release candidates, this is the real deal!

Download Twitterlicious 2.0 final.

A brief recap about Twitterlicious:

Twitterlicious is a small app that makes using Twitter more fun. It handles all the hard work, leaving you to read and write tweets with the minimum fuss. Best of all, Twitterlicious is free!

Twitterlicious 2.0

Compare to how Twitterlicious 1.2 looked.

A big thanks to all the beta testers for all your feedback, you’ve made Twitterlicious into what it is today and its better for it. If I were more organised, I would have a list of all your name, but I think you all know who you are.

Make sure you subscribe to the feed (or a feed for posts only about Twitterlicious), but it would be nice to keep you as a regular reader on Ejecutive.)”: to keep up to date with developments with Twitterlicious and other projects, you can also follow me on Twitter.

After such a long time working on one side project, its left me a little jaded with Twitterlicious, so for now its just going to be minor features and bug fixes (keep those reports and requests coming in). I’m going to focus my attention on going back to my final year of university and some other side projects I have going. I’ve also neglected Ejecutive recently with the frequency of posts, and I have a plan to fix that too, and maybe spruce up the archives a little.

But don’t think for a second that Twitterlicious is dead, I’ve started to look at learning Windows Presentation Foundation, and Twitterlicious seems an ideal candidate to experiment with. So the future is bright.

Change Log

The major changes since Twitterlicious 1.2:

  • Each tweet is now shown in its entirety in the list instead of just showing the selected tweet at the top.
  • The read status of each individual tweet is remembered and displayed, even after you close the app!
  • You can follow people who’ve replied to you and direct messages, as well as the standard friends timeline.
  • Each tweet list is capable of holding the past 50 tweets.
  • You now get automatically notified if there is an update to Twitterlicious.
  • The update text box is resizable and multiline, as is the whole app window.
  • Support for authenticated proxy servers — for the people who are using Twitterlicious on work time!
  • Nifty context menus (right click) in the tweet lists.
  • Tweets now show up as from Twitterlicious on Twitter.com (example).
  • A bunch of shortcuts:
    • Ctrl + W: minimise the Twitterlicious main window.
    • Ctrl + R: manually refresh the lists.
    • Ctrl + K: mark all tweets in the current list as read.
    • Ctrl + Return: send update (same as clicking “Go”).
    • Ctrl + L: opens the link in the selected tweet in a browser window.
    • Ctrl + U: marks the current selected tweet as unread.
    • Ctrl + D: sends a direct text to the selected tweet’s user.
    • Ctrl + E: replys to the selected tweet (@username).
    • Ctrl + B: view the selected tweet in the browser.
    • Ctrl + T: view the selected tweet’s user’s website.

Changes since Twitterlicious 2.0 RC1:

  • Faster and more reliable connection to Twitter.
  • Option to improve friends list update speed by reducing the frequency of the replies and direct message updates.
  • Option to hide Twitterlicious from the Windows taskbar.
  • Option to hide the direct messages list (improves speed).
  • Spanking new about box.

Twitterlicious 2.0 RC1

Here we are, the feature complete Twitterlicious 2.0 with four heavily requested features:

  • Checks for new versions of Twitterlicious on start-up and when requested.
  • Remembers previously read items between instances.
  • Much better error handling, now records error messages to a log file and correctly handles web connection problems.
  • Toggle bubble notifications.

Also the last few bugs squashed:

  • Blank direct messages bug fixed.
  • Replies and direct messages list height bug.

This should be the only release candidate before the final 2.0 release and this should be the last time you’ll have to manually check for updates! So for the last time, get it from the usual place.

MobileTwitterrific

Twitterrific for the iPhone. Made me think that porting Twitterlicious to Windows Mobile wouldn’t be that difficult.

Twitterlicious 2.0 Beta 4

This is biggest update since the initial 2.0 beta, you can now see replies and direct messages sent to you in seperate tabs, and respond to them.

Twitterlicious 2.0 Beat 4 Screenshot

This update was supposed to include an auto-update feature, however that still isn’t ready even for a beta and I thought the new features and bug fixes were important enough to warrant their own release.

The change log for this release since beta 3 is:

  • New Replies and Direct Messages tabs.
  • Fixed: Windows fails to shutdown when Twitterlicious is open, with the error WARNING_EW_SHUTDOWN_CANCELLED.
  • The window position is now restored when the program is started.
  • Improved pop-up notifications — replies and direct messages include the sender.

Get it from the usual place (hopefully for the penultimate time.)

The Real Twitterlicious 2.0 Beta 3

Whoops, looks like I didn’t upload Twitterlicious 2.0 Beta 3 properly and people were still downloading Beta 2. My apologies for that. I’ve now fixed the link.

Twitterlicious 2.0 Beta 3

It’s been exactly a month since the last Twitterlicious release, so it’s about time for another one. This release is for the users of Twitterlicious, as the majority of the updates were requested by yourselves:

  • New more organised options dialog.
  • Supports authentication for proxy servers.
  • Can select between the update text field and twits list to be focused when opening the main window.
  • x64 build.
  • Fixed a bug where the date created wouldn’t update.
  • Fixed: “Ctrl + Enter in the text box adds a new line at the end not at the cursor’s position.”
  • Fixed: “save size of text box on exit.”
  • Fixed: “notification still shows after I close the bubble.”

Get it from the usual place.

Twitterlicious 2.0 beta 2

Following on from bug reports and feedback given for Twitterlicious 2.0 beta 1, I’ve added a lot of usability improvements this time that don’t revolve around the user interface. If you like using keyboard shortcuts and not the mouse, then you’ll love this release. If you like using the mouse, then you’ll love this release too! Something for everyone!

Thanks to everyone who gave feedback, you make Twitterlicious better.

Get it from the usual place.

Changelog (from beta 1 to beta 2):

  • When copying from the list (Ctrl + C), only the tweet’s text is copied instead of the whole row.
  • New context menu.
  • New shortcuts:
    • Ctrl + L: opens the link in the selected tweet in a browser window.
    • Ctrl + U: marks the current selected tweet as unread.
    • Ctrl + D: sends a direct text to the selected tweet’s user.
    • Ctrl + E: replys to the selected tweet (@username).
    • Ctrl + B: view the selected tweet in the browser.
    • Ctrl + T: view the selected tweet’s user’s website.
    • Ctrl + F: add the selected tweet as a favourate (currently disabled awaiting API updates).
  • The error window doesn’t default to always on top anymore, it defaults to whatever you’ve set Twitterlicious to be.
  • Pressing Return now updates the tweet instead of appending a new line in the text box. Ctrl + Return now appends a new line.
  • Select all shortcut (Ctrl + A) is fixed for the text box.
  • Reply (@username) now uses username instead of full name so it works with Twitter’s reply system.

Twitterlicious 2.0 beta 1

twitterlicious.gifTwitterlicious 2.0 beta 1 is now available for download, and with a huge list of changes. Notable improvements include a new twitter list and shortcut buttons! I’ve implemented the most requested features, but if you do have more requests or ideas do get in contact.

Remember this is a beta release, there are bugs (notably with the new twit notification system), but it’s in a usable state. I would usually say don’t use this for business critical applications blah blah blah—but I don’t think anyone uses Twitter for business so you should be fine. Any problems or bugs you find, please do report them, same with any other problems you find with Twitterlicious.

Oh, I know I said you shouldn’t need to enter your credentials again, but you’re going to have again to with version 2.0!

The changes include:

  • Each twit is now shown completely in the twit list, including the avatar and whole message on multiple lines.
  • The read status of each individual twit is now stored properly and updated as you select it.
  • Unread twits are now shown as bold, just like e-mail clients do!
  • Shortcuts!
    • Ctrl + W — minimise the Twitterlicious main window.
    • Ctrl + R — refresh.
    • Ctrl + K — mark all twits as read.
    • Ctrl + Return — send update (same as clicking “Go”)
  • The twitter list now holds up to 50 twits and not just the past 24 hours worth that Twitter spits out.
  • The update text box is now multi-line and is re-sizable.
  • Fixed a resizing issue that crept in with 1.2 where the main window would open very small when you first start Twitterlicious.

Now stop reading and get downloading!

Twitterlicious 2.0 preview

Twitterlicious 2.0 has been in the works for a while now and is taking a lot longer than I expected. You got a small taste of what’s to come in the 1.2 release, but here’s a preview of the completely redesigned interface in 2.0:

Twitterlicious 2.0 Preview Screenshot

I’ve finally managed to implement a list with in-line twits reliably, which makes the interface far more powerful and simple in the process. Stay tuned for the inevitable beta release.

Twitterlicious 1.2

While it’s been a month since the last Twitterlicious release, I’ve been busily working on version 2.0 of Twitterlicious. Unfortunately, time constraints and the fact that I’m going into unknown territory with what I’ve got planned for v2.0, means it probably won’t be out for at least another month.

However, in the mean time I want to release an interim 1.2 version that features many of the improvements that I’ve planned for the 2.0 release, including a lot of requests.

Improvements and bug fixes include:

  • Window is now resizable.
  • Ability to display the twit messages inline with the list (see options).
  • Improvements in the speed and efficiency of caching, should over double the speed of downloading twits.
  • Double clicking a twit in the list will add “@username” to the update text box.

Download it from the usual place.

Twitterlicious 1.1.4

Another day, another Twitterlicious release. This one fixes the upgrade problems (it now uninstalls the previous version), introduces a new welcome screen that makes setting up Twitterlicious easier, and a bug found by Anna Creech in the XML parsing.

You may notice even if you have used Twitterlicious before you get the new user welcome screen. Unfortunatly this was unavoidable and you’ll need to enter your details in again.

Twitterlicious 1.1.3

A slight update to fix a time bug in 1.1.2. Please remember to uninstall the previous version before installing the new version.

Twitterlicious 1.1.2

Another new version of Twitterlicous, this time to support some API changes to improve the speed of Twitter. Download from the regular place.

Twitterlicious 1.1.1

This should be the final bug fix to Twitterlicious before the next major revision. This release fixes a proxy bug that prevented it working with some proxy servers, and a major bug where the application would sometimes crash after a user updated their status.

As usual get it from the project page.

Twitterlicious

Twitterlicious is a small Windows app that makes Twitter much easier to use.

Twitterlicious UI

I was impressed by Twitterific, and when working on my MacBook I used it exclusively for reading Twitter updates and writing. But when I’m at work I have to use a Windows machine, and looking around I couldn’t find a Windows Twitter client that worked the way I wanted it to, so I made one myself.

It tries to be as un-obtrusive as possible, hiding itself in the system tray until needed and it’s multi-threaded which allows multiple requests to be sent and received from Twitter at the same time to increase responsiveness.

You can find out more about Twitterlicious and download it for free on it’s project page, and by all means do give me a shout if you have any questions or suggestions.