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

Daniel Henninger's BlatherBlog

8 Posts tagged with the jwgc tag
2

I've been quiet for a bit.  Most of you know how blogging goes ... you get excited about it or have a lot to talk about for a time, and then you start doing less and less posting.  Though some of you are quite adept at regularly posting ... to you I give the virtual thumbs up.  =)  But what have I been up recently?  Quite a bit actually.

 

For those who don't know, I left my university job of 11 years at the end of October and joined Jive Software.  My work with Jive fell right in line with "what I really want to do" for my career.  =)  Plus, they're all really great people.  That said, I'm working from across the country (waves) and quite enjoying it.  Maybe Jive will open up a Raleigh-Durham (Research Triangle Park?) office at some point.  ;D ;D ;D  Anyway.  I have continued my IM Gateway work, become one of the primary developers of Openfire, and become the lead developer of Spark (amongst other things).  I've been enjoying all of these things quite a bit!  I don't get to spend a lot of time on Spark, but when I do, it's quite fun to be playing with the client side again.  It's been a loooong time.  At this point I get to play with all three of the main areas of XMPP (Client, Server, and Component)!  It didn't take that long to adapt to Jive's environment though.  I actually really dig more deadlines and scheduled releases and such.  Frankly, it helps me mind "pick a target" when I'm trying to decide what to work on next.

 

So what's happened to PyICQt and PyAIMt?  I've officially stepped aside.  I moved them to Google Code so that others can more easily become involved.  You can now find them at:

http://code.google.com/p/pyaimt/

and

http://code.google.com/p/pyicqt/

I haven't removed myself as one of the "owners" yet on there so that it's possible for me to facilitate others becoming involved in the project for the next month or so in case others have been dying to get involved and didn't think about approaching me before.  A couple of other folk have stepped up and are doing a few things with it!  Yay!   The new location of the py-transports "mailing list" is now a Google Group at http://groups.google.com/group/py-transports.  I must admit, at this point, I don't miss them.  I do hope that they keep going though as I do believe they are good projects.

 

What about the XMPP Script Repository?  Well, I moved that to SourceForge: http://xmppscriptrepo.sf.net/

I won't be actively managing it, but if you are interested in becoming involved with it, please ping me and I'll set you up!  (let me know what your sourceforge id is)  It's using a SourceForge tracker to handle new script submissions.  If people -do- submit things to it, that would be about the most maintenance it needs unless you really feel like doing some significant work with it.  So... lemme know!

 

So what's left of BlatherSource?  You're "looking at it".  All I'm using BlatherSource for at this point is my blog.  I may do something else with it at some point, but for now it's just my blog.  I did like the interface I had put together for it, but I just don't have time to keep developing it/to manage it, ya know?  Many kudos to my hosts at Modevia.com for putting up with my requests for the site.  =)

 

I do still have a site for JWGC, http://jwgc.sf.net/ (moved it to SourceForge).  No idea if I'll ever do much else with it, but I like to keep it around.  It's my first XMPP related project ever.  =)

 

So... why did I move PyAIMt and PyICQt to Google Code instead of SourceForge?  Well, mostly because I wanted a wiki for the documentation and I couldn't find one on SourceForge.  Of course, an hour after moving everything I found that SourceForge -does- have a wiki.  Color me blind...  Doesn't matter, was neat to see what Google Code offers in terms of services.  I really like their "easy on the end user" issues tracker.  I don't like their web space offering though.  Spaces I think it is?  Whatever it is I don't like it.  I couldn't do with it anything like what I wanted.  I hear they are looking into a better solution at some point, so that might be cool.

 

After looking around relentlessly or a Java OTR library .. something like libotr that Pidgin uses, I decided to request a project on SourceForge to write my own.  Hopefully others will find use in it.  It's not approved yet, but if it is, it'll be jotr.  (http://sourceforge.net/projects/jotr ?)  If anyone is interesting in helping me out with that, I would greatly appreciate it!  I was rather surprised to see nothing already exists for Java for OTR.  (then again, I could have just not found it, but I tried really hard to find it  ;D  )

 

The IM Gateway plugin ended up putting me in the lead developer role of Java-JML (http://java-jml.sf.net) (MSN messenger library for Java) and also a developer of Martyr (http://martyr.sf.net/) (IRC library for Java).  Things sure do pile up quick, don't they?  =)  Those have been fun though.  I've gotten to work with Smack a little more as well in my Jive work, so that's been cool.  At this point I feel like I'm touching just about everything!  lol  Who knew that I'd go from being irritated with Java to enjoying working with it so much.

 

Anyway, so that's what my life has been lately!  New job, new adventures, letting go of some of the old ... moving forward.  =)  Yes, I do still have some XEPs to write/propose on the backburner.  I just haven't gotten to the point where I need to write them.

2 Comments 0 References Permalink
0

Love for JWGC!

Posted by Daniel Henninger Aug 14, 2006

Occasionally I get little nuggets of "hey!  JWGC is neat!  are you still working on it?"  Good to know some folk are still interested in it.  =)  Of course, my free time is not abundant and so I haven't had time to work on it, but yes I still am "in general".  I mostly ported it to loudmouth at one point.  That was fun.  =)  Just didn't finish it completely.  Anyway, it's nice to see some interest.

 

Also, thanks to Ralph M. for fixing my feed with planet jabber!

0 Comments 0 References Permalink
0

Well, I have a couple of minor changes to make here and there, but overall, I now have jwgc converted over to loudmouth/glib.  I split it off into a different branch.  I'd still ideally like to release 1.0 "as is" without the loudmouth stuff and then turn over the trunk to the loudmouth branch and go from there for 2.0.  Part of me doesn't really even want to release a 1.0, but hey...  I should at least put that to rest properly.  =)

 

The branch is: svn://svn.blathersource.org/jwgc/branches/loudmouth

 

Anyway, I like the API, it's fun to work with.  I've gotten to like glib quite a bit.  I'll be converting a lot of the internal code over to use glib commands instead of standard c.

 

Lots of things should be added to jwgc.  Like, for example, right now it only does agents support.  ;D  Yeah, that's going to be handy nowadays...  Couple of plans are:

 

- disco support

- 'queue' system for subscription requests... as opposed to just automatically accepting them

- 'plugin' driver support for display and such

- gnome based plugin, see above

 

We'll see.  I dance around on my projects so I'll likely be going back to the Py's over the next couple of days, and scriptrepo.

0 Comments 0 References Permalink
0

The Migration

Posted by Daniel Henninger May 28, 2006

I've been playing with Loudmouth and JWGC.  So far so good.  Quite easy to use and intuitive.  (well assuming I'm doing things right)  However, at the moment I am stuck at something more base than Loudmouth.  I'm stuck with glib.  I'm trying to replace the mux stuff that I had entirely with the glib based event handlers.  Should be trivial.  I'm missing some aspect of it though.  I can't seem to find any good documentation.  I've got a book on the way about gnome programming, but that really doesn't help me "now", ya know?  I can see the glib api, but that about covers it.  Guess I'll go probing around other peoples' code.

 

If anyone has any good online docs for glib that they're aware of, -especially- the main event loop stuff, please post me a link.

 

On a side note, scriptrepo is coming along.  Still a fair amount to go.

 

It's interesting to be messing with c code again though.  Been a while.

0 Comments 0 References Permalink
0

...  In case you are wondering, that title is a take off of a bizarre workshop name that occured where I work.  "Thinking Based Learning".  I mean I understand what they were aiming for, but man does that sound amusing when you first see it.

 

Anyway, I find that a lot of my coding time is spent running through scenarios and 'writing code, editing, erasing, etc' in my head instead of actually typing the whole time.  I'd say a good portion of my time is spent doing this.  Sometimes it's dismaying to look down after working on something for an entire day and only seeing a paltry number of actual changes.  No matter.

 

ScriptRepo is coming along.  It's full name is the "Jabber Script Repository".  I'm not sure whether I want to abbreviate that to JSR when I don't want to type it out, or stick with ScriptRepo as the abbreviation.  I kinda like ScriptRepo and JSR is kinda taken by someone's name.  ;D

 

I've got the entire login/registration/etc mechanism worked out and since I've been working on the real meat of it... occasionally getting caught in the trap of "well, this looks prettier this way".    That's ok, it will come.  Hoping it serves it's purpose.  On an interesting note, a couple of things I am doing with ScriptRepo I may backport over to BlatherCore.  Added a couple of concepts that I liked.

 

Been tweaking the transports just a tad as some bug reports roll in.  Nothing major yet.  Couple of Google Talk tweaks mainly.  Pondering around making use of a branch in SVN for the first time (for me at least) and playing with Loudmouth as a backend.  Despite my not reallllly wanting to add an extra dependency level of glib, I've been looking over glib and it's got some neat features that I could really use.... so I may bite the bullet and work with it.  It's apparantly very portable.  I think it might make some of my socket operations more stable.

 

Enough of my babble for now...

0 Comments 0 References Permalink
0

Idle Time

Posted by Daniel Henninger May 2, 2006

On a mild aside before I get into this, I added a little project tracker to my blog.  Pretty nice.  Obviously I'm always working on JWGC (to a lesser extent lately), PyAIM, and PyICQ, but I often have little side project spinoffs or "major" things I want to do with the transports or JWGC.  I dunno, they seem to fit well into a little mini project tracker.  =)

 

Anyway, so people keep asking me to implement idle status in a better way.  Currently I am aware of only a couple of methods of doing this:

 

1) jabber:iq:last, requires polling this attribute regularly if you want to keep up with idle time, eww

2) adding the idle time to a presence status string, useful if you are reading said status field, not useful otherwose

3) simply setting the status to away, and extended away, as the person gets more and more idle... many folk don't like this way of handling idle.  I don't either.  I think idle is 'it's own thing'

 

So my proposal is this...  PEP seems to be the way and the light nowadays.  I believe idle status fits well into the pubsub model.  If you want to know the person's idle status, you subscribe to it, and you get update as the client itself 'sends' updates.  More importantly, it doesn't have to be updated much.  If your client decides that you are idle, it sets your PEP idle status to the timestamp when you started being idle.  At that point, it doesn't have to be updated until you come back.  Pretty efficient if you ask me.  Anyway, I believe this is a good way to go and on top of that, it would allow idle and away and such to be independent of each other.  You could easily see Away but only idle for 5 minutes.  Or away but idle for 3 days.  You get the idea.  Clients could easily handle this and set a cute little idle icon or something.  So I'm aiming to write up a JEP for this and submit it.

0 Comments 0 References Permalink
3

Thinking about 2.0

Posted by Daniel Henninger Mar 31, 2006

I know I haven't released an official version 1.0 of JWGC yet, but I'm considering cleaning the current code up just a tad and releasing it and then moving on to 2.0 stuff.  Here's a big part of what I'm considering...  I'm thinking about ditching the current XMPP and such handling code and going with a library that's out there in the world somewhere.  Thing is, I haven't seen any c-based XMPP/Jabber libraries.  I've seen Java and C++ and ... you get the idea.  Part of my reason for posting this is the hope that someone reading knows of a simple c-code library and that I just haven't keyed the right search string into google.  I've had some great suggestions from folk from time to time.  I'd like to pursue them.  But things would go a lot smoother if I didn't have to reinvent the wheel with the actual Jabber/XMPP library part of it.  =)

3 Comments 0 References Permalink
7

Ah, poor JWGC...

Posted by Daniel Henninger Dec 24, 2005

JWGC is so far behind the times nowadays.  It doesn't even do disco.  I have some grande plans for it but I have so much larger of a user base for PyAIM and PyICQ that it's hard to justify to myself to put time into JWGC.  I periodically post "must add's" to JWGC's feature request list as I come up with things.  The last time I updated it I ran into some odd crash bugs.  That all said, working on the "other side of the equation" with PyAIM and PyICQ has opened up a world of knowledge about how Jabber works that will be extremely helpful when I dive back into JWGC.  Thing is, do I clean up JWGC a tad and release a 1.0 and THEN add the new stuff, or do I go ahead and add new stuff?  I'm thinking the former.  2.0 would include loooots of new functionality.  I might even add in a Cocoa driver for OS X.  Lots of ideas... No one is on the jwgc mailing list, so there doesn't appear to be much interest at this time.

 

I often see C++ and Java and such based Jabber libraries out there.  I'm wondering if there are any I'm just not seeing that are for "just C".  =)  Anyone?

7 Comments 0 References Permalink