Archive for Jabber

Psi 0.15 released

The final release of 0.15 is here! The website has been updated.

Individual language pack downloads will be restored once new instructions are translated.

Note: Psi 0.15 uses a new profile data format. Data from 0.14 and prior will be migrated to the new format when you run 0.15 for the first time.

Changes:
- Merge many changes from Psi+.
- New message history browser.
- New, fast contact list window.
- TURN proxying for voice calls.
- Store data in more standardized locations based on the platform.
- No longer dependent on the Qt3Support library.
- Domains ending in .local now always work, whether via DNS server or mdns.
- Windows 64-bit and Mac 64-bit now supported. Mac PPC deprecated.
- Legacy SSL port probe feature removed.
- Various small features and bugfixes.

Since 0.14, this version contains about two years worth of merges from the Psi+ project. Thanks to Rion and Dealer_WeARE for diligently keeping the Psi source repo current all this time.

Comments (1)

Psi 0.15-rc3 released

The third release candidate of 0.15 is available.

Note: Psi 0.15 uses a new profile data format. Data from 0.14 and prior will be migrated to the new format when you run 0.15 for the first time.

Changes:
- Merge many changes from Psi+.
- New message history browser.
- New, fast contact list window.
- TURN proxying for voice calls.
- Store data in more standardized locations based on the platform.
- No longer dependent on the Qt3Support library.
- Domains ending in .local now always work, whether via DNS server or mdns.
- Windows 64-bit and Mac 64-bit now supported. Mac PPC deprecated.
- Legacy SSL port probe feature removed.
- Various small features and bugfixes.

Since 0.14, this version contains about two years worth of merges from the Psi+ project. Thanks to Rion and Dealer_WeARE for diligently keeping the Psi source repo current all this time.

Schedule:

Oct 3rd: Final

Comments (1)

Psi 0.15-rc2 released

The second release candidate of 0.15 is available.

Note: Psi 0.15 uses a new profile data format. Data from 0.14 and prior will be migrated to the new format when you run 0.15 for the first time.

Changes:
- Merge many changes from Psi+.
- New message history browser.
- New, fast contact list window.
- TURN proxying for voice calls.
- Store data in more standardized locations based on the platform.
- No longer dependent on the Qt3Support library.
- Domains ending in .local now always work, whether via DNS server or mdns.
- Windows 64-bit and Mac 64-bit now supported. Mac PPC deprecated.
- Legacy SSL port probe feature removed.
- Various small features and bugfixes.

Since 0.14, this version contains about two years worth of merges from the Psi+ project. Thanks to Rion and Dealer_WeARE for diligently keeping the Psi source repo current all this time.

Schedule:

Sep 24: Final

Comments

Announcing Fanout.io, the versatile push service

I want to let everyone know about my new project, Fanout.io. I’ve been working on it since last October, but it is now ready for real use.

Basically it’s a CDN service for outbound XMPP or HTTP traffic. For example, suppose you’re building an XMPP service that may have a lot of instantaneous outbound traffic (e.g. a pubsub service with many subscribers). Instead of trying to send a thousand stanzas yourself from a single server, you send a single stanza to Fanout, and it will delegate the transmission to a set of worker servers that each handle a slice of the deliveries.

It’s also got some really good HTTP stuff, for those that need it, like webhooks and long polling. Your one stop shop for scaling push.

Full announcement on the Fanout Blog.

If you’re working on any kind of website or app that delivers data in realtime, be sure to check it out. I hope that if Fanout is successful then it will enable me to put more resources into Psi and other interesting projects, so your support is welcomed and encouraged. :)

Comments

Three years later, a new Psi

The latest development cycle has been a tough one. While Psi releases have never been exactly punctual, the time gap between 0.14 and 0.15 is surely the longest yet.

It’s easy to blame this long cycle on my inability to contribute much since early 2010, but it’s not as if contribution in general was lacking. The Psi+ project has remained steadily active, and a couple of years ago we gave commit access to Sergey (Rion), one of the Psi+ founders, and then later on to Khryukin (Dealer_WeARE), another Psi+ developer. Together, they have been merging changes upstream from Psi+ to Psi all this time. I’m amazed at their dedication, having maintained both repositories for years even though Psi had no clear roadmap or release plan. They are choosy about what to merge, too. Many traditional Psi users regard the Psi+ application as a scary patchfest, but the Psi+ developers are no fools. Sure, they enjoy a bleeding edge app, but they also know what’s ready and what isn’t, and only the stuff that is ready finds it way back into Psi. For better or worse, Psi+ is where the action is, so get used to their code being the basis of new Psi releases.

This isn’t to say there haven’t been non-Psi+ contributions to 0.15. A big one is TURN proxy support for voice calling. You can set up a TURN server, and finally put an end to voice call connectivity problems. This feature was actually implemented just after Psi 0.14 was released, back when I was working at Barracuda Networks. Finally it sees the light of day! Additionally, Michail (mblsha) merged his rewritten contact list code. It uses the Qt 4 model stuff. You can select and drag multiple contacts now, and it should be a lot faster too. This new contact list code, along with some other changes (like the rewritten history window), helped us transition away from Qt3Support at long last. This was primarily important so we could compile against the Cocoa version of Qt/Mac. Of course it’s also nice to be relieved of having to link to unnecessary libraries like QtSql. Either way, it’s about time we officially got off of Qt 3. Seriously. Qt 4 has been out for like 7 years, and Qt 5 is just around the corner. Seeeeriously.

So if we’ve had features in the queue and regular contribution, why the hold up? Well, the real reason it has taken so long to get 0.15 out the door is because making a Psi release is just plain hard. Particularly with the introduction of GStreamer as a dependency since 0.13, a considerable amount of compilation judo is needed to produce official binary packages. Psi has some 20 dependencies. Keeping these current, and producing builds for both Windows and Mac takes more than a passing familiarity with the project. We got by when I was at Barracuda because it was my day job to make this stuff happen. I was also provided various build machines. These resources are now gone (which included a PowerPC Mac, which is one reason why Psi 0.15 is not available for PPC, not that anyone cares). In order to produce Psi builds again, I needed to recreate the environment I had at Barracuda. Actually, I needed to do it one better: I needed to automate as much as possible so that not only Psi but dependencies could be maintained using minimal brainpower. It needed to be possible for me to push a single button and get a release, with no arcane steps that I’d soon forget the moment I switch focus away from Psi.

In March of this year, I set out to build this magical solution. The result is a new repository, psideps, which handles the building of dependencies, as well as some additional scripts in Psi’s own repository to simplify building Psi itself. It’s all a bunch of bash scripts and makefiles, and fairly straightforward. The devil is in the details though. Most dependencies required patching to build properly, and a lot happens in three years. Growl went payware. Ndhotkeyevent only built with clang. Glib atomic operations got broken on Mac. GStreamer had some critical regressions. Build patches were numerous. Psideps has 24 .diff files, and that’s not even including any ad-hoc sed crap I do to some of these packages. My favorite patch is the one where I slow down certain configure scripts (by injecting sleeps) because they execute too fast on MinGW and cause random failures. Also, people expect 64-bit builds these days, so the scripts do multiple passes, and of course all that fun install_name_tool stuff in Mac’s case. It’s not like all dependencies built cleanly in 64-bit either. I mean, that would have been too easy. Getting this all correct took patience. Builds take a long time, especially in VMs. Suddenly, the Windows build of some dependency breaks. I fix that, but in the process break the Mac build. No wait, it’s only the 64-bit pass on Mac that I broke, so I’ll need to fix in a way that doesn’t break 32-bit. This is build failure whack-a-mole. Rebuild again. Wait 30 minutes again. Curse all of these dependencies of which I am not an author… again. Finally, everything builds in every combination and there is harmony. All in all, it was a lot of time spent, and hardly any of it was on Psi itself. I did use the past couple of weeks to shake out bugs and get Psi into a release quality state, but all other time since March was put towards build automation. I am quite sick of watching compilations at this point. However, this work was hugely important. The notion of building a Psi release has gone from something completely unapproachable (by its own founder!) to something one might do while sleeping.

Lately I’ve been wondering where to go from here. Originally, Psi was created to suit myself and other IM geeks. It became a bit more than that, though, inadvertently becoming a flagship XMPP client of sorts, and there were a run of sponsored forks promising greater user-friendliness. I’d like to think Psi helped further open IM in general, and for awhile this was my major motivation. However, nowadays XMPP is everywhere, and implemented in some pretty amazing clients. Most people I know use Adium, iChat, Pidgin, Gmail, etc. Empathy/telepathy is taking over desktop Linux. What role does Psi play in this world, where XMPP has already won? I’m happy to report that since 0.15 Beta 2, Psi has already been downloaded over 8000 times from SourceForge. That’s in just two weeks. I guess the role it plays is an app that many people seem to like. :) Perhaps that is good enough, and we can put the MSN-looking forks and world domination plans to rest. Psi has its niche.

Even after all this time, I still love hacking on Psi, and the challenge has always been balancing it among my other responsibilities. Now that we are on track to be able to produce releases again, I hope we can return to a routine again of releasing semi-regularly, even if it continues to just be patches from Psi+. ;)

Enjoy.

Comments (5)

Psi 0.15-rc1 released

The first release candidate of 0.15 is available.

Note: Psi 0.15 uses a new profile data format. Data from 0.14 and prior will be migrated to the new format when you run 0.15 for the first time.

Changes:
– Merge many changes from Psi+.
– New message history browser.
– New, fast contact list window.
– TURN proxying for voice calls.
– Store data in more standardized locations based on the platform.
– No longer dependent on the Qt3Support library.
– Domains ending in .local now always work, whether via DNS server or mdns.
– Windows 64-bit and Mac 64-bit now supported. Mac PPC deprecated.
– Legacy SSL port probe feature removed.
– Various small features and bugfixes.

Since 0.14, this version contains about two years worth of merges from the Psi+ project. Thanks to Rion and Dealer_WeARE for diligently keeping the Psi source repo current all this time.

Schedule:

Sep 17: Final

Comments

Livefyre: the future of comment sections

Comment sections on today’s blogs and websites use antiquated technology.  It’s all more or less the same stuff that has been done a decade ago, just with an emphasis on cloud services (see Disqus, IntenseDebate, etc).  Livefyre offers a next-generation commenting platform.  It also happens to be a cloud service, but that’s its least noteworthy aspect.

With Livefyre, comments feed into the page live with no refresh needed.  The system is social: you follow friends and topics, and get notifications when interesting things happen across the web (e.g. “Your friend Julia has just commented on the article ‘The Internet Needs More Cats.’”).  We also do things like keep track of every user’s reputation for automatic moderation, and drive traffic to other bloggers based on user interest.  We want to shift website comments from being silo’d and disconnected, where hardly anyone knows who is leaving what comments and on what websites, towards a highly connected and social system, where website comments become as relevant to people as their Facebook news feed.

And yes, it is powered by XMPP.

Check out the Livefyre website, and be sure to read the TechCrunch article.

Comments (14)

Psi 0.14 released

Psi 0.14 is here!  The website download area has been updated.

New in 0.14
- Added color options to the chat window.
- Can now specify a reason for kick/ban in groupchat.
- Improved User Info window, to show more fields and photo view/save.
- Support for Enchant as an alternative to Aspell.
- Commandline interface now supports choosing profile and setting status.
- D-BUS interface now supports setting status and indicating sleep/wake.
- Fixed voice calling compatibility bugs with Pidgin and Empathy.
- Various other minor improvements and bugfixes.

Comments (5)

Psi 0.14-rc3 released

Psi 0.14-rc3 is here!  Please download and test.

Final on December 2nd if no showstoppers are found.

New in 0.14
- Added color options to the chat window.
- Can now specify a reason for kick/ban in groupchat.
- Improved User Info window, to show more fields and photo view/save.
- Support for Enchant as an alternative to Aspell.
- Commandline interface now supports choosing profile and setting status.
- D-BUS interface now supports setting status and indicating sleep/wake.
- Fixed voice calling compatibility bugs with Pidgin and Empathy.
- Various other minor improvements and bugfixes.

Comments off

Psi 0.14-rc2 released

Psi 0.14-rc2 is here!  Please download and test.

Final on November 25th if no showstoppers are found.

New in 0.14
- Added color options to the chat window.
- Can now specify a reason for kick/ban in groupchat.
- Improved User Info window, to show more fields and photo view/save.
- Support for Enchant as an alternative to Aspell.
- Commandline interface now supports choosing profile and setting status.
- D-BUS interface now supports setting status and indicating sleep/wake.
- Fixed voice calling compatibility bugs with Pidgin and Empathy.
- Various other minor improvements and bugfixes.

Comments off

« Previous entries Next Page » Next Page »