qTwitter 0.10.0: no idea

November 2nd, 2009

Don’t know what to write here, let’s be brief and concrete this time. qTwitter 0.10.0 is out. It brings some new handy functionalities, like:

  • mentions timeline (no shit! should be there half a year ago :P) that is merged together with the friends timeline,
  • automatic tagging thingy – it converts your selected words into #hashtags and it’s smart enough not to touch URLs and StatusNet !groups,
  • improved URL shortening – now shortening all the urls in a status at one go, plus comes with a customizable shortcut,
  • notifications fixed to notify about new statuses AND NOT unread ones,
  • fixes in parsing URLs in statuses (kudos to Stephan Beyer).

Plus some code clean-ups, build system fixes, and so on. I provided some initial plugin interface, but I don’t really want to talk about it in public yet, as it’s immature, not ready and you won’t do too much with it at the moment ;) but it allowed me to write two extensions already, and they seem to be working fine so far.

So, qTwitter is here. Precisely, here. Happy twitting!

BTW. qTwitter 0.9.2 and QOAuth 1.0 stable in Gentoo Portage since a while ago :)

Few weeks ago I was about to start working on qTwitter 1.0-like but then I got a bit busy with life and I ended up bugfixing 0.9.0 release. And that was even better idea. I received some complaints (still not too much – this surprised me a bit) about qTwitter crashing after an update. That’s because I wanted very much to provide seamless config file conversion between versions. In theory it should work, but there were a few gotchas, causing a real mess from time to time.

Starting from 0.9.1, all the accounts settings from <0.9.0 versions are deleted and users have to setup their accounts once again. I know that's not polite, but I want to avoid mysterious config-related crashes, and still, I bet that accounts settings can be recreated easily and quickly :)

Then I thought about some small but nice improvements here and there. And in addition I received several requests for providing more flexibility to various features. All in all, starting from 0.9.1 you get:
  • configurable tray icon visibility (always vs. when minimized),
  • configurable close button behavior (hiding vs. closing),
  • dock icon in OS X—comes together with the unnecessary menu bar, but still it’s better to have qTwitter available under ⌘+Tab,
  • in KDE 4.3 notifications displayed using Plasma visual notifications engine,
  • on X11-compatible platforms only one instance of the application can be created,
  • Norwegian translation (by Egil Hanger, the guy that also suggested some changes – thanks!).
And in 0.9.2, which came exactly the next day after 0.9.1:
  • all connections to Twitter and Identi.ca use SSL encryption,
  • Norwegian translation is complete (I failed on updating the file for 0.9.1),
  • when you remove all Identi.ca accounts, the Identi.ca URL doesn’t disappear making Identi.ca unusable.

And one important thing: the support for basic authentication for Twitter was discontinued in qTwitter 0.9.1. Now it relies on OAuth (and QOAuth) and I hope I’m not making a mistake. OAuth is here from July, it seems to be working fine now, there were no complaints about it and I’m quite happy with it. Let’s hope things don’t get broken now :)

Download qTwitter 0.9.2 qt-apps.org if you didn’t do it yet, or get the source from github. Enjoy!

!qtwitter at Identi.ca

September 13th, 2009

Okay, I guess the time to benefit from the whole Identi.ca’s goodness has come also for me. I created a group for qTwitter users, info, news and anouncements. Also wishes, complaints, and whatever you like. So join !qtwitter now and be the first to receive updates on your social networking client :)

qTwitter 0.9.0: all hail StatusNet

September 11th, 2009

New qTwitter is here. This time it was (again) about rewriting some significant part of code, all of this in order to give support for StatusNet (former laconica) based services other than Identi.ca. So now every TwitArmy, BrainBird, Mozillaca and what not is working with qTwitter, with the functionality dependent on version of StatusNet software they use (it’s not always the newest one like in Identi.ca).

The changelog for 0.9.0 release is as follows:
  • left/right arrow key goes to next/prev unread status (by Stephan Beyer),
  • status author’s display mode made customizable (name, nick or name+nick),
  • added parsing StatusNet groups (!sth),
  • fixed unwanted ‘new statuses’ on the bottom of the list (#63),
  • applied system palette to status edit field (#61),
  • added (awesome!) Czech translation (by DragonJake – #62),
  • added b.oooom.net URL shortening (by dubkat – #57),
  • improved storing data between sessions,
  • improvements in Twitter API library,
  • numerous minor UI, performance, architectural and build system fixes.

Also, the automatic check for updates module seems to display the above changelog for 0.8.3 users, and encourage them to visit qt-apps.org to get the new version. Enjoy! :)

Just a note here, since QOAuth was updated to 1.0 and its API changed almost completely, there was a need to change how it’s used inside qTwitter. By the way I fixed an issue with sysmacros.h (#56) that might have occurred on some configurations, and also fixed the statuses updating when closing settings dialog. Settings dialog now triggers lists refresh only when the accounts were changed. It worked some versions ago, but then stopped with changes I’ve been applying over time, and I was reluctant (namely, too lazy :P) to fix it.

I’d really like it to be the last release before 0.9, so that I could now concentrate on messing with the code to extend functionality, and not having to constantly update qTwitter in order to follow changes in Twitter’s OAuth authorization (like it was for 0.8.1 and 0.8.2). qTwitter 0.8.3 is here and, as I said, requires QOAuth 1.0 from here. Hopefully my packages work :P

Just a small note here – Twitter guys are messing around their OAuth authorization flow and they improved something that broke the current qTwitter. The problem was (and, well, remained) quite mysterious, because URLs produced by qTwitter to access user’s data worked e.g. with curl and didn’t work with qTwitter itself. This was solved by switching to another authorization method from provided by OAuth.

By the way, the Identi.ca support was enhanced by the ability to disfavor statuses. This was recently introduced in laconi.ca. Also the annoying bug with recognizing status as URL link in some situations was fixed.

qTwitter 0.8.2 is available from qt-apps.org :)

From what I see and hear, the OAuth support seems to be working fine in qTwitter. But then the day has come when Twitter changed their OAuth PIN length – that one entered in application to confirm its authorization for the account. Since I was pretty sure that this is not likely to change (at least not without a notice), I put tight restrictions on the input field for the PIN number in qTwitter 0.8.0. And now, when the PIN is 7, and not 6 digits long, there’s actually no way to authorize the application. To follow Twitter’s changes, I allowed putting more than 6 digits to the PIN input field. Grab your own qTwitter 0.8.1 from the place.

Here comes the new, fresh qTwitter! As Twitter is slowly switching from basic authorization scheme towards OAuth, the client applications should follow the change. The support for OAuth was the main milestone for qTwitter 0.8.0, and here it goes. It’s basing on the QOAuth library, which uses QCA and stuff and introduces, uh, dependencies, but in the same time it ensures far higher security for Twitter accounts.

What does it mean for the user? You’re not going to be asked to give your Twitter password inside qTwitter. Moreover, qTwitter won’t ever know your password and store it anywhere. Instead it will be given a unique token, which combined with it’s own token issued by Twitter (and with some other info like the current time and a totally random text string) will be used to request your account’s data from Twitter. How will qTwitter get the key? It will open a browser with a special Twitter login page, where you would be able to authorize it to access your data. Cutey, isn’t it?

Apart from this big thing, other smaller features have been added. This time I put some effort into finishing what was started some time ago and abandoned for some unknown reason (was it my laziness? hm…). Anyway, here’s what comes with the new qTwitter:
  • automatic (or not – it’s fully confgurable) checking for available updates,
  • storing statuses lists together with their read/unread states between sessions,
  • improved look and feel, meant by revisiting themes, colors, sizes, layouts, fonts, ...

The public timeline support was dropped, because it “was decided” that it’s not the most wanted feature on Earth. And since it was making some additional mess inside the code, I was just purely happy to remove it. Thanks :)

As for new contributions, this time Thúlio Costa came up with support for migre.me URL shortening service, and Faster provided Italian translation. Thanks a lot guys!

qTwitter 0.8.0 is available from qt-apps.org (no shit, Sherlock…), but hah! It’s not so trivial this time. As I mentioned, OAuth support, although done by me, is an external package, and both Debian/Ubuntu and Fedora will ask for libqoauth before allowing you to install qtwitter. Then the QOAuth library is available from… qt-apps.org. Thank you qt-apps.org, you rock!

I tried to do my best at packaging and it seems to be working, but don’t hesitate to contact me in case of any troubles.

And finally, note that the OAuth authorization is now a preferred scheme for qTwitter, although for those of you that insist on using basic authorization (or not pulling in more dependencies than Qt itself, or whatever) a possibility of compiling qTwitter without OAuth support is given. To do this, get the sources (e.g. from the above-mentioned Qt applications portal or GitHub), and comment out a define in qtwitter.pri:

  1
DEFINES += OAUTH #comment out to disable OAuth

That’s it. Enjoy qTwitter!

Ok, I must admit that I forgot about the whole thing, so called Twitapocalypse. According to what was predicted before and happened a few hours ago, qTwitter 0.7.0 is not updating timelines correctly. A small patch fixed this unwelcome behavior and it was instantly applied, making qTwitter 0.7.1. So please update your app to the newest version that deals with huge IDs of Twitter statuses. Get it, as you always do, from qt-apps.org. Apart from the fix, in 0.7.1 release you’ll get support for digg.com URL shortening service and some look and feel corrections concerning the user info popup dialogs. Happy tweeting :)

The time has come (or I just couldn’t wait any more) to give out fresh new qTwitter app. After 1.5 months of sleepless nights (btw: curse you, Finnish summer :P) I’m happy to welcome Identi.ca onboard. Apart from support for getting updates from and posting new ones to Identi.ca, additional missing features were provided, such as:

  • favoring and disfavoring statuses,
  • sending, replying and deleting direct messages.
  • user info popups,
  • recognizing hashtags.

User interface was significantly improved — three context-sensitive icons now allow for quick performing the most common actions on tweets and messages. The accounts settings page was revisited, compacted and made usable. Of course still no one will know that Ctrl+J shortens links :P Oh, by the way — URL shortening support was extended by 3 additional services, including my favorite tiny➡s!

Speaking of “computers”, the newest release needed a huge amount of code to be reorganized to provide better user experience of switching between currently displayed accounts. This allowed also to avoid some very uncool memory leaks. Another significant, but smaller amount of code was added in order to get Identi.ca working — laconi.ca’s Twitter-compatible API is being used and the support is well integrated inside libtwitterapi in order for others to be able to make use of it.

And from here I must give giant thanks to everyone involved in development, i.e. wiorka and wijet, and Flavio which made an effort to give qTwitter a decent look and feel on Maemo platorm. Thanks goes also to all translators, especially to Márcio Moraes and Alvaro Ortiz for fresh new Portuguese and Spanish translations.

Get your own qTwitter now from usual places — qt-apps.org for packages, github.com for sources. Enjoy!

I’m incredibly proud to announce that as of April 30th, as stated here, qTwitter oficially becomes a part of the main Gentoo GNU/Linux Portage tree. So from now on, installing qTwitter in Gentoo is as simple as typing:

$ emerge qtwitter

For those who prefer to have the most fresh version, a live ebuild is still available in layman’s qting-edge overlay.

Huge thanks to Markos Chandras from Gentoo KDE team for testing qTwitter on Gentoo and committing it to the main Portage tree.

It’s been a while since qTwitter 0.5.0, but I hope the list of improvements and new features can make up for that time. So now with qTwitter we get:

  • support for using multiple accounts,
  • integrated support for URL shortening, using the most popular services,
  • more intuitive interface, including configurable notifications and warning dialogs, keyboard shortcuts for virtually every action in the application, and an animated icon showing update progress,
  • more translations – added German, French and Japanese ones.
  • tons of bugfixes (changelog covers most important ones).

Two people joined me lately to create the development team, welcome wiorka and wijet!
Huge thanks goes to:

  • translators – DarkAdmiral for the German translation, Maciej Dębiński for the Japanese and both wiorka and Harry for the French one,
  • testers – Harry and PMG for finding and reporting tens of issues.

Also, a bug tracking system was launched some time ago, so everyone in a need of filing a bug report or requesting a new feature is warmly welcome to visit qTwitter’s Lighthouseapp.

As for coding, there is a prototype of a Qt library for connecting to Twitter, sending requests and processing server replies. qTwitter 0.6.0 is now interacting with Twitter through this library. Both qTwitter and libtwitterapi are licensed LGPL and can be reused according to this license.

qTwitter 0.6.0 can be obtained from usual places:

  • qt-apps.org, available for Windows, MacOS X and most popular Linux distros,
  • Gentoo users can install net-im/qtwitter from layman’s qting-edge overlay.
  • Code for qTwitter and libtwitterapi can be simply checked out from GitHub:
    git clone git://github.com/ayoy/qtwitter.git

Happy twitting! :)

TwitPic hits qTwitter

March 11th, 2009

I’m happy to present you fresh qTwitter 0.5.0. It now incorporates TwitPic API support, so you can instantly upload photos you want to share and post them to Twitter with JUST ONE CLICK! And it really works:

In addition, qTwitter now knows when you’re posting a reply, and adds in reply to <username> on Twitter page. Some fixes were also applied — one of them submitted by Bryce Verdier (bryceverdier AT gmail — thanks for your help!). You’ll find details in changelog.

Get qTwitter 0.5.0 now from qt-apps.org, or if you want to take a look at the code, get it from GitHub. Happy twitting :)

Indeed, here comes the new qTwitter. Mainly a bugfix release, but there were some annoying issues that couldn’t wait to be fixed. Details are covered in changelog, as always. And I finally went for documenting things. All in all, I’m happy to announce qTwitter 0.4.1. Available from usual places, such as qt-apps.org or GitHub.

There’a also one more thing I’d like to share — my tiny contribution for QtCreator:

I have to say that it’s a pleasure to me to help promote Qt and QtCreator, and I really really owe Alexandra from Qt Software for contacting me about the whole thing. Thanks!

Introducing qTwitter

February 27th, 2009

Ok, it’s high time. I’d like to present you my first app shown to the world. qTwitter is a Twitter client written in Qt. The current version is 0.4 and it seems to be pretty stable at the moment. It is based on a http connection to the Twitter REST API, parsing the requested XML data and displaying processed info in a list pimped with customized item widgets. As for usability, it provides:

  • getting public or friends timeline + (optionally) direct messages,
  • posting (including replying and retweeting) and deleting updates,
  • being recognized as a source of updates,
  • UI color themes,
  • HTTP proxy support,
  • translation to Polish, Catalan and Spanish (poor ones, but anyway),

and it looks more or less like below:

It’s actually my first complex decent application in Qt, and in the same time a thing thanks to which I learnt a loooooot of Qt — and I still do. Concerning the code itself — I realize that it’s pretty messy at the moment, but I’m still working on cleaning it up so that it can be easily understandable. The source code for qTwitter is hosted on GitHub, and the app is also available as a binary for MacOS X and several Linux distros at qt-apps.org ← you’ll find there more information as well as the full changelog. Go and check it out now!