Tagged with trowl

Trowl 0.8, Or How I Learned to Stop Worrying and Love API 1.1

Overdone jokes aside, I realized that I use Trowl too much, and I invested too much time in the app, to just toss it aside when Twitter decided to finally turn off version 1 of its API. That said, it’s not a trivial process.

Technical Details

If you’re interested, Trowl was originally built on requesting XML responses from Twitter. This was primarily because, at the time, .NET was best suited for parsing XML documents more than anything else. With the switch to API 1.1, Twitter completely dropped the ability to request XML responses, in favor of JSON. Luckily, .NET has become more fluent with JSON recently – but it still meant going back through all my calls to Twitter and replacing the XML-based response/parse logic with JSON-based response/parse logic.

The Status of 0.8

Okay, so, I’m making this version 0.8 because I’m essentially changing the entire foundation that Trowl is based on. There aren’t any new features here, but it’s a big enough infrastructure change that I felt justified in bumping up the version to 0.8.

I’ve converted almost everything over to API 1.1 except the following:

  • Controlling Trowl through DMs (which I don’t think anyone uses anyway)
  • Spam reporting
  • Additional caching in light of API 1.1’s stricter rate limiting

Everything else should work, but I’m releasing a development version first so people can try it out and let me know what bugs they find.

Trowl 0.8 Download

UPDATE 6/17/2013+ Another quick update that fixes some issues with retrieving friends (darn those stricter rate limits!). Authorizing a new account should be fixed now too.

UPDATE 6/17/2013 All functions should be switched over to API 1.1 now, but please send me any bugs or issues you find. Thanks!

Thank you for sticking by Trowl during the API shutdown!

Tagged , ,

Trowl 0.7.3 (Tweet Marker Support)

I’m making a development version of 0.7.3 available for anyone who would like to help me test it before it’s released to everyone. This version has better stream error recovery handling, and makes a couple of other minor under-the-hood changes. The most noticeable change, though, is Tweet Marker support.

What is Tweet Marker?
For those who aren’t yet familiar with the service, Tweet Marker syncs your Twitter timeline across applications by recording the last tweet you read. Applications that support Tweet Marker can quickly jump straight to the spot in your timeline where you left off.

How does that work for Trowl?
Since Trowl doesn’t show you a traditional Twitter timeline (at the moment…), it uses this information a little differently.

Saving your last read tweet: in Trowl, a tweet is considered “read” when its notification is dismissed. Every 15 seconds, it will send the tweet that was last dismissed to Tweet Marker.

Retrieving your last read tweet: every 5 minutes, Trowl will pull the latest Tweet Marker from the server. It can’t remove any tweet notifications already on screen, but it won’t send new notifications for tweets you’ve already seen. Instead, it will pick up with the first new tweet. Depending on your settings, this will also happen when you uncheck the Silence option.

How do you enable Tweet Marker?
Tweet Marker has been added as one of the “missed tweets” options:

Tweet Marker

This option covers both tweets and mentions.

I’ve also updated Metro Display slightly. In addition to the coalescing support that I added a little while back, I also changed it so that the Twitter timestamp dynamically updates – this should have been added a long time ago, so I apologize for the wait. I also fixed a nasty memory leak bug.

You can try both of the new toys here:

Trowl 0.7.3 Development
Metro Display 1.5 Development

Please send any bug reports my way – you can comment here, send me a tweet, or post to the Google Group. Have fun. :)

Tagged , , ,

Trowl 0.7 Preview – Update!

Just a quick post to provide an update on the next version of Trowl.

Preview builds are now available. I waited until things seemed relatively stable, so if you want to give 0.7 a whirl, you shouldn’t experience too many problems. Of course, if you do, I’d love to hear about it. Then I can fix it and everything will be happy again. :)

While 0.7 is mostly finished, there are still a few small features that I’d like to add. I didn’t want the preview builds to get held up by these last few changes, but you can expect a couple more goodies to slip through before things are finalized.

So, what are those features? Thank you for asking, imaginary commenter!

* New "Event" notification. (NOW AVAILABLE in build 002) The user stream sends more than just tweets — it also sends notifications about new followers, retweets and favorites. So it only seemed appropriate to pass those notifications on to Growl. As new notifications get sent to the stream, I’ll integrate them into this notification type.

* Complete t.co integration. (NOW AVAILABLE in build 003) Twitter is finally starting to push ahead with implementing its t.co URL "shortening" service to the rest of its ecosystem. To that end, Trowl will behave slightly differently when posting a tweet with URLs. Each URL will automatically deduct ~19 characters from your tweet, no matter how long the URL is. My current plan is to keep the built-in is.gd shortening available for those who like to use that, but it’ll probably become less important as t.co becomes more widespread.

* Photo uploads. (NOW AVAILABLE in build 004) I think everyone knows what this is now that Twitter has rolled it out to everyone on the Twitter website. It is not yet (officially) part of the API, though, and currently Twitter has no date planned for a roll out. (So much for late June.) Like mentioned above, this may or may not make it into 0.7 depending on how long this takes.

* Higher resolution profile pictures. (NOW AVAILABLE in build 005) Profile pictures will now be 200 by 200 pixels, if possible. A lot of profile pictures aren’t that large when pulled from Twitter, so some changes were made to how the retweet profile pictures are composed. Overall, though, you shouldn’t notice too much of a difference unless you are using a Growl display that shows large images, or you forward notifications to another device, like Howl on iPhone. Metro Display was changed to show a larger version of the profile picture if you hover your mouse over the profile picture.

Thoughts, questions, suggestions? Feel free to comment. :)

Tagged , ,

Trowl 0.7 Preview

Now that my experimental project is out there in the wild (have you tried it yet? please try it!), it’s time to move on to something a bit more stable and mainstream: Trowl.

I feel a little bad that it has been almost a year since the last big release, Trowl 0.6. Between other projects that I have been working on, and Twitter’s announcement (“read our tweets, no new clients!”), Trowl has been put on the back burner. The good thing about that, though, is that it has given me time to think of ways to improve the program, and collect feedback about what others would like to see too.

Today, I’d like to give you a preview of all the new shinies in Trowl 0.7.

Continue reading

Tagged , ,

Trowl: Re-Authorize for DM Permissions

settings_add_accountTwitter recently announced that they’re adjusting application permissions such that DMs require a new level of access. To ensure that users know exactly what is being accessed by the programs they use, Twitter wants users to re-authorize applications that require DM access.

If you use Trowl to view DMs, or you use the DM remote feature, you will need to re-authorize Trowl to access your DMs. otherwise you will start getting errors at the end of June.

Luckily, it’s pretty easy to do this. The first step is to go to the settings screen and click on ‘Add Account’, like the screenshot at the right shows. This will take you to the usual authorize screen, as if you were adding a brand new account. Click the link, and you will be taken to the Twitter website to authorize your account. The screenshot below shows the important part – that you will be allowing Trowl to access your direct messages.

After you enter your username and password, you will get the pin to enter back in Trowl. After you do this, Trowl will realize you authorized an account you already have set up, and will simply update your existing account with the new authorization. You will need to repeat this process for all accounts you use with Trowl. Click ‘Save’ to confirm the new authorizations and you’re done.

(One other minor thing to note: I run Trowl on several computers, and each instance is authorized for the same Twitter accounts. One thing I noticed is that as soon as I re-authorized one instance of Trowl with the new access permissions, the access permissions used by the other instances of Trowl instantly became invalid. So, if you have a similar situation, you will need to update every instance of Trowl. I imagine this isn’t a common situation, but wanted to mention it just in case.)twitter_authorize

What if I don’t want Trowl to access my DMs?
If you actually don’t want Trowl touching your DMs for whatever reason, then you can either refuse to re-authorize Trowl – in which case you will get errors whenever Trowl attempts to access them – or you can change your settings to not Growl DMs or use remote DM commands.

This is a bit of a nuisance, so thank you for taking a minute to do this. I understand Twitter’s motivations, but I can’t help but think there must have been a more streamlined way to implement this.

Anyway, that’s it. As always, if you have any problems, send me a tweet!

Tagged , , ,

Metro Display / Twitter Display Updates & Response to Twitter’s Developer Announcement

Today, I’m releasing a minor update to Metro Display and Twitter Display. For Metro Display, it will now properly display twitpic/yfrog images if the links were shortened by t.co. For both displays, they will now properly link mentions/hashtags/URLs if they appear more than once in the tweet. They can both be downloaded from the usual location. You may need to delete your current versions of the displays before installing the new versions.

Continue reading

Tagged , , , ,

Trowl 0.6.2–Still Alive!

All right, so it has been a while since the last update to Trowl.  For that, I apologize.  I needed a break from the development a bit, and the summer was happy to oblige.  I’ve been busy with various things, including a bit of experimentation with WPF. (The fruits of those experiments will be available shortly. But, if you follow me, you probably have a clue as to what they might be already.)

But fear not, I am still working on Trowl.  After all, I use it as my primary Twitter client, so I like to see it improved as much as anyone else.  There are some longer term, more ambitious things I’d like to do with Trowl – the top of this list being a switch over to User Streams.  While these are things I have set my sights upon, they are not in this update.

Instead, I’ve been focusing on usability stuff – things that have been suggested by users, and things I’ve noticed myself that I’ve wanted fixed.

So, with that introduction, let me detail the changes planned for this next update.

User name suggestions
When writing a tweet, you sometimes want to mention another user.  Up until now, you’ve had to know their name offhand (or have had to look it up elsewhere) in order to use it in Trowl.  But now, when you type “@”, you will get a pop-up list of users which will narrow down as you type.  Right now this list contains all the people you follow, as well as anyone you reply to.

Tweets & Search Results are Decoupled
You may or may not have noticed that, although “New Tweet” and “New Search Result” are two separate types of notifications in Growl, they are displayed together as part of the same stream of tweets.  This was good in that it kept everything together, but it was mostly bad because it reduced the flexibility you had in customizing displays and display preferences.

In 0.6.2 they are completely separate entities.  You can configure how many tweets appear on screen  at once separately from how many search results appear on screen at once.  You can browse all of your tweets before moving on to the search results.  And so on.

Higher Resolution Profile Images
By default, Twitter provides a profile image that is 48×48.  For Growl, this is usually sufficient. Most displays are small and don’t show anything higher res than that.  But some displays, as well as forwarded devices (like the iPhone or Windows Phone) are capable of showing larger images if they are provided.  So, Trowl now uses 73×73 pixel images – the “bigger” size, according to Twitter.  I’d like to bump this up to something larger, but that involves a little more testing.  But hopefully these slightly larger profile images will suffice for the time being.

.NET 4 Exclusive! – Location Support
What’s that?  .NET 4?  Yes!  There will actually be two versions of 0.6.2 – one for the usual .NET 3.5, and one for .NET 4.  If you are willing to take the jump (or already have), you will get a feature that is made possible by some of the new capabilities of the platform.  In this case – location.  It will require your computer to be equipped with a GPS device, or some other location-aware service, such as Geosense.  If Trowl detects this, you will get the ability to include your current location from the New Tweet screen – make sure you have enabled location for your Twitter account!

Various other bug fixes/code changes
The usual.


I think that’s it.  A preview version will be available for testing soon, so I’ll update this post when it’s up.  Thanks for using Trowl! And as usual, feel free to ask questions or suggest features on the Google Group.

Update: The preview versions are now available!

Tagged , , ,

Trowl 0.6 Preview

It has been a while, hasn’t it?

Even so, I’ve been working on Trowl, and I’m happy to make available the preview for Trowl 0.6.  So why 0.6 when the last version was 0.5.4?  Well, first of all: we’re talking about 0.0.6 of a version – does it really matter? ;)  But more technically, I’ve made a lot of changes, both to the code behind the scenes and to what you see in the behavior and UI of the app.  While a lot of the changes aren’t particularly groundbreaking, taken together I think they offer a substantial improvement to 0.5.4.

Plus there is a .NET Framework 4 version – but that’s coming later, so I won’t delve into that right now.

Before I give you the download link, I wanted to go over a few of the larger changes so you know what you’re getting into.

Backend Code
I mentioned that I made changes to the code that aren’t immediately obvious on the surface.  This includes changes with the Twitter API: some of the calls are updated, and I further refined how Trowl checks your rate limit.  There have also been changes to how Trowl parses the results it gets back from Twitter.  Finally, I’ve made some modifications to how notifications are sent and received from Growl.  Observant users will notice that I added the word “try” to the “show X number of notifications on screen at once” setting.  I’ve made this a bit more flexible to handle occasional lost notifications or other oddities.  So if you sometimes see more or less than your desired number of notifications, don’t freak out. :)

Different Growls for Different Accounts
A new advanced notification setting will force Trowl to register a separate “New Tweet” notification type for each of your Twitter accounts.  What does this mean?  Well right now, if you open Growl and look at Trowl’s notifications, you will see just one “New Tweet” notification type.  If you switch this setting on, however, it will create a “New Tweet” notification type for each of your Twitter accounts.  What’s the point?  By doing this, you can configure each account separately.  Want one account to forward to iPhone, and another not?  Want one account’s notifications to be sticky, but another to close automatically?  Now you have the power.

New Tweet
You can now use the hotkey CTRL-SHIFT-T to open the New Tweet window from anywhere. (Update: You can now toggle the hotkey option, as well as what the hotkey is.)  Also, some minor layout changes were made to this screen.  Finally, I added a button to let you switch between reply and retweet.  Why?  Well, have you ever accidentally hit “reply” instead of “retweet” or vice versa?  Or did you hit “retweet”, only to realize you’d rather do an “old style” retweet?  Now you can quickly switch between the two types right from the New Tweet screen.

Refined Catch-Up Tweets
For a while now, Trowl has offered the ability to show the tweets you “missed” while it was closed.  Using a special “while you were gone” notification type, it would show all the tweets you would have normally seen if you hadn’t quit Trowl.  You can now toggle this option to show all tweets, or just replies and mentions.  (Of course, if you already have the account set up to only growl replies and mentions, this toggle will make no difference.)

Refined Silence Mode
In previous versions, “Silence” mode would simply cause Trowl to stop checking for new tweets. When you turned Silence off, it would show all the tweets you missed while it was silent.  Now the default action is to not display any missed tweets.  If you still want it to do this, “show missed tweets” has an option to include Silence mode.

Related to the previous section, Trowl can now detect when your computer goes to sleep.  When it does so, you can have Trowl automatically go into Silence mode.  When it comes out of sleep, it will turn off Silence, and then show what tweets you missed, if you configured it to do so.

Settings Backup
A new button was added to make a backup of your settings.  It puts a file in a location that can be seen by all Trowl versions.  If for some reason Trowl loses track of your settings (usually after a version upgrade) it will look for a backup and restore from it.  You can also use the backup file to easily transfer settings to another computer, or do a manual reset if something bad happens.

… and more.  There have been lots of other minor changes and tweaks too.  This is actually a slightly more rough “preview” version than in the past.  So don’t be surprised if you find any bugs – just let me know in the comments here, or at the Google Group, and I’ll update this post with any bug fix versions as necessary.

So if you get a chance, please download and try out the preview version.  I look forward to any feedback you may have. Thanks!

Trowl 0.6 Preview

Tagged , ,

New Display: Metro

I’m going to try and keep this short and sweet so I can get this posted :)

A few weeks ago, it occurred to me that the typography-heavy Metro would work well as a Growl display.  Specifically, the Windows Phone 7 home screen had some potential to be an interesting layout.

I knew that I wanted the application name to be a large font and slightly “off screen”, like when you drill down into a section on the Zune.  The rest of the design was a bit harder to nail down though.  I played with a lot of different prototypes, including one that was almost a direct rip of the Windows Phone 7 home screen – blue boxes and all.  In the end, though, it was too much for something that was supposed to provide subtle notifications.

So I compromised and went greyscale.  I tried to retain the “blocks of information” style of Windows Phone 7, but not go too overboard with it.  At this point, I was still considering this display to be just a general-purpose display.  But as I thought about it, I realized the “blocks of information” concept would be wasted if it didn’t do more.  So I decided to extend it to have the same Twitter/Trowl functionality as my other, Twitter-based display.

A few weeks later, and lots of tweaking and fine tuning later, the first pre-release of the Metro-inspired display is ready.

Metro A couple of things to note:

You need the Segoe UI font for this to render properly. You might be able to use this display without that font, but I’m not sure how it would look.

Like TwitterDisplay, the Twitter features show up in Trowl, or any other app that decides to use the same sort of hooks.

This display has all the same features as the current version of TwitterDisplay.  In addition, it also lets you choose the corner of the screen you’d like the display to appear at.

This is a pre-release and may have bugs.  Feel free to contact me if you do have any troubles with it.  There are a few more things I want to add to this display before making it final.  But it’s in a final enough state now to offer it as a preview for those interested.

… And I think that’s it!  If you’d like to try it out, you can click here to install it automagically into Growl.  If you prefer the hard way, here is a direct link to the archive.  Extract it to a folder called “Metro” in your user folder where Growl’s settings and displays live (AppData/Local/Growl/ on my machine).


Tagged , ,

Trowl 0.5.4

With my little vacation next week, I’m probably not going to be able to get a preview version of Trowl out before leaving.  So I thought I’d do a little tour of some of the things to expect in the new version.

Continue reading

Tagged ,