Planet Jabber

Distribuir contenido
Planet Jabber - http://planet.jabber.org/
Actualizado: hace 3 horas 19 mins

Jack Moffitt: Brevity And Programming Languages

5 January, 2009 - 22:03

Once upon a time I was an avid Perl hacker, but at some point I got fed up with it and switched over to Python. I've spent a lot of time with Python, and it's my standard choice for writing new code unless another tool offers a big advantage to the problem at hand. Lately I've been doing quite a bit of hacking in Erlang and playing a bit with Lisp. One thing is for sure, I sure miss the brevity of Python.

I think Perl is too terse; all the symbols so close together start to impact readability. Erlang and Lisp both seem quite verbose. Perhaps this is a direct result of both languages lack of namespaces.

Namespaces

In Erlang, code lives in a module, but there are no sub-modules. Sub-modules end up getting named like 'module_foo' and 'module_bar'. This makes for pretty long lines when you need to string together several operations from different modules.

In Lisp (or at least in Emacs Lisp which is the dialect I've been working in) there aren't any namespaces at all, which makes it quite similar to Erlang, just with no special symbols.

In Python, I can just import the sub-modules directly, and get rid of lots of namespace, resulting in a lot less typing and no real loss of clarity.

Data Structures

The other main factor contributing to code brevity is good support for data structures. Lisp and Erlang have excellent support for lists, but they are more clumsy with hash tables. (make-hash-table) (or even (makehash)) is a lot more work than {}. dict:fetch(Key, Dict) is a lot more than dict[key].

Python, Ruby, Perl, and many other languages have first class support for these data structures and that goes a lot way to making the shorter and easier to write. They feel bolted on in Erlang and Lisp.

Worth the Trade-offs

Even though they are more verbose, Lisp and Erlang are worth the trade-offs in many cases. Nothing else has a concurrency model like Erlang, and the power of code-as-data is immense.

If you're an Erlang or Lisp hacker, I'd love to hear your thoughts on these issues. I'm still a newcomer in these lands and have much to learn.

This year I think I will learn me a Haskell for great good. I've heard a lot of great things about it, but have yet to dive in.

Artur Hefczyc: Extensibility extended - scripting support

5 January, 2009 - 15:47

The Tigase server is very extensible through the well defined API. You can easily attach your code to any part of the server and load it at the startup time. It is quite simple to connect the Tigase to any database, add own components, plugins, packets filters, resource monitors and so on.

There are, however at least two disadvantages of this kind of extensibility. You have to write Java code and the code can not be reloaded at run-time. So basically you have to restart the server to apply your changes.


Installing Groovy script

What about a code in a scripting language which could be reloaded/added/removed at runtime without affecting normal work of the server? Which scripting language? Ideally any, ideally your preferred language. How? Of course using ad-hoc commands.

This is possible now. You can create your scripts in almost any language and load the script at runtime to the server to do some work for you. The Tigase server supports scripting through JSR-223 API in Java6. Maybe it doesn't make sense to use some of the supported languages like AWK for example in the Tigase server. Nevertheless I have learned already that users' use cases go far beyond my expectations. Therefore there are virtually no restrictions on the language you choose. Just put all required JAR files in the Tigase libs/ directory and the language is available to you.

read more

Process One: Large set of ejabberd resources

5 January, 2009 - 10:01
Planet Erlang is fastly becoming a large index for Erlang projects resources, including ejabberd.

Since its relaunch, Planet Erlang is now indexing content from tens of Erlang related blogs. Thank to its search engine, you can now find many blog posts and articles on lots of different Erlang topic. ejabberd is one of the most covered topic there.

You should have a look and try searching for ejabberd in the search engine (search field on the right).

The list of resources is growing every day as we are adding even more older resources.

Your comments and feature requests are welcome !

Fabio Forno: Ejabberd hooks with twisted

5 January, 2009 - 00:46

Few days ago I've found on Launchpad an interesting project by Thomas Hervé, the twisted interface to OTP, which allows to connect to erlang nodes using Twisted Matrix. The idea is incredibily powerful because it allows to easily build mixed-distributed applications using both erlang and python/twisted where they are best. So I gave it a try with ejabberd which has hooks for adding callbacks to its internal components (i.e. it's possible to intercept and modify packets). Unfortunately I've discovered that the present implementation of ejabberd hooks allows to connect only callbacks from the same node of ejabberd, i.e. as an extension module, but ejabberd folks have been incredibily quick in releasing a patch which allows distributed hooks, by adding the "CallNode" atom as parameter. The patch may be not stable yet, but it works perfectly with the last release of ejabberd (2.0.2), and here is an example of a twisted node which intercepts and logs all packets sent and received by any user (here is the full code, change the node names accordingly to your setup).

It works very simply. The hooks are written as methods of a regular python class with the "remote_" prefix:

class UserMonitor(object):
    
    def remote_receive_packet(self, jid, frm, to, packet):
        print ">>",  to_domish(packet).toXml()
    
    def remote_send_packet(self, frm, to, packet):
        print "<<",  to_domish(packet).toXml()

which is published by using a PersistentPortMapper:

nodeName = buildNodeName("uccaro@olindo.bluendo.priv")
epmd = PersistentPortMapperFactory(nodeName, cookie, "olindo.bluendo.priv")
epmd.publish(proxy = UserMonitor())

After this it's possible to call the methods proxy:receive_packtes and proxy:send_packet from any erlang node.

Then we register with ejabberd using a second node which calls the register methods, using the ejabberd api:

@defer.inlineCallbacks
def register_hook(epmd):
    # connect to the ejabberd node
    inst = yield epmd.connectToNode("ejabberd")
   
    # register hooks
    r = yield inst.factory.callRemote(
            inst,
            "ejabberd_hooks",
            "add_dist",
            Atom("user_receive_packet"), # hook name
            "olindo.bluendo.priv", # virtual host
            Atom("uccaro@olindo.bluendo.priv"), # hook node
            Atom("proxy"), # hook module
            Atom("receive_packet"), # hook method
            10
    )

And bingo, after this ejabberd happily starts calling our hooks!

As bonus in the code you find also a function which translates from the ejabberd xml representation to twisted domish nodes, which is far more usable.

Jack Moffitt: XMPP Open Day Update

4 January, 2009 - 23:10

XMPP Open Day is starting to shape up, but it still needs you help. We currently have 5 presenters, 6 talks, and 2 volunteer moderators. This is a great start, but we definitely need some more people to give talks or lead panels.

Please sign up at the wiki page or e-mail me if you're thinking you might want to participate.

Jack Moffitt: My Favorite Emacs Hacks

3 January, 2009 - 23:42

During the holiday downtime, I decided to spend a little time improving my most some tools, specifically Emacs. While I was experimenting and tuning I realized that I really love Emacs, and I thought I'd share some of my favorite things about it.

Awesome daemon support

Once you start having a bunch of extra modules and customizations, Emacs beings to take a while to boot up. Fortunately we can just fire up an Emacs server inside a running session, and then connect to it via emacsclient.

In Emacs 23 (not yet released, but very usable) the emacsclient can even create new graphical (X or Cocoa) or text frames. This means that with EDITOR set to emacsclient -t it works just like a normal console Emacs would, except that it starts instantly and has access to all my already open buffers.

I used to use Vim at the command line because it loaded much faster than Emacs, but now I can finally drop that habit.

Interactively Do Things

ido brings Quicksilver and Spotlight type search to Emacs. It shows me possible fuzzy completions for what I'm looking for whenever I look for files or want to change buffers. Using ido has really increased my ability to get around in all my projects quickly.

nxml Mode

The nxml mode is an amazing thing. It validates the XML document live and tells you exactly whats wrong. Just like a spell checker from a modern word processor, it underlines the offending characters in red. Moving the cursor over them tells you exactly what's wrong.

I use it for HTML, XSLT, and any other XML markup I'm working on, and I never have to worry if it's correct.

Yet Another Snippet

yasnippet bring TextMate style snippets to Emacs. Now, snippets are nothing new for Emacs; we've had skeleton mode and similar things for a long time. yasnippet is just a lot easier.

My main use of yasnippet is to insert things like doctypes and other long strings that have some information that I must complete.

dabbrev

dabbrev is on by default in all the Emacs that I've run into, and it allows you to dynamically auto-complete anything based on the words it finds in your open buffers. Invoking it multiple times will complete longer and longer parts.

Just like everything with Emacs, it takes a good idea (text completion) and makes it extremely general. It works great on code, blog posts, and anything else I happen to be writing.

Find Tag (M-.)

Shortly after I started working with Monty on the Xiph.org codecs (Ogg, Vorbis, Theora) I noticed that he was using his editor a level far beyond what I was used to. The best thing I saw him do was find-tag which jumps to the function definition of the function name under your cursor. Using that, Monty could surf around the code base at blinding speed.

find-tag uses information in special tag files to implement this. Emacs can also do many other things with tags like project lists and auto-completion.

Flyspell

Flyspell brings word processor style spell checking into Emacs. Just like nxml mode's validation, Flyspell checks the spelling of words live, and gives visual indications where things have gone wrong.

Flyspell is also well supported in other modes, so that it knows which parts to check and which parts to skip. It's not perfect, but it is extremely useful.

Theming

A lot of people complain that Emacs is ugly, and the default configuration is certainly not going to win any awards. I will say though that Emacs is extremely well though out from a usability standpoint, and it mostly stays out of the way as much as possible. It is nice to get color syntax highlighting though, and color-theme does just that.

My personal favorite is color-theme-dark-laptop, which is somewhat similar to TextMate's Twilight theme.

Help In All Forms

Last, but absolutely not least, is the help system. Emacs has the best help system I have ever seen.

First, you can get help in any number of ways:

  • Use the interactive tutorial (C-h t)
  • Read the manual (C-h r)
  • Read various other manuals (usually I'm after the Emacs Lisp manual and tutorial) (C-h i)
  • Look up what keys do what in the current buffer (C-h b)
  • Look up what some key does by pressing the key (C-h k)
  • Look up the name of a function (C-h f)
  • Look up the name of a variable (C-h v)
  • Look up functions about some topic (C-h a)

Not only can you find all this information easily, but if you have the source code package installed, it will link you directly to the implementation. This means if I am looking up information about a particular Emacs function, within a few key presses I'm staring at the actual function.

Emacs is probably the only system for which I don't use Google as the first place for answers to my questions. Nearly everything is a few key presses away, even if you have no idea what you are looking for.

Emacs Rocks

I still have tons to learn about Emacs, but it already fits like a glove. Did I mention that it works the same whether I'm on OS X or Linux or in a terminal or the windowing system?

For those of you who also use Emacs, I'd love to hear about your favorite things.

Extended Conversation: XMPP Roundup 4 “New Year edition”

3 January, 2009 - 18:26

Welcome to the fourth roundup of XMPP activity worldwide. This report is authored by Nicolas Vérité, Laurent Lathieyre and Jack Moffitt. This is a very long article since we had a lot of activity these weeks.

Your contributions are welcome for future roundups.

Software Releases

In this edition of the XMPP Roundup, we have a lot of software releases: clients, servers, and tools.

Gajim 0.12

Astérix aka Yann Leboulanger has announced on his blog the release of Gajim 0.12. The full changelog since 0.11.4 is loaded with new features: mood, activity, nickname and tunes, encrypted sessions, Kerberos, file transfer over multi-user chat, lots of UI improvements (chat and preference windows, drag’n drop, single window mode, etc.), LaTeX support, and many more.

Tigase Server 4.1

Tigase Server version 4.1 has been released.  New features include virtual hosting, server monitoring, and virtual components.

BuddyMob

Laurent Lathieyre of Ubikod, pointed to BuddyMob, an Android application in private beta now, designed and developed by Ubikod for Kiboo.net, a Belgian company. BuddyMob is offering IM, social networking, feeds and geolocation… and it is all based on XMPP.

Ya Online Mobile

Yandex, the giant Russian search engine and web portal, has launched the mobile version (Symbian S60) of its Ya Online client, based on its Jabber/XMPP service.

Buddycloud

Buddycloud is a mobile application for Symbian S60, built on XMPP, offering status and location tracking services as well as chat.

Lampiro

Lampiro, is a mobile open source (GPL licensed) XMPP client developed by Bluendo. It is written in J2ME, and supports compression, TLS, group chats, gateways, data forms and touch screens.

Prosody

Matthew Wild announced on JDev mailing-list Prosody 0.1.0 (and 0.2.0 followed in less than a month), a new XMPP server, written in Lua, under the GPL license. It aims to be simple, light, and flexible.

Sleek Migrate

Sleek Migrate is a server migration tool announced by Kevin Smith, released under GPL license, based on the SleekXMPP library written in Python by Nathan Fritz.

Web-Based JavaScript XMPP Clients

We have a bunch of Web-based JavaScript XMPP clients:

Lime Wire 5.0 alpha

Lime Wire, the open source P2P software based on the Gnutella network, integrates Jabber in its 5.0 alpha version.

Web-based Services

Fire Eagle

Seth Fitzsimmons announced an XMPP pubsub interface to Yahoo’s FireEagle.

Remindr

Remindr sends you reminders via mail, phone or Jabber.

Chatterous

Chatterous lets you join multi user chats via your web browser, IM client, phone, or e-mail.

Other News

Outside of the software releases scope, we have other news:

Tigase Server virtual hosting

Above we mentioned the new virtual hosting support in Tigase Server. Artur has also made it configurable though the Psi XMPP client, with the help of ad-hoc commands.

Psi

With 1,500 downloads per day and 2.4 million downloads overall, the open source Psi XMPP client has made a long road since its beginning.

SAPO Codebits

Jack Moffitt’s talk (51 minutes) at SAPO Codebits is online, both the video and the slides.

FLOSS Weekly

Peter Saint-Andre gave an interview to FLOSS Weekly:, the audio is available or as an mp3 for download (33 MB, 1h12).

On the Specifications Front

The Jingle XEPs for multimedia sessions like voice and video, have entered a LAST CALL:

As with all Last Calls, please consider the following questions and send your feedback to the standards@xmpp.org discussion list:

  1. Is this specification needed to fill gaps in the XMPP protocol stack or to clarify an existing protocol?
  2. Does the specification solve the problem stated in the introduction and requirements?
  3. Do you plan to implement this specification in your code? If not, why not?
  4. Do you have any security concerns related to this specification?
  5. Is the specification accurate and clearly written?

Your feedback is appreciated!

Some extensions aka ProtoXEPs have come in:

  • Message Mine-ing: In servers that deliver messages sent to the bare JID to all resources, the resource that claims a conversation notifies all of the user’s other resources of that claim.

A few XEPs have entered Final status:

XMPP: The Definitive Guide - Rough Cuts edition

Peter Saint-Andre, Remko Tronçon and Kevin Smith are writing a book on XMPP, for O’Reilly. The rough cuts are available online.

Conclusion

The XSF and XMPP community have been quite busy during the final weeks of 2008.  We wish to thank everyone for their efforts, advice, and participation in 2008, and we wish all a happy 2009 filled with similar successes.

Jack Moffitt: Manage Jekyll From Emacs

2 January, 2009 - 20:46

I recently switched this blog over to Jekyll. Jekyll is a static blog generator that can be used to manage a blog from source control instead of from a silly Web app. In my case, this blog lives in Git and whenever I push new commits it regenerates the site.

Today I spent a little time automating some common actions in Emacs for working with Jekyll blogs. You can find jekyll.el in my Jekyll branch on GitHub.

Here's what it does:

  • C-c b n - Create a new draft post.
  • C-c b P - Publish a draft.
  • C-c b d - List all drafts.
  • C-c b p - List all posts.

I'm quite happy with it, and it has been fun exploring Emacs Lisp.

Jack Moffitt: Journaling with Emacs OrgMode

1 January, 2009 - 21:17

I like to keep a daily journal of what I'm working on so that I can look back and see what I was up to yesterday or a week ago. I sometimes shift context so often during a day that I completely forget what I was previously doing. I used to do this manually in a plain text file, but now I've automated it using Emacs OrgMode.

From anywhere in Emacs, I just hit C-c j and it opens up my journal, creates a new entry if today's entry doesn't already exist, and let's me start typing. It also narrows the buffer in Emacs so that I only see today's entry when I'm journaling.

It might be nice to extend this similarly to my Emacs GTD capture system. I could bind a system wide hot key to open a new frame with the current journal entry; then I could get to my journal easily from anywhere.

Here's the code for those who are interested.

(defvar org-journal-file "~/Documents/org/journal.org" "Path to OrgMode journal file.") (defvar org-journal-date-format "%Y-%m-%d" "Date format string for journal headings.") (defun org-journal-entry () "Create a new diary entry for today or append to an existing one." (interactive) (switch-to-buffer (find-file org-journal-file)) (widen) (let ((today (format-time-string org-journal-date-format))) (beginning-of-buffer) (unless (org-goto-local-search-forward-headings today nil t) ((lambda () (org-insert-heading) (insert today) (insert "\n\n \n")))) (beginning-of-buffer) (org-show-entry) (org-narrow-to-subtree) (end-of-buffer) (backward-char 2) (unless (= (current-column) 2) (insert "\n\n "))))

Jack Moffitt: 2008 In Review

31 December, 2008 - 20:14

It's the last day of 2008, and I have been thinking about what I have done this year.

  • Chesspark added many new features, fixed many bugs, and tried several huge experiments. We explored the freemium model as opposed to straight subscriptions, we launched WuChess as a branded site in cooperation with RZA, and we've spun it off under new management as we pursue a new project.

  • Stanziq was born from a combination of our vision of the new real time Web and many ideas we had at Chesspark. The world needs a real time search engine.

  • My team and I created and then released the code for Speeqe, a Web 2.0 style group chat application based on XMPP. It's time for IRC to die.

  • I learned some new languages. I have spent quite a bit of time with Erlang this year, and I'm looking forward to solving more problems with it in 2009. I've also hacked some Ruby for the first time. I've been picking up a bit of Emacs Lisp and learning about Haskell.

  • I experimented with both Bazaar and Git heavily to replace my use of Subversion. I ended up picking Git and have been extremely happy.

  • I renewed my commitment to XMPP by joining both the XSF board of directors and council.

  • I finally achieved a long time goal of blogging more, which I hope to continue.

  • Most important (to me at least), I gained a new family member - my son, Jasper. He puts a smile on my face every day, and something about constraints he imposes has increased my productivity.

I'm sure there is stuff I have forgotten. I find it remarkable difficult to remember how much time has passed since various events. The last four years with Chesspark seem like they all happened in the last year.

Process One: OneTeam for iPhone 1.2.0

30 December, 2008 - 17:41
OneTeam for iPhone 1.2.0 is scheduled for submission on Apple Appstore.

OneTeam for iPhone is a Jabber / XMPP for iPhone that supports a large subset of the XMPP protocol. It is clean, easy to use and to not rely on third party server (it connects directly to your XMPP server).

I think we have reached a point in development where we are really happy with this client. It supports a really large number of XMPP server and authentication method. One of our biggest surprise has been with iChat server that require very unusual authentication methods. OneTeam for iPhone is probably one of the few XMPP clients that now supports it.

We have been quite far today in supporting XMPP features. For example we support gateways discovery and configuration directly from the phone (and gateway contact addition as well). The next big feature is probably be going to be groupchat support.

We are listening to your comments to help us improve this mobile XMPP client. Currently we think it is one of the most usable mobile client, but we are expecting to make it even better. Your feedback is welcome :)

More details on the product page OneTeam for iPhone.

Jack Moffitt: GTD Capture With Emacs OrgMode

30 December, 2008 - 13:01

Ubiquitous capture is the part of GTD that I am most interested in. While I am working I'll come up with random new ideas, find unrelated bugs in code I'm working on, or find something I need to remember later. I want to make a note of these things without causing much interruption to the task at hand. I've tried a number of solutions to this problem and have now got a great solution going using my favorite editor, Emacs.

Here's a small demo screencast:

Requirements

There are some basic requirements that I think any solution to the capture problem must solve.

It should be immediately accessible from any application on the computer. I want to have some key binding that immediately lets me jot down something quickly and then gets out of my way.

It needs to work everywhere I do. I currently use both OS X and Linux on different machines. I don't want to have to capture only on one machine, and I want the capture method to the be same on both.

Why Emacs

If you use Emacs, then it makes a lot of sense to use it for capture. If you don't use Emacs, then it probably doesn't, although OrgMode is good enough to convert some people.

First, Emacs is everywhere. It runs well on Linux, OS X, and Windows.

Emacs is also where I do a lot of my work already. This means I always have Emacs running, and many times when I am capturing something, it relates to things I am doing in Emacs. Notable exceptions to this include Web browsing and e-mail.

Emacs comes with a remarkably useful extension called OrgMode. OrgMode can be used like an outliner, but it also has hooks for to-do lists and calendaring. OrgMode integrates with Remember which is an Emacs capture tool.

These add up to most of a great capture solution. All we need is some glue.

Capturing From Anywhere

The first requirement is that we be able to capture from anywhere. This means we will need to globally bind some combination of key presses to invoking the Remember functionality in Emacs.

Emacs has a server mode that allows other things to communicate and control it. This is a lot like AppleScript on OS X except that it is done with Emacs Lisp. All we need to do is send Emacs a command when the global hot key is pressed. This is easily accomplished with emacsclient -e '(some-command)'.

Binding the hot key is done in the window manager preferences in Linux. Since my Ubuntu machines run compiz, I added a binding for <Control><Alt>backslash to run emacsclient -n -e '(make-remember-frame)'. On OS X I used Spark to bind the same keys to a small bit of AppleScript which runs the same command as Ubuntu.

Fine Tuning Emacs

Finally, I wanted Emacs to pop up a new, small window (what it calls a frame) and let me start typing. I also wanted Emacs to get rid of the window as soon as I was finished, either by saving my note or discarding it. This took a little digging through Emacs documentation and bits of code, but turned out not to be that hard.

Here is my make-remember-frame code, along with the hooks it needs to work.

(defadvice remember-finalize (after delete-remember-frame activate) "Advise remember-finalize to close the frame if it is the remember frame" (if (equal "remember" (frame-parameter nil 'name)) (delete-frame))) (defadvice remember-destroy (after delete-remember-frame activate) "Advise remember-destroy to close the frame if it is the rememeber frame" (if (equal "remember" (frame-parameter nil 'name)) (delete-frame))) ;; make the frame contain a single window. by default org-remember ;; splits the window. (add-hook 'remember-mode-hook 'delete-other-windows) (defun make-remember-frame () "Create a new frame and run org-remember." (interactive) (make-frame '((name . "remember") (width . 80) (height . 10))) (select-frame-by-name "remember") (org-remember))

Process One: Planet Erlang updated

30 December, 2008 - 09:23
PlanetErlang, the Erlang news and blog post aggregation site has been rewritten.

The new site should be easier to read. It includes a search engine, that allows users to search inside the history of Erlang posts among all the known blogs. The sitebar also contains latest Twitter post on Erlang.

Planet Erlang is available on the following address: http://www.planeterlang.org.

Enjoy !

Tobias Markmann: On the new XMPP server and high release frequency

29 December, 2008 - 23:23

Since quite a month there is a new XMPP server on the market, called Prosody. Today version 0.2.0 has been released with some new features which you can all read up in the release notes.

Version 0.2.0 has been released just one month after version 0.1.0 and four months after development began. With currently nearly one month between a release and the next we have a good release frequency which is fairly important for a project, especially for one which focuses on ease of prototyping new features in and a protocol around it like XMPP with is evolving pretty fast.

With consent of all the other developers, Waqas and my humble self, Matt dictated the use of Lua for the server which has quite some advantages.
Since it's an interpreted language you don't have to wait for building to test some changes you made or don't need stuff like autoconf to build your project cross-platform. However we have some binary modules for encryption and more low-level stuff.

The resulting server is pretty fast, already implements quite some XEPs while not being a memory beast like eJabberd. Not to forget the nice side affect of using Lua as implementation environment which is that you can easily add new protocols to it and test them. This should help us to push the interesting and important XEPs server side so that the client developers get in charge to implement them on their side.

So feel free and grab Prosody from its download page, test it and if you find some please report bugs on the mailing list or in the chat room.


Cheers,
Tobias

Jack Moffitt: Some Predictions For 2009

23 December, 2008 - 07:36

Nathan, my fellow developer at Stanziq was recently asked about his technology predictions for 2009. I thought his answer was excellent, and with his permission, I include it below.

For me, the key point is:

There will be a move beyond the current ajax applications to make the internet more real time.

Nathan's full answer:

I think in 2009 we are going to see some changes in internet applications. There will be a move beyond the current ajax applications to make the internet more real time. An example of the beginnings of this is the live twitter search and 'live feed' feature in facebook. In 2009 we should see internet sites move towards pushing their data out in a live stream. The new internet apps will take advantage of these live streams to create some very nice internet applications. My favorite example is the Noaa website pushing out their buoy data and kayak.com pushing out their flight information. Now combine the two real time feeds and you have an application that will tell you the cheapest way to get to get to good waves! Of course mashups are old news, but real time data and search is not. Another example is a regular static search along with a real time feed that shows "What are people saying about 'my query' now?". This section will show all the micro-blogs or comments made about search results, all in real-time. I only make this prediction because its what our new company, http://stanziq.com , is creating. If we have anything to do with it, this is what will happen in 2009 :)

Artur Hefczyc: Spare hardware for clustering tests needed

20 December, 2008 - 01:49

The main part of the Tigase server development is testing. Actually I spend much more time on testing the server in different scenarios than on writing the actual code.

Most of the tests can be run locally on the development machine. Performance tests and especially load tests require more hardware but usually the development machine as a client and one mor as the server is enough.

One category of tests however require more hardware to be involved and in the best case scenario that hardware should be always on to see how the software behaves over the longer period of time. Clustering tests. They require ideally 3 machines for the server deployment. I run automated tests on the Tigase server very often and also this clustered installation is available to the public at the address: xmpp-test.tigase.org. By running it for a long time and exposing it to the public I can catch many exceptional cases and fix problems which don't appear on short automatic test runs.

At the moment I use 3 machines which are always turned on. Unfortunately 2 of them are very old hardware which have started to refuse working more and more often. Therefore I am looking at replacing them with something different. Ideally it would be low power consumption machine with at least 512MB RAM. There is even no hard disk needed as the system could be started from USB stick or DVD disk. It could be also a laptop with at least single core Pentium M 1.5GHz and 512MB RAM.

If you have such a hardware and can offer it to the project I would very much appreciate your help. Please send me a message using the contact form, or via email/xmpp at the address: kobit AT tigase.org to discuss details. 

read more

Kevin Smith: XMPP: The Definitive Guide - Rough Cuts edition

19 December, 2008 - 07:51

It’s been an exciting time recently for the “XMPP: The Definitive Guide” book that Peter, Remko and I have been working on. Just over a week ago, Remko announced the availability of the book in the Rough Cuts scheme, where you can buy a PDF of the unfinished manuscript to read now, and receive the full version when it’s ready. Then, earlier this week, Peter posted about our submission of the full manuscript to O’Reilly, ready for technical review. Now it’s my turn with the good news: O’Reilly have updated the Rough Cut of the book with our submission, meaning that there is a complete, current book on the XMPP technologies available.

There will still be changes to the manuscript as a result of reviewers’ comments, but we think this is now a text we’re happy to have available. O’Reilly have feedback mechanisms for Rough Cuts, so if you read the book and anything is unclear (or, let us hope not, wrong) please help us make this book something that can guide current and future developers in their work with XMPP.

XMPP: The Definitive Guide

Jack Moffitt: Announcing XMPP Open Day

19 December, 2008 - 05:54

All the feedback about my ideas for XMPP Open Day was very positive, so I think we should make it happen. I’ve created a conference outline in the wiki, but I need your help to nail down the details and generate more ideas.

Please feel free to edit the wiki page, comment here, or e-mail me directly if you have any feedback or wish to participate as a presenter or moderator.

Jack Moffitt: Announcing XMPP Open Day

18 December, 2008 - 22:46

All the feedback about my ideas for XMPP Open Day was very positive, so I think we should make it happen. I've created a conference outline in the wiki, but I need your help to nail down the details and generate more ideas.

Please feel free to edit the wiki page, comment here, or e-mail me directly if you have any feedback or wish to participate as a presenter or moderator.

Fabio Forno: Lampiro bug fixes and improvements

18 December, 2008 - 01:03

One of the great advantages of free and open source projects is the feedback you receive from users. So few days after the release we've been able to fix many quirks while casting the roadmap for the  next major release. In particular:

  • fixed "user add" in the menu, which was not working
  • improved the usability in roster navigation
  • adjusted the "ok" and "cancel" buttons in the composition forms, which were creating some troubles in some phone models

Lampiro 8.11.2 is out, go and get it.