Adium

Archive for October, 2007

A/V Questions Answered

Monday, October 29th, 2007

With all the seemingly unanswered questions from the last post, I thought it would be prudent to follow up more than just in the comment thread.

Will it run on Tiger?  As previously stated, it will be Leopard only.  I wanted to include Tiger if possible, but the more we looked into it, Elliott made it clear that this would not be a realistic goal.  As nice as it would be, it would have done nothing more than to draw this project out twice as long and frustrate ourselves as well as our users.  There was simply no choice, it had to be done for the sake of doing what was best for the project.

Peter adds: Specifically, we’re using the QTKit Capture API. That API is new in Leopard; it never existed before. To support VV on Tiger, we would have to implement capture twice: once using QTKit Capture, then again using the older, uglier Sequence Grabber. Considering that Sequence Grabber isn’t long for this world (all the old QuickTime APIs are deprecated), we decided to focus entirely on QTKit Capture.

What protocols will be supported?  Our goal is to support all major protocols, including but not limited to, AIM, Yahoo!, MSN, XMPP (GTalk/Jabber).  That being said, our primary goal is to provide the same support as iChat since those protocols seem like they may require the most work.  As we mentioned in the last post, Farsight has plugins for MSN and Yahoo! that may greatly ease our support of those two (although we haven’t gotten to that point just yet.)

What about support for Skype?  Unfortunately this is something we are completely unable to do at this point in time.  Skype is also a closed protocol.  If it were an easy thing to break, other apps would have supported it long ago.  This doesn’t even take into account that there are also some VERY serious legal issues in regards to this.  There has been a lot of discussion about this in the open source community and the lawyers involved have all recommended staying far far away from it.  There are some individuals out there that are working on their own plugins to at least allow you some text capabilities with Skype but they are not affiliated with our development team and we wish them the best.

What is the current state?/Can I run this right now?  No, it’s not functional yet.  The majority of the work right now is going into the back-end technologies that will provide the support for everything else.  Those are making significant progress and are getting close to being where we need them to be to move on.  The capture code IS working.  The screenshots you saw showing a picture were real, it was simply the UI itself (the input selectors and levels) that was photoshopped to show what we’re thinking about right now.

Audio chat for GTalk will probably be the first working feature.  Once we have that working we’d like to put out an alpha to get some more people testing the new code as we continue to progress with the rest.

It certainly won’t be ready soon.  It will most likely still be several months until everything works properly and lives up to our own high standards.  We simply wanted to let everyone know that yes, we really are working on it and we have made a LOT of progress.  I can’t emphasize that enough.  The progress made so far has truly been awesome.  I know there are doubters because everyone has heard it before, but it is DEFINITELY becoming a reality.  It would be foolish of me to give a firm deadline because there’s no way to know.

The reason we chose to bring everything out in the open now is because we were using some Leopard specific features and thus bound by the NDA to keep it from the public.  We’re excited about the work we’re doing and the progress we’re making and thought that you guys would be as well.  We really appreciate all the support that you guys are giving us.  Also don’t forget, if you think you might be able to help, certainly get in touch with us, we’d definitely appreciate it!

Happy Leopard Day!

Saturday, October 27th, 2007

Well everyone, we’ve got some great news. A lot of you have been asking about audio and video chat for a while, and have been really frustrated by our response of “It’s coming.” We’ve been hard at work trying to make this a reality, and today we’re excited to give you an update on our progress, and to show you where things will be heading in the future.

Around the end of July, a team was put together to begin working on integrating audio and video chat into Adium. This is a herculean effort, as it requires the cooperation of several people from both Adium and Pidgin to accomplish, as well as the use of several new external libraries to facilitate a variety of tasks. The team has worked extremely hard over the past four months under the leadership of Eric Richie, and we are extremely happy to finally be able to tell you what we’ve been up to.

First up, a large number of changes to the Adium build system are in order. Augie Fackler and Elliott Harris have been heading up the effort to create a more flexible and powerful build system at the core of the Adium build process, allowing us to integrate a number of new libraries using their native build systems with ease. It’s important to us that all of these new external dependencies can be easily upgradeable given that many are currently under active development. These are all anchored around the use of the Farsight and Gstreamer projects to implement various capabilities at the Libpurple level. We are rapidly approaching the completion of this build system, and hope to integrate it into Adium trunk as soon as it is done and thoroughly tested.

Next, we have to make a number of additions to Libpurple itself. Luckily, we aren’t alone in this endeavor; Sean Egan and the rest of the Pidgin team are working closely with us on integrating AV capabilities into Libpurple itself. These new functionalities are being developed in a new branch of Pidgin, and development will continue as we improve our support for AV-capable protocols. So far, GTalk receiving audio has been implemented into the Pidgin voice and video branch, however it is largely untested as no client has actually tried to use the code to this point. We are aiming to be the first.

“What about AIM!?” you say? Great question. Our very own Alan Humpherys has been hard at work on extending Libpurple for AIM AV, and we hope to begin merging that work into the Libpurple voice and video branch as soon as possible. In addition, Farsight has some support for Yahoo and MSN, which will surely be our foundation as we move forward on those protocols.

Finally, we have a lot of work to do to Adium itself. These efforts have been headed by Elliott, with tons of help coming from other members of the Adium team, who’ve been hard at work designing all of the things that we need client-side for AV to function. This includes things such as the user interface, local video preview, and bridge code between Adium and Libpurple. In addition, we will be writing our own Gstreamer-based code to facilitate the bridging, and hope to commit those improvements as far upstream as we can. Right now, we’ve got several mockups of the interface which you will find below.

All in all, we’ve made an amazing amount of progress over the past few months, and we’re confident we will continue to do so. Today, we are making all of the work we’ve been doing completely public to anyone wishing to help out. You can follow our progress in the branch located at:

svn://svn.adiumx.com/adium/branches/adium-2.0-vv/

You’ll notice, of course, that we’ve denoted this as Adium 2.0 – and for good reason. These changes will anchor a large amount of new technology being implemented. The entire team is looking forward to this monumental push forward for Adium, Pidgin, and all projects that use Libpurple.

Of course, we always welcome help, and encourage everyone that can lend a hand to do so. You can find all the information you’ll need on our wiki, and you can contact either of us directly to get a better idea of where we’re at as well as where your help is needed most.

As is usual, there is no way to tell when you’ll have it in your hands, but trust us when we say that we want it just as much as you do, and we’re confident that once it’s ready, you’ll absolutely love it.

Enjoy the pictures and thanks for reading,

Eric and Elliott.

Some Fun Features in 1.2

Wednesday, October 17th, 2007

Hey folks. A recent discussion on the development list about blogging has sparked me to write about some of the new things in 1.2 that I’ve been working on. You can partly blame Colin for this. Enjoy!

Status Item

One of the fun features of Adium is the status menu item, often referred to as the “Evil Menu Duck” (or EMD). It’s the little duck that sits in your menu bar and tells you all kind of information about your status. Coming in 1.2 is a bunch of additions and changes to the little guy.

 

The most obvious change is the inclusion of a Contacts list, which lets you quickly message contacts without having to go to the contact list itself. It shows the contact’s status and user icon next to their name.

You can also hold option while clicking on the status item (as shown in the second image) to just get the contacts menu on its own. Very quick, very easy access to your contact list.

As you can see, there have also been several other changes to it. The menu bar now tells you how many unread messages you have (in this case, I have 1, from myself). Open chats also have the user’s icon instead of their status icon, and tab-order is respected in their list.

Account-specific status has been moved to a sub-menu if you have more than 1 account. From the accounts submenu, you can quickly open the accounts list (you’ll see why you’ll want to in a bit).

In cleaning it up, I’ve also removed a few of the items that used to be there. “Bring Adium to Front”, “Show/Hide Contact List” and “Quit Adium” are all gone. I don’t think they were used often enough and were making the menu a lot more cluttered. You can open the contact list quickly by clicking “Contact List…” in the Contacts menu.

Menu Bar Icon Xtras can now specify whether or not the “unread content” icon flashes on and off. This makes catching your attention a lot easier when you get a new message. We’ll be including a more flashy (and colorful) version of the Adiumy menu bar xtra to complement the current one with the release of 1.2.

Accounts List and Reconnecting

The other major project I’ve been working on is making account connection status a lot easier and more obvious. Accounts will no longer give up trying to connect to the server, but will instead attempt to (at an exponential decay) connect indefinitely. Of course, things like invalid passwords, signing on at another location and rate limiting will stop the reconnect attempts.

 

Most accounts have steps for logging in, such as “Connecting”, “Authenticating”, “Sending Password”, etc. Previously we’d drop the information; now it’s displayed inline in the accounts list. Error messages are also shown in the same location. When the network isn’t available, the account will be labeled as “Network Offline”.

You can right-click on any of the accounts to quickly change their options or set their individual status from inside the account list. I’ve also added a new command to the File menu that is “Connect All Accounts”. Early in the 1.0 beta, setting an online status would connect all offline accounts. This behavior was reverted, but an easy way to connect offline accounts was never reintroduced.

In my testing, I’ve had no situations where an account doesn’t somehow manage to get back online when disconnected.

 

Of course these aren’t the only changes that can be found in 1.2. Lots of work has been put into it so far, and the finished product is going to be quite nice. Oh and MSN users, get ready for some fun new features (yes, working personal messages is one of them). :-)

Congrats to Zac West!

Thursday, October 11th, 2007

Congratulations to Zac West, previously the Adium team’s webmaster and a trusted patch writer, on becoming a full Adium Developer! We’re thrilled to have him on the team :)