Powered By:
Clearspace
BlatherSource: Because development won't keep quiet

Daniel Henninger's BlatherBlog

4 Posts tagged with the openfire tag
0

You may have seen, in the past, my podcast about External vs Internal Gateways.  In that podcast I talked about a number of benefits that internal gateways have over external gateways.

 

It's not all peaches and cream though.  You see, the problem with being so close to the internals of the server with internal gateways is that you tend to hear and trigger far more than you intend.  I'm going to pick on Openfire a little here since that's what the IM Gateway plugin is using.  Some of these may simply be something that should be fixed in Openfire.  Being one of the developers of Openfire, yes, I will investigate them when I can.  =)

 

One of the issues is, when a roster item changes, I actually get a number of listener events that tell me this occurred.  It's difficult to know what the proper event is.  In some cases, I'll get an event with no groups and then another event with groups.  Hard to know which one of those is true.    All things that I need to run through and make sure I'm doing things correctly.

 

Likewise, any time I tweak something about a roster item, I get events telling me it's changed.  Yes, I'm aware, I just did them.  =)  So in that case I need to ignore events.

 

It's all very strange actually.  I switched to listening for packets for real IQ packets coming from the client.  Guess what, there's a lot of IQ packets that come from the client.  So that's not really making things easier.  In XMPP, groups don't mean as much.  Removing and readding groups is nothing big.  In AIM and friends though, it's dire.  You remove groups and you've moved things around on your roster a lot.  This is primarily because in XMPP, you have a roster item, and an attribute of it is what groups are in it.  In AIM you have groups, and an attribute of a group is who's in it.  (for nitpickers, I'm referring to attribute here as "something the entity contains",  not attribute in the literal XML form of the word)

 

So if you were thinking, wow, internal gateways sound so easy!  Think again.  =)  There's a lot that goes on behind the scenes that's more difficult to deal with than you might expect.  So to sum it up, I'd like to simply say, there's pros and cons of both.  =)  Don't think an internal gateway is a magic bullet.

0 Comments 0 References Permalink
2

Well, I think I'm finally getting over whatever sickness it is that I've had for the past week... I hope.  Not very condusive to working on things...  That said, a lot of developments have come up recently that I thought I would post about.  Fair warning, this is gonna be kinda random.  =)

 

PEP Improvements

 

I would just like to throw a shout out to the folk who have been working on PEP.  I love the latest bit of changes and believe they will make it soooo much easier to implement.  Woot!

 

Familiar on my Pocket PC

 

As per some advice from a previous post, I have been looking into getting Familiar and it's associated desktops on my Pocket PC (IPAQ 2200).  Lovely hardware.  Crappy software.  (Pocket PC OS.. think it's even of the Windows CE vintage)  Anyway, I soon found there are two main choices for desktops for Familiar, GPE and OPIE.  First off, I adore the IPAQ's serial console and also the Familiar bootloader (forget it's name) and Familiar itself.  There's something just neat about watching Linux booting on your little handheld device.  Now, I right now my IPAQ has stuff for installing Familiar 0.8.3 (I think?) with GPE, and a beta Familiar 0.8.4 (I think?) with GPE or OPIE.  0.8.3 works fairly well except that I don't particularly care for the GPE desktop environment.  I think it's a tad silly to deal with getting root and that sort of thing on a handheld device.  Likewise, some of the apps aren't particularly helpful/nice.  For example, I can't get either wireless card I have to work.  One SDIO, and one CompactFlash/PC Card/I'm not sure.  lol  No worries on the lack of support for them yet, but the weird thing is that when I go to the webbrowser, and type in a url, it does .. well like nothing.  No error message, no nothing.  I goes back to the main webbrowser window.  Nothing is particularly pretty.  Overall, it just feels like it's trying to be too Linux.  =)  Now OPIE, on the other hand, is gorgeous, acts like a handheld device "ought to", and is generally quite nice!  No love on the wireless card yet still, which is odd, but I'll get to that in a moment.  I'm very excited about getting OPIE on there in a functional manner.  Problem is, it's not real functional under Familiar 0.8.4whatever.  All known bugs according to their trackers, so no worries there, I'm sure things will be fine.  =)  Very much looking forward to full functionality!  As for the wireless cards, looks like there's no support for SDIO cards period.  So ignoring that, the compact flash wireless card...  the online docs say something about what driver I would need to use, but said driver isn't selectable.  Soo.... yeah.  Maybe that's a pending release of the OS type thing.  Either way, that'll be mega cool to have when things are ironed out.  I'll be keeping an eye on things.

 

Nokia 770

 

Well, I am finally the proud owner of a Nokia 770.  I went and purchased one on Friday.  Comp USA... I would just like to say that your inventory control system is "the crap".  While it isn't ideal, I don't like that your web site says that there's no copies of it in stock and yet the store actually has some.  HOWEVER, how in the hell is it that I call you and you say you don't have any in stock and yet we drive over there, the guy in the handhelds department turns around, looks it up in the computer, and sees one available.  ???  Are you all's computers not tied together or what?  Bah.  Anyway, the nice guy found it hiding in a cabinet and low and behold, it's mine.  I immediately upgraded to the latest OS.  I love that it's self-sufficient!  I don't have to tie it to a desktop to install things, or get it working, or anything.  It's wireless functionality rocks.  Hell it picks up devices around that I didn't know existed.  =D  It cheerfully ties to my phone for access.  Unnnnfortunately, our friends at Sprint have dinked over the LG PM-325 firmware in a way that makes it unable to behave properly as a modem.  It keeps connecting and then disconnecting after like 20 seconds or so.  There's a lot of nice bluetooth functionality in my phone that doesn't work with Sprint's own firmware on there.  I made the mistake of evaluating the phone based off LGs specs, not Sprint's implementation of it.  Bah.  Not much I can do about it.  Sprint doesn't even sell my phone anymore so...  yeah.  As a phone, I love it though.  Oh well on that front.  Anyway, it ties into my home network really well.  Amusingly enough, my friend who bought a 770 a couple of months ago's hardware address is exactly one less than mine.  =)  I've only had a few problems with opera so far.  But those are pretty much classic Opera-isms.  I found the wonder that is the application manager that ties into various repositories.  Installed lots of things to try out.  Gaim actually works quite well!  Well so does google talk.  ;D  I like it quite a bit.  It integrates with the feel of the platform quite well!  I've had a couple of odd crashes here and there, but it comes back pretty cheerfully from the crashes, so no big deal.  I've been experimenting with the PIM software that's GPE based.  Now, considering my feelings on GPE above, I wasn't expecting a lot, but for some reason, on the Nokia 770, it's all quite nice!  Weird.  I haven't investigated whether it can do syncml or anything along those lines.  It has a note pad.  It has a password manager that I was able to download.  .. it's possible that this could be replacing my palm.  I'm thinking about experimenting with it as a replacement next week to see how things flow.  If nothing else, it makes an awesome ... well what it is.  =)  An Internet Tablet.  I enabled swap on the RS MMC card that came with it and that works out well.  Yeah you notice the slowness when it starts hitting swap but ... well what else is new.  =)

 

Wildfire Gateway Plugin

 

A little while ago, Jive Software approached me about writing a java based plugin to Wildfire that would provide easy access to other IM protocols.  At first I didn't think I had time for that, but as it turns out, for the most part, people have already written good libraries for the protocols under Java.  Not quite so under Python.  ;D  Besides that, they offered to support the project a tad, and so I have been working on the plugin since.  In this case, it is a single plugin that provides access to AIM, ICQ, MSN, and Yahoo.  (IRC planned as well)  It's sorta functional in it's current state.  There's a couple of problems, and a couple of important lacks-of-functionality, but it's definitely coming right along.  The guys from Jive have been very helpful and I'm quite excited about it.  I'm hoping to have good solid base functionality soonish and a beta release.  I have some awesome testers helping find bugs.  There's a lot of things I'm able to do with the plugin that I'm "jealous" of with the python transports.  For example, being able to interact with the user's roster directly is awesome.  I don't have to store a copy of their buddy list, or worry about bombarding the user with a bunch of subscription requests, or worry about lack of support for group propagation, or lack of support for nickname propagation ...  overall it's just really nice to work with internals for this.  Does this mean I'm not touching my python transports anymore?  Not at all.  This plugin will only work with Wildfire and the python transports should work with everything.  Likewise, with the plugin I'm aiming to keep "fairly minimal" whereas with PyAIMt and PyICQt have very intensive support.  For example, with the plugin I'm not implementing 8 billion versions of how avatars are implemented.  =)  Anyway, stay tuned if you are interested.  On a very very bright note, my reward for doing this should be arriving on Monday and it will singlehandedly increase the speed at which I can develop all of my projects.  =)  Score!

 

I'm using quite a few nifty toolkits with the plugin.  JMML for MSN support.  JYMSG for Yahoo support.  JOSCAR for AIM/ICQ support.  I am forgetting the name of the IRC toolkit I was looking at, but there is one out there.  A lot of these are considered "not yet 1.0", but they appear to work fairly well.  JMML is used with the planetamessenger.org stuff, which seem rather cool.  JYMSG seems to be a tad stagnant, but works well.  JOSCAR is actively being developed as part of Adium X and a 1.0 is right around the corner.  There is a companion piece called oscar.jar, which I may switch to when it's released.  Why?  Well, it's much higher level than joscar, which matters less to me since I am quite familiar with the OSCAR protocol, but would benefit others who might be helping with the code.  I'd like to try to keep this as non-complex as possible.  IRC is going to be interesting.  As we all know, IRC is primarily chatroom type stuff.  I don't have any chatroom stuff written up for the plugin right now, but that's ok.

 

It's interested to see this implemented via java instead of python.  One of the things about the python transports is that I am having to implement the oscar protocol as I go.  With this, it's already there.  One thing I'm pretty excited about is being able to use this to help with the python transports.  I'll have two gateway-implemented interfaces with AIM/ICQ and I'll be able to watch the flow of things as they go through Wildfire and compare/contrast.

 

You know, I hadn't given Java much of a chance in the past.  It's quite nifty.  It seems a lot better than it was the last couple times I looked at it.  Perhaps Sun has had quite a good effect on it?  If so, go Sun.  =)  Having the guidance from the folk at Jive to get me started here and there has been wonderful as well.

 

Anyway, you can keep an eye on what I'm doing here if you are interested:

Gateway Plugin Repository

 

Blathersource

 

Man...  yeah.  I feel overwhelmed with the stupid crappy spammers, but I really need to fix things so I can stop them from bothering my site.  Perhaps I will do that tonight 'real quick like'.  I need to implement a couple of things to do it:

 

1. Add "either captchas or login" for posting anything.

2. Add ability to delete comments

3. Add ability to delete bug reports/feature requests

 

Hate.

2 Comments 0 References Permalink
0

Wildfire 3.0

Posted by Daniel Henninger Jun 25, 2006

As many of you already know, Jive Software has released a beta of Wildfire 3.0.  After running it for a few days now, I am quite pleased with it.  I like the new skins on the web interface and it seems to be a tad speedier.  The plugin manager functionality where it's capable of upgrading plugins on the fly is very nifty.  The UI for it needs a bit of work, but I've seen some images of a proposed look and feel for the plugin upgrade UI and it's looking great.    I haven't messed with the connection manager functionality but I don't really have a good way of testing that.  I wasn't entirely sure if that is something that should/could be used on the same host as the primary server.  Judging from the description, I'd say it's meant to be run on alternate servers, so little point in me using that.  I don't have a good feel for what all else is different, just that I'm overall pleased with the new version.

 

I was also given an opportunity to try out the enterprise version of the server.  I adore the built-in statistics.  I'm quite a fan of statistics in general.  =)  The statistics are quite thorough.  I also really dig the "active conversations" display.  This appears to be primarily dependent on 'observing' stanzas going back and forth between two people and assuming the conversation is active so long as there's activity within a certain time frame.  All in all, it's quite nifty.  The conversation logging functionality overall is extensive.  Has some good search functionality.  There's a interesting function to only allow "approved" clients to connect.  Has a lot of the current well known clients in the list already, and basically permits an admin to only allow the clients that have successfully gone through some sort of security audit.  There's URL and groupchat bookmarks, but they appears to only work if you have clients that specifically support them.  I imagine Spark supports them.  Anyway, I'm interested in seeing what else comes of this.  So far it's looking good.

0 Comments 0 References Permalink
2

And so continues my journey through the different servers.  ;D

 

For some reason, as of version 1.0.0, I started getting a lot o random crashes from ejabberd.  There was no log entry to indicate what caused it and I know it's not exactly useful to just report "it crashes", so I really had nothing to suggest to the devs.  Either way, I'd still been looking to investigate and move to WildFire for quite some time so this just gave me the opportunity.

 

I finished up my ejabberd db dump => wildfire user import script and now I can say that I am happily converted over.  The developers were exceedingly helpful in sitting down with me and working out any issues I was running into and now everything seems to be running smoothly.  Gato even added in functionality real quick to make it so my transports can tell WildFire what jid's it wants to answer as, instead of having to configure it in the server.  Woot!

 

So some observations from the switch:

 

- WildFire is so much quicker than it's Jive Messenger days, not as quick as ejabberd, but so far I haven't felt like the speed difference has made an impact on my experience.

- Web interface remains beautiful  =D  I'm very excited about having it in place.

- I like the plugin architecture and am planning on writing some plugins for fun (and to learn Java, which I had never had an excuse to learn before.. which is always my driving force for learning new languages)

- I have had some slowness when Wildfire can't contact domains of people in my roster (i have a lot of old ones that don't exist anymore that need to be cleaned up).  Ejabberd has never had a problem with that, but at some level it's an excuse for me to get off my ass and clean up my roster.  lol

- I really dig the personality of the developers and such, very friendly and .. supportive?  Whatever.  ;D

 

Anyway, it'll be good to be familiar with WildFire just like I am the other servers.  I feel that ejabberd and the transports are "a done deal" and work just fine together.  I know jabberd2 and jabberd1 work well with the transports.  Now I can make sure all of them work dandy with Wildfire!  And they're sending me a shirt!  ;D

 

Anyone else know of any other server implementations out there that I should be looking at/testing against?  ;D  I heard rumor of a possible perl-based one.  Need to get ejabberd set up as one of my alt-test servers now.  Probably will set up a fresh install or something.

2 Comments 0 References Permalink