In reply to Modules development:
ejabberd internal modules using only the route table can also be used as external modules conform to XEP-0114 (Jabber Component Protocol) with epeios, and thus, they can be used with any other XEP-0114 compliant XMPP servers.
If you wish to gamble on-line this online casino gambling have every one of the perfect wager games that you've been seeking.
This excellent on the net betting site delivers both web gambling with some of the finest slot machine games out there and also the downloadable online gambling which offers much more various { wager site games.
In reply to module mod_muc_odbc for Mysql. Need your help.:
I cannot open a muc_odbc conference.
My Config is (as of ejabberdctl dump file)
{mod_muc_odbc,
[{host,"conference.@HOST@"},
{access,muc},
{access_create,muc_create},
{access_persistent,muc_create},
{access_admin,muc_admin}]},
There are no errors in the log file.
If I change mod_muc_odbc to mod_muc it works.
Ngrepping the traffic I can see that odbc is working
Login user:
T 127.0.0.1:39266 -> 127.0.0.1:3306 [AP]
3....select password from users where username='admin';
#
T 127.0.0.1:3306 -> 127.0.0.1:39266 [AP]
.....8....def.ejabberd.users.users.password.password.!.........................password.........Open a MUC
T 127.0.0.1:55881 -> 127.0.0.1:3306 [AP]
Y....select opts from muc_room where name='main2' and host='conference.my_jabber.de';
#
T 127.0.0.1:3306 -> 127.0.0.1:55881 [AP]
.....6....def.ejabberd.muc_room.muc_room.opts.opts.!..................................So database connection is there.
I also manually entered an entry into the 'rooms' database table (with empty opts field), but no change.
Grepping on port 5222 I can see:
T 192.168.178.126:39428 -> 192.168.178.171:5222 [AP]
test
#
T 192.168.178.171:5222 -> 192.168.178.126:39428 [AP]
test Any help is appreciated.
In reply to module mod_muc_odbc for Mysql. Need your help.:
I cannot open a muc_odbc conference.
My Config is (as of ejabberdctl dump file)
{mod_muc_odbc,
[{host,"conference.@HOST@"},
{access,muc},
{access_create,muc_create},
{access_persistent,muc_create},
{access_admin,muc_admin}]},
There are no errors in the log file.
If I change mod_muc_odbc to mod_muc it works.
Ngrepping the traffic I can see that odbc is working
Login user:
T 127.0.0.1:39266 -> 127.0.0.1:3306 [AP]
3....select password from users where username='admin';
#
T 127.0.0.1:3306 -> 127.0.0.1:39266 [AP]
.....8....def.ejabberd.users.users.password.password.!.........................password.........Open a MUC
T 127.0.0.1:55881 -> 127.0.0.1:3306 [AP]
Y....select opts from muc_room where name='main2' and host='conference.my_jabber.de';
#
T 127.0.0.1:3306 -> 127.0.0.1:55881 [AP]
.....6....def.ejabberd.muc_room.muc_room.opts.opts.!..................................So database connection is there.
I also manually entered an entry into the 'rooms' database table (with empty opts field), but no change.
Grepping on port 5222 I can see:
T 192.168.178.126:39428 -> 192.168.178.171:5222 [AP]
test
#
T 192.168.178.171:5222 -> 192.168.178.126:39428 [AP]
test Any help is appreciated.
In reply to Display chatrooms on a website:
You may add module mod_admin_extra
Then you will have an additional command, e.g.
ejabberdctl muc_online_rooms This works and returns all muc rooms.
I have also tried this via xml-rpc (ruby), but I get an error:
result = client.call("muc_online_rooms","my.domain")T 127.0.0.1:44922 -> 127.0.0.1:4560 [AP]
<?xml version="1.0" ?>muc_online_rooms my_domain .
##
T 127.0.0.1:4560 -> 127.0.0.1:44922 [AP]
HTTP/1.1 200 OK..Content-Length: 316..Server: Erlang/1.13..Content-Type: text/xml..Connection: close....<?xml version="1.0"?>faultCode -112 >faultString Error -112.Unknown call: {call,muc_online_rooms,["my_domain"]} So I cannot use it. But this should be the way.
If you get it working, please give a feedbck, as I would be very much interested.
In reply to module mod_muc_odbc for Mysql. Need your help.:
Note the above post is happening when I have manually set up an entry in the muc_rooms tabele.
It dissappears when I delete this entry.
However I cannot open a muc_odbc conference.
My Config is (as of ejabberdctl dump file)
{mod_muc_odbc,
[{host,"conference.@HOST@"},
{access,muc},
{access_create,muc_create},
{access_persistent,muc_create},
{access_admin,muc_admin}]},
There are no errors in the log file.
If I change mod_muc_odbc to mod_muc it works.
Ngrepping the traffic I can see that odbc is working
Login user:
T 127.0.0.1:39266 -> 127.0.0.1:3306 [AP]
3....select password from users where username='admin';
#
T 127.0.0.1:3306 -> 127.0.0.1:39266 [AP]
.....8....def.ejabberd.users.users.password.password.!.........................password.........Open a MUC
T 127.0.0.1:55881 -> 127.0.0.1:3306 [AP]
Y....select opts from muc_room where name='main2' and host='conference.my_jabber.de';
#
T 127.0.0.1:3306 -> 127.0.0.1:55881 [AP]
.....6....def.ejabberd.muc_room.muc_room.opts.opts.!..................................So database connection is there.
I also manually entered an entry into the 'rooms' database table (with empty opts field), but no change.
Grepping on port 5222 I can see:
T 192.168.178.126:39428 -> 192.168.178.171:5222 [AP]
test
#
T 192.168.178.171:5222 -> 192.168.178.126:39428 [AP]
test Any help is appreciated.
In reply to gzip compression for BOSH HTTP traffic:
Few comments:
"") and fit into a single packet, gzipping single packet response gives completely no gain, but obviously uses CPU; it would be better to gzip only responses that are larger than one packet (HTTP body larger than 1200-1300 bytes, depending on the amount of HTTP headers)Merge pull request #306 from beanieboi/patch-1 Update lighttpd_
Merge pull request #309 from jd/master Fix getenv usage in swift plugins
In reply to module mod_muc_odbc for Mysql. Need your help.:
I just received a crash report:
=PROGRESS REPORT==== 21-May-2013::14:25:01 ===
supervisor: {local,ejabberd_sup}
started: [{pid,<0.325.0>},
{name,'ejabberd_mod_muc_sup_my_domain.de'},
{mfargs,
{ejabberd_tmp_sup,start_link,
['ejabberd_mod_muc_sup_my_domain.de',
mod_muc_room]}},
{restart_type,permanent},
{shutdown,infinity},
{child_type,supervisor}]
=CRASH REPORT==== 21-May-2013::14:25:01 ===
crasher:
initial call: mod_muc_odbc:init/1
pid: <0.326.0>
registered_name: []
exception exit: {undef,[{ejabberd_odbc,decode_term,[[]]},
{mod_muc_odbc,'-load_permanent_rooms/5-fun-0-',6},
{lists,foreach,2},
{mod_muc_odbc,init,1},
{gen_server,init_it,6},
{proc_lib,init_p_do_apply,3}]}
in function gen_server:init_it/6
ancestors: [ejabberd_sup,<0.37.0>]
messages: []
links: [<0.62.0>,<0.226.0>]
dictionary: []
In reply to Управление shared_roster через XMPP:
Да, ejabber v 2.1.10 на Ubuntu 12.04
Можно перевести на 11 или 12 версию.
Voici 8 mois qu’a eu lieu la dernière réunion de travail. 8 mois pendant lesquels on s’est déchaîné comme des fous !
Ha, omega me souffle que ce n’est pas crédible, et il n’a pas tout à fait tort (IRL, tout ça). Quoi qu’il en soit, il y a quand même eu suffisament d’avancées pour que cela vaille la peine qu’on fasse le point sur la situation actuelle, et que l’on prépare l’avenir ensemble.
Une réunion aura donc lieu le jeudi 23 mai 2013 de 20h30 à 22h00 (heures de Paris) sur le salon association@chat.jabberfr.org. La réunion étant ouverte à tout le monde (membres de l’association ou pas), nous vous attendons nombreux, mais dans le calme et respectueux du lieu.
L’ordre du jour est disponible dès maintenant sur le wiki. Pour les plus impatients, sachez que l’on y parlera, entre autres, de la migration de im2 sur prosody (et de ce que ça entraîne) et du fait que l’on stagne à 13 membres depuis janvier. Le temps restant sera consacré aux éventuelles questions du « public » restées sans réponse.
Voici 8 mois qu’a eu lieu la dernière réunion de travail. 8 mois pendant lesquels on s’est déchaîné comme des fous !
Ha, omega me souffle que ce n’est pas crédible, et il n’a pas tout à fait tort (IRL, tout ça). Quoi qu’il en soit, il y a quand même eu suffisament d’avancées pour que cela vaille la peine qu’on fasse le point sur la situation actuelle, et que l’on prépare l’avenir ensemble.
Une réunion aura donc lieu le jeudi 23 mai 2013 de 20h30 à 22h00 (heures de Paris) sur le salon association@chat.jabberfr.org. La réunion étant ouverte à tout le monde (membres de l’association ou pas), nous vous attendons nombreux, mais dans le calme et respectueux du lieu.
L’ordre du jour est disponible dès maintenant sur le wiki. Pour les plus impatients, sachez que l’on y parlera, entre autres, de la migration de im2 sur prosody (et de ce que ça entraîne) et du fait que l’on stagne à 13 membres depuis janvier. Le temps restant sera consacré aux éventuelles questions du « public » restées sans réponse.
-- JabberFRIn reply to Authentication with any login and password:
Configure your server to Anonymous authentication.
https://git.process-one.net/ejabberd/mainline/blobs/raw/v2.1.11/doc/guid...
Fix getenv usage in swift plugins os.getenv returns a string, not an integer, so using %s will fail if the variable SWIFT_OBJECT_PORT is set.
As you know, ProcessOne is about realtime messaging. Our core component is XMPP ejabberd scalable and ubiquitous server. We recently acquired Boxcar to use a familiar and popular brand for our large scale push notification service for mobile as well.
From this perspective, Google’s huge update on its Cloud Messaging service is the biggest announcement from this year Google I/O, as it mixes our two core strengths. We strongly believe this is a big deal for mobile developers and we will explain why.
In case you never heard about it, here is a quick overview.
Google Cloud Messaging have been announced last year as a replacement of Google Cloud to Device Messaging. This is a service that allows mobile developer to notify mobile devices (but also Chrome browser) about important changes on the server-side component of the application. It makes it possible for the device to stay up to date, without the need to use polling. Polling is about checking periodically for updates on your server and is bad for several reasons:
Push notifications avoid all those drawbacks, saving battery life, providing lower latency, reducing server load. As a permanently connected session to Google servers, it get the important notification messages as soon as they happen, in a battery efficient way.
Being a service that runs at device level, it can be optimized across applications running on the same device and perform further battery saving benefits.
So, this is a really critical feature to implement in application relying on data coming from the network (which actually covers a lot of applications).
GCM offers nice outstanding features like:
The new update is a brand new service deployment bringing a large set of new features for developers.
In short, it brings:
Google choose to use XMPP to allow developers to keep a persistent connection. It works as follow:
This alone brings you a huge performance increase, allowing your server to send up to 4000 messages per second on the persistent connection. Knowing you are allowed up to 10 connections, you can possibly send many notifications fast (up to 40k notifications per second).
A few things to note:
Upstream messaging allows your client to send data asynchronously to your server. Compared to HTTP posts, it offer several advantages:
As a developer, your server will receive the message through an XMPP connection. However, be very careful about your server efficiency: you have to be robust and read data fast as the GCM server will queue for you 100 messages before starting to overwrite them (and if you are offline for 24 hours it will discard your messages).
The goal of this feature is to makes your notifications state becomes up to date and consistent across a user devices, by propagating state change between the user application installations on your various devices.
This feature is designed to bring many added benefits in the way multiple devices are handled.
First, to know that your app is used by the same users, you can group your device Registration Ids under the same notification_key. Notification key is typically a hash of the username. You are allowed up to 10 devices linked to that notification_key.
Once you have done that, you can use that notification_key as a user id to send notifications to all devices of a given user. By doing so, you let GCM performs lots of optimizations under the hood. Notification will be send in priority to the active device or the last active device. Other devices will get the notification a bit later in a delay while idle type of delivery.
Once the notification has been processed and dismissed, other devices are notified and they can remove the notification as well. If they were not notified yet, notification is directly canceled from the notification queue.
As you see, update to Google Cloud Messaging is really a big update for developers, increasing the number of situation this platform is relevant.
We are already working on supporting those improvements on our push notification platform to help you all benefits of those improvements.
Stay tuned for more information on this support very soon.
Here is the video of Francesco Nerieri’s talk on GCM:
Update lighttpd_ fix typo
Today was the keynote of Google I/O developer conference. The keynote is usually the place where major announcements are made regarding the Google ecosystem.
Despite impressive announcements, the most important thing that strikes me is not what has been released, but what has not been mentioned.
First, what are the main areas of focus this year ?
Either on Android, on Chrome or on the Cloud and server engine architecture Google is showing its consistency in pushing further existing services, adding new ones, and integrating all the pieces together. Here is the impressive list of highlights to their service stack:
Google Cloud Messaging is one our main area of interest. We are already working on the new features and we will have announcements to make soon under our mobile Boxcar brand. Stay tuned :)
There have also been announcements focusing on Google services improvements or addition for main users (as opposed to developers):
Note from an XMPP developer perspective: Does the new Hangouts mean Gtalk and XMPP will disappear, along with interoperability ? There was not word about it, but I think so.
Impressive, isn’t it ?
Still, as a developer, that first day strangely leaves me with a feeling of unfullfilled expectations. Why ? I think to understand it, we need to list what Google did not talk about.
In previous Google I/O, the center stage is usually taken by:
On this side, nothing has been announced. No mention of Android for home or TV. No successor for the now dead Nexus Q. No update on Android Accessory Developement Kit. No glasses push. No new wearable computer.
Despite a few talks on Google glasses tomorrow, there have been little mention of the progress so far in the keynote.
This year, Google is focusing on services for several (valid) reasons:
But as Google focus on Services, the story they tell is increasingly about themselves.
For Android developer, on the most major highlight (outside of Google Services) was Android Studio, a development environment based on Jetbrains Intellij, release today in early preview (version 0.1!).
Google have even been heavily promoting Chrome on Desktop, but now also on Android and iOS, focusing on bringing the same experience from all the environment. Along with the fact that both Chrome and Android and under the unique direction of Sundar Pichai, this leave a strange confusing impression.
My conclusion is that for Google, devices do not matter. When Larry Page says that he wants the technology, the device to disappear, he actually means it in the proper sense. Google Glasses and conversational search are a steps in that direction. They are the most straightforward access to Google services. Ideally, they should not even be needed.
It does not matter if you use Chrome, Glasses, Android or iOS to access Google Services. What matter are the services themselves and the contextual data that can be gathered to improve relevance and personnalisation of the service.
Sundar Pichai said two days ago that Google I/O will not be centered on the devices. It is because devices are not an end but a mean for Google.
I feel at this Google I/O, the goal of Google has never been more clear (if you look through the confusion I mentioned earlier).
At this very moment, the path of Apple and Google may split there:
Google wants to improve people lifes with services, making the technology totally hidden. Apple wants to improve people life by focusing on how people interact with the technology (touch, voice, and more). This goes through devices improvements (lighter, faster, easier to use), not making the devices disappear.
Today, I feel that we are at a turning point, I am really looking forward WWDC to see what will be Apple move.
Le service d’email Outlook.com de Microsoft serait en train de déployer le chat compatible avec Gtalk…
MSN/WLM venant de fermer ses portes au profit de Skype, après avoir implémenté le protocole XMPP client-to-server, comme Facebook, c’est encore un coup de tonnerre de Redmond.
Quelqu’un peut m’expliquer ?
Le service d’email Outlook.com de Microsoft serait en train de déployer le chat compatible avec Gtalk…
MSN/WLM venant de fermer ses portes au profit de Skype, après avoir implémenté le protocole XMPP client-to-server, comme Facebook, c’est encore un coup de tonnerre de Redmond.
Quelqu’un peut m’expliquer ?
Merge pull request #305 from dsavineau/master Fix indexcounters and globallock in 2.2 and 2.4 version btree sub-document has been removed in 2.4 : http://docs.mongodb.org/manual/reference/command/serverStatus/#serverStatus.indexCounters ratio sub-document has been removed in 2.2 http://docs.mongodb.org/manual/reference/command/serverStatus/#serverStatus.globalLock.ratio
Fix indexcounters and globallock in 2.2 and 2.4 version
In reply to Display chatrooms on a website:
Hi, I think your blog might be having browser compatibility issues. When I look at your blog in Firefox, it looks fine but when opening in Internet Explorer, it has some overlapping. I just wanted to give you a quick heads up! Other then that, fantastic blog!
Merge pull request #300 from lirantal/master Adding a new Drupal/Generic page speed monitoring script
Merge pull request #302 from claudius23/snmp_netapp plugins/snmp/snmp__netapp_* initial checkin of my snmp__netapp_ plugins.
plugins/snmp/snmp__netapp_* initial checkin of my snmp__netapp_ plugins.
move postfix plugins into the mail directory
Merge pull request #298 from kabo/master php_fpm_process update
Merge pull request #232 from bAndie91/master add "e2" plugin
Merge pull request #299 from claudius23/zfs_usage_ plugins/zfs/zfs_usage_ add environment variables, call zfs binary only once
adding a new monitoring script which allows to configure pages to login to and visits and time their load time
plugins/zfs/zfs_usage_ add environment variables, call zfs binary only once
Quelques fois, il est recommandé de suivre quelques tweets perdus dans la jungle, on peut trouver quelques perles…
HTTP over XMPP ?
Peter Waher, de Clayster AB (société suédoise de IoT, Internet of Things), a tweeté :
Done for today. I’ve started implementing the HTTP over XMPP transport into our web server. Will be very interesting to try out when done :)
— Peter Waher (@PeterWaher) May 6, 2013
Ce à quoi je me suis permis de répondre :
@peterwaher indeed, interesting to have an auth’ed and always-on bidir. connection to an app server, what do you plan to do with this?
— Nicolas Vérité, Nÿco (@nyconyco) May 7, 2013
Et sa réponse :
@nyconyco It will enable web-apps hosted on plug computers in your home to be accessed in an easy and secure manner from your phone/tab.
— Peter Waher (@PeterWaher) May 7, 2013
En effet, le potentiel de véhiculer le vocabulaire simple HTTP au-dessus d’un protocole connecté, authentifié et chiffré est pertinent dans bien des cas, évitant des béquilles et bricolages parfois inutilement compliqués.
Nouveau serveur XMPP en Rust ?
Pascal, un germanophone dont j’ignore tout, a tweeté :
A Jabber client just announced its online status on rust-jabber, an XMPP server I’m writing in #rustlang \o/
— Pascal (@zynisch) May 5, 2013
Question d’un anonyme :
@zynisch is it an open source project or private one?
— pcdinh (@pcdinh) May 7, 2013
Réponse :
@pcdinh Currently private (as I use it to learn Rust), but it will definitely made public once I cleaned up the source.
— Pascal (@zynisch) May 7, 2013
Là aussi, je me suis permis ce tweet :
@zynisch @pcdinh the sooner the better, you know "release early, often", anyway congrats for that XMPP server, I look fwd to playing with it
— Nicolas Vérité, Nÿco (@nyconyco) May 7, 2013
Ce à quoi il répond :
@nyconyco Yepp, I like "release early, release often". However, the current state is more of a PoC, especially the threading and parsing.
— Pascal (@zynisch) May 7, 2013
On avait des serveurs en erlang, Java, Lua, C, C++, et de quoi faire en Perl et Python, voici donc Rust.
Updated name and added env.pool - The name in =head1 did not match the filename. - The $pool-variable was used in the config-section, but was never initialized. It is now extracted from the fcgi-response
In reply to how can I get StateData and replace this value in mod_muc_room:
problem solved on a stackoverflow:
http://stackoverflow.com/questions/16318307/how-can-i-get-statedata-and-...
In reply to how to encrypt passwords when using mysql:
For that reason, incorporating the encryption and decryption of plaintext passwords in ejabberd doesn't make any sense.
Sorry, but this sounds completely like bullshit to me.
Security should start at the lowest layer and focus all elements in the relevant chain.
So, securing esp. passwords is one of the first issues that should be focused in security.
I think there are enought reasons why passwords should be secured:
- multiple administrators (priviliged access management, ...)
- 3rd party application security, i.e. interfacing an external web application for account mangement
- application security, etc.
There are enough services all around the ecosystem that demonstrate how to handle secured passwords in the
database.
i.e. mysql and postgresql support different encryption methods for passwords and indicate them by some attribute or pattern-matching like "{md5}d41d8cd98f00b204e9800998ecf8427e".
sincerely
roland
EtherDraw is a collaborative drawing / painting / sketching tool brought for you by some of the Etherpad team.
You can enable integration with Etherpad by installing the ep_draw plugin
Grab it by doing:
git clone git@github.com:JohnMcLear/draw.git cd draw bin/run.sh-- Features, doodle, draw, drawing, paint, painting, sketch, sketching
In reply to CPU usage very high/epoll:
I ran ejabberdctl debug and then etop:start([{output, text}]).
I see:
Pid Time Reds Memory MsgQ Current Function
<5591.511.0> ejabberd_mod_pubsub_ '-' 127139******** 62378 dets:req/2
We had a bug in our client that caused subscriptions to be sent over and over again for the same items. We are in the process of desubscribing from these which I think explains the the MsgQ size. Question is why is Time set to '-' and why does the CPU seem to get fixed at about 1 CPU?
Full output:
========================================================================================
'ejabberd@prod-xmpp-barker0.prod.djrd.dowjones.net' 13:14:25
Load: cpu 117 Memory: total 2338890 binary 24916
procs 2155 processes 1822205 code 15571
runq 1 atom 549 ets 441591
Pid Name or Initial Func Time Reds Memory MsgQ Current Function
----------------------------------------------------------------------------------------
<5591.245.0> proc_lib:init_p/5 '-' 1860068 29872 0 dets:open_file_loop2
<5591.501.0> ejabberd_mod_pubsub_ '-' 51033022445928 0 gen_server:loop/6
***************proc_lib:init_p/5 '-' 219408 460048 0 prim_inet:recv0/3
***************proc_lib:init_p/5 '-' 143353 4119712 0 prim_inet:recv0/3
***************proc_lib:init_p/5 '-' 143053 689576 0 prim_inet:recv0/3
***************proc_lib:init_p/5 '-' 133426 514232 0 prim_inet:recv0/3
***************proc_lib:init_p/5 '-' 128552 426560 0 prim_inet:recv0/3
<5591.511.0> ejabberd_mod_pubsub_ '-' 127139******** 62378 dets:req/2
***************proc_lib:init_p/5 '-' 113503 4720688 0 gen:do_call/4
***************proc_lib:init_p/5 '-' 97313 284704 0 prim_inet:recv0/3
========================================================================================
In reply to CPU usage very high/epoll:
Using etops I see that the pubsub module is processing a very large MsgQ. This is due to a bug we had in our client that was causing new subscriptions to be made on each launch of the client. We are in the process of getting those clients to desubscribe.
Question is why is CPU fixed at around 1 full CPU? This doesnt seem to go up or down much. How can I get it to process this queue faster?
========================================================================================
'ejabberd@prod-xmpp-barker0.prod.djrd.dowjones.net' 13:14:25
Load: cpu 117 Memory: total 2338890 binary 24916
procs 2155 processes 1822205 code 15571
runq 1 atom 549 ets 441591
Pid Name or Initial Func Time Reds Memory MsgQ Current Function
----------------------------------------------------------------------------------------
<5591.245.0> proc_lib:init_p/5 '-' 1860068 29872 0 dets:open_file_loop2
<5591.501.0> ejabberd_mod_pubsub_ '-' 51033022445928 0 gen_server:loop/6
***************proc_lib:init_p/5 '-' 219408 460048 0 prim_inet:recv0/3
***************proc_lib:init_p/5 '-' 143353 4119712 0 prim_inet:recv0/3
***************proc_lib:init_p/5 '-' 143053 689576 0 prim_inet:recv0/3
***************proc_lib:init_p/5 '-' 133426 514232 0 prim_inet:recv0/3
***************proc_lib:init_p/5 '-' 128552 426560 0 prim_inet:recv0/3
<5591.511.0> ejabberd_mod_pubsub_ '-' 127139******** 62378 dets:req/2
***************proc_lib:init_p/5 '-' 113503 4720688 0 gen:do_call/4
***************proc_lib:init_p/5 '-' 97313 284704 0 prim_inet:recv0/3
========================================================================================
In reply to Questions on ejabberd operation:
1. I have a cluster with two nodes. The database storage type of the master and slave nodes are configured by the web console. How could I do it with command line? This is important because when new node is added to the cluster, we can configure it with some scripts other than manually in web console.
ejabberd itself does not provide many administrative tools for Mnesia configuration. So, you will have to enter the erlang console and use erlang commands there manually.
2. How could I dump the configuration currently running in my cluster, such as the database storage type? I'd like get the configuration dumped as a file such that I can add it to our repo for version controlling. And, of course, could such dump be restored to ejabberd?
I checked this, but it does not provide enough information:
$ ejabberdctl dump /tmp/ejab.txt
This erlang command shows more details of the Mnesia database configuration:
mnesia:info().
3. How to monitor the performance of ejabberd? I mean how much memory it is eating, how many active connections, etc. Which processes need to monitor?
Maybe that helps to start: mod_statsdx provides more ejabberd commands to get statistics, and also provides a simple WebAdmin page.
4. When the business growth, when do I need to add a new node to the cluster? In other words, we need monitor the status of the servers, and need to know how to unscramble the data, which is the basis to make decision to add new machine to support our xmpp domain.
In reply to ejabberd keeps stopping for no apparent reason:
Those " " messages are probably the typical keep-alive messages some clients send every few seconds to ensure the connection is kept open. They are not necessary, but they are not reason for the problem you have: I think the problem is somewhere else.
If ejabberd stops kindly, it should show in the log some mention. If it crashes abruptly, it should leave a crash dump. So, if you have neither of them, I have no more clues.
In reply to Question about authentication and the time before server actually responds with roster data:
This wait time is not normal. Maybe the roster is stored in a too busy database machine, or it is too big (several thousands of items).
Thanks to our good friends at Mozilla, WikiMedia Foundation and Primary Technology we are proud to announce really-real time collaborative Slideshow presentations powered by Etherpad!
John McLear demonstrates a beta version at Mozilla earlier this year.
Have a go with Slideshows yourself.
Get the slideshow plugin for Etherpad by installing Etherpad and visiting http://yourEtherpadURL/admin/plugins
Visit the slideshow plugin repository on Github to begin contributing!
Get Etherpad now, it’s super easy to install, free and open source!
-- FeaturesMerge pull request #297 from Dave-Driesen/master Update psad plugin to use DERIVE
Merge pull request #295 from cryptickrisp/master Fixes plugins/network/bandwidth_ initialization for first runs
Update psad plugin to use DERIVE Now using DERIVE, with zero minimum value. As per suggestion from Kenyon. Thanks! Dave Driesen
need autoconf before config
In reply to vCard Photo Stored in Database, but other vCard data retrieved from LDAP:
Bump.
Hello,
I have the same problem, i can't find a way to make it works.
Does the situation have changed ? Or another trick ?
Regards.
In reply to Hot to configure ejabberd to use multiple ldap_base and single ldap_rootdn for one LDAP server ?:
Hi
Is possible to share format of search filter what you used.
Thanks
Krishna
Vous savez, XMPP est partout… Dans screenhero et Libon, entre autre. screenhero est une application de partage d’écran, clavier et souris à distance. Libon est une application de chat, contact, VoIP et répondeur. Les deux utilisent XMPP pour la présence et le chat, avec pour backend ejabberd.
include interface in title
update documentation
Allows setting warnings by environment variables.
Fixes bandwidth_ to successfully init new installs. Previously the script would try to divide by 0 for calculating rates on the first run, and crash before getting to store() to write initial values thus never initing itself. This fixes that, and makes it a little easier to debug in case of future crashes (no need for 'eval' wrapper).
In reply to mod_log_chat - log chat messages in text files:
Hi
Is possible to exclude jids using mod_log_chat.
Could you please confirm.
Your help is highly appreciated
Thanks
Krishna
Une maintenance du serveur de JabberFR, entrainant l’arrêt complet de tous les services, aura lieu le lundi 22 avril 2013 de 17h30 à 19h.
L’intervention aura lieu en deux temps : l’équipe de l’Apinc ajoutera d’abord une solution de bonding au serveur, puis nous migrerons notre instance de jabberd14 vers prosody.
Pour rappel, l’instance de jabberd14 gère tous les domaines en dehors de jabber.fr et im.apinc.org. On en profitera aussi pour rajouter le support du domaine jabberfr.org. Les membres actuels pourront donc enfin avoir leur adresse en jabberfr.org (un mail leur sera d’ailleurs bientôt adressé pour qu’ils puissent choisir le jid qui les intéresse).
Mise à jour du 21/04/2013 à 21h40 : La maintenance finira en fait vers 00h30. Les services ne seront pas entièrement coupés, mais seront quand même perturbés durant cette période.
Mise à jour du 23/04/2013 : La maintenance s’est bien passée. Aucun incident n’est à déplorer.
Une maintenance du serveur de JabberFR, entrainant l’arrêt complet de tous les services, aura lieu le lundi 22 avril 2013 de 17h30 à 19h.
L’intervention aura lieu en deux temps : l’équipe de l’Apinc ajoutera d’abord une solution de bonding au serveur, puis nous migrerons notre instance de jabberd14 vers prosody.
Pour rappel, l’instance de jabberd14 gère tous les domaines en dehors de jabber.fr et im.apinc.org. On en profitera aussi pour rajouter le support du domaine jabberfr.org. Les membres actuels pourront donc enfin avoir leur adresse en jabberfr.org (un mail leur sera d’ailleurs bientôt adressé pour qu’ils puissent choisir le jid qui les intéresse).
Mise à jour du 21/04/2013 à 21h40 : La maintenance finira en fait vers 00h30. Les services ne seront pas entièrement coupés, mais seront quand même perturbés durant cette période.
Mise à jour du 23/04/2013 : La maintenance s’est bien passée. Aucun incident n’est à déplorer.
-- JabberFRm plugins/system/cpu_by_process
Merge pull request #292 from presbrey/patch-1 fix cpu_by_process time parser
m plugins/system/pagefaults_by_process
Merge pull request #291 from jesseadams/master Tweaks for system/pagefaults_by_process
m plugins/openvpn/openvpn_multi
openvpn/openvpn_multi: re-add configuration documentation
m plugins/openvpn/openvpn_multi
Merge pull request #289 from HeisSpiter/master Replacement plugin for openvpn_multi
+ plugins/network/psad
Merge pull request #288 from Dave-Driesen/master Add port scan detection plugin (psad)
m plugins/system/freeboxuptime
system/freeboxuptime: move to the system category
m plugins/system/freeboxuptime
move uptime plugin to the system directory
+ plugins/wiki/mediawiki_api
Merge pull request #282 from rk4an rewrite mediawiki plugin with api access
+ plugins/drupal/drupal_files_total.php + plugins/drupal/drupal_forums_total.php + plugins/drupal/drupal_node_distribution_count.php + plugins/drupal/drupal_users_online.php + plugins/drupal/drupal_users_total.php
Merge pull request #284 from lirantal/master Added monitoring scripts for Drupal CMS web application
+ plugins/minecraft/minecraft-users-ram_
Merge pull request #280 from patschi/patch-1 Create minecraft-users-ram_
m plugins/newznab/nn_
Merge pull request #277 from NNScripts/master Newznab updated categories.
In reply to how to modify chat with bad word:
you can do that by mod_shit
http://www.ejabberd.im/node/9971
In reply to mod_log_chat - log chat messages in text files:
Hi,
I am have ejabberd with version 2.1.9.
I want to store all Users chat history except some one.
Is possible to implement this..
Please confirm
Your help is highly appreciated.
Thanks
GK
In reply to ejabberd: patterns and responsiveness:
- Is this pattern fit XMPP / ejabberd features?
Yes.
- Can 1 ejabberd server broadcast one message to 1000 clients in less than 1 sec? Of course, it depends a lot on the server class, network ... but what is your experience?
If there's only one room with 1000 occupants, probably yes with any basic machine. If it's several rooms with such activity every few seconds... then it will require a good machine.
- If a cluster of ejabberd servers is used can a chat room be splitted over several servers?
No. From what I remember, each room lives only in the node where it's created. Any user connected to any of the nodes can join that room. And different rooms can live in different nodes.
- When a thin user sends a message and cannot be delivered, does the thin user receive a notification?
It depends on the cause of the problem, but in general there isn't guarantee.
In reply to Problem installing mod_muc_admin:
It was a bug in the code. Fixed in git.
In reply to Display chatrooms on a website:
If you install mod_muc_admin, it adds to the ejabberd WebAdmin a page with rooms information. Maybe you can write a script that extracts every minute this information to a plain HTML for public viewing.
In reply to can't write into log file:
Your description looks correct. I tried it, and works for me: in ejabberd.log I see a line:
=INFO REPORT==== 2013-04-16 20:30:47 === I(<0.39.0>:mod_write_module:11) : Loading module 'mod_hello'
When you add your module to ejabberd.cfg, and you start ejabberd, see if there is any new message (maybe some error report?).
Infradoom is a patch release to support broken session logic caused by an express update. Infradoom also has various other nice bits, bug fixes and patches.
From the changelog:
NEW: Broadcast slider is exposed in timeslider so plugins can interact with it
Fix: IE issue where pads wouldn’t load due to missing console from i18n
Fix: console issue in collab client would error on cross domain embeds in IE
Fix: Only Restart Etherpad once plugin is installed
Fix: Only redraw lines that exist after drag and drop
Fix: Pasting into ordered list
Fix: Import browser detection
Fix: 2 Part Locale Specs
Fix: Remove language string from chat element
Fix: Make Saved revision Star fade back out on non Top frames
Other: Remove some cruft legacy JS from old Etherpad
Other: Express 3.1.2 breaks sessions, set Express to 3.1.0
Like how Google Docs shows where other authors are on the document? Well Etherpad also has that functionality and it’s only a few clicks away!

Grab ep_cursortrace from your /admin/plugins page.
Who doesn’t love Markdown? With ep_markdown you can use rich editing buttons and see rich edits and markdown together or toggle between markdown/up visibility. It’s really nice and a useful addition to Etherpad.

Grab ep_markdown from your /admin/plugins page.
Left, Center, Right and Justify Text in your pad. Great when paired up with ep_page_view for a richer editing experience.

Grab ep_align from your /admin/plugins page.
Stop Writing is a plugin for teachers and other pad owners to stop collaborators for writing, possibly to partake in a discussion or other announcement.

Grab ep_stop_writing from your /admin/plugins page.
Pad Stats is a commercial plugin but still really cool.
Get stats such as Character Count, Word Count, Revision Count, Saved Revision count and various Author Statistics.
In reply to Problem installing mod_muc_admin:
Thank you, that worked, and was obvious in retrospect.
However, while Ejabberd now compiles and runs, I cannot figure out how to correctly use the module.
When I do ./ejabberdctl muc_online_rooms global
I get the following err:
Problem 'error badarg' occurred executing the command.
Stacktrace: [{erlang,'++',[<<"shulamis">>,[64|<<"conference.aviezri.org">>]],[]},
{mod_muc_admin,'-muc_online_rooms/1-fun-0-',3,[{file,"src/mod_muc_admin.erl"},{line,174}]},
{lists,foldl,3,[{file,"lists.erl"},{line,1248}]},
{ejabberd_ctl,call_command,3,[{file,"ejabberd_ctl.erl"},{line,293}]},
{ejabberd_ctl,try_call_command,3,[{file,"ejabberd_ctl.erl"},{line,269}]},
{ejabberd_ctl,process2,3,[{file,"ejabberd_ctl.erl"},{line,218}]},
{ejabberd_ctl,process,1,[{file,"ejabberd_ctl.erl"},{line,203}]},
{rpc,'-handle_call_call/6-fun-0-',5,[{file,"rpc.erl"},{line,205}]}]
Please help.
Munin's greatest strength is its very KISS architecture. It therefore gets many things right, such as a huge modularity.
Each component (master/node/plugin) has a simple API to communicate with the others.
I admit that the master, even the node, have convoluted code. In fact some rewrites already do exist.
And they are a really good thing, as it enables rapid prototyping on things that the stock munin has (currently) trouble to do.
The stock munin is a piece of software that many depend upon, so it has to move at a much slower pace than one does want, even me. As much as I really want to add many many features to it, I still have to take extra care that it doesn't break stuff, even the least known features.
So I take munin off-springs very seriously and even offer as much help as I can in order for them to succeed.
In my opinion competition is only short bad in the short term, and in the long term they usually add significant value to the whole ecosystem. That said, there's always a risk to become slowly irrelevant, but I think that's the real power of open-source's evolutionary paradigm : embrace them or become obsolete and get replaced.
Since, if someone takes the time to author a competitor that has a real threat potential, it mostly means that there's a real itch to scratch and that many things are to be learnt.
The munin ecosystem is divided in 3 main categories, obviously related to the 3 main components of munin : master, node & plugin.
That's the most obvious part as custom plugins are the real bread and butter of munin.
Stock plugins are mostly written in Perl or POSIX shell, as Perl is munin's own language and POSIX shell is ubiquitous. That fact is acknowledged by the fact that core munin provides 2 libraries (Perl & Shell) to help plugin authoring.
So, it's quite natural that each mainstream language has grown its own plugin library. Some language even have two of them.
Some plugins got even rewritten in plain C, as it was shown that shell plugins do have a significant impact on very under-powered nodes, such as embedded routers.
This component is very simple. Yet, it has to be run on all the nodes that one wants to monitor. It is currently written in Perl, and while that's not an issue on UNIX-like systems, it can be quite problematic on embedded ones
The official package comes with a POSIX shell rewrite that has to be run from inetd. It is quite useful for embedded routers like OpenWRT, but still suffers from an hard dep on POSIX shell and inetd.
SNMP is another way to monitor nodes. While it works really well, it mostly suffers the fact that its configuration is quite different of the usual way, so I guess some things will change on that side.
Win32 has long been a very difficult OS to monitor, as it doesn't offer much of the UNIX-esque features. Yet the number of win32 nodes that one wants to monitor is quite high, as it makes munin one the few systems that can easily monitor heterogeneous systems.
Therefore, while you can install the stock munin-node, several projects emerged. We decided to adopt munin-node-win32.
There's also a dedicated node for Android. It makes sense, given that the Android is yet Linux-derived, but lacks Perl, and is a Java mostly platform. This node also has some basic capabilities of pushing data to the master instead of the usual polling.
This is specially interesting given the fact that Android nodes are usually loosely connected, so the node spools values itself and pushes them when it recovers connectivity.
Note that this is specifically an aspect that is currently lacking in munin, and I'm planning to address it in the 2.1 series. So thanks to its author for showing a relevant use-case.
That's my last experiment. It started with a simple question : how difficult would it be to code a fairly portable version of the node ?
It turned out that it wasn't that difficult. I'm even asking myself about eventually replacing the win32 specific port with this one, as the code is much simpler. The win32 node has several plugin built-in mostly due to platform specifics. I still have to find a way to work my way around it, but it's in quite good shape.
This post was originally done to promote it, but while writing it I noticed that the ecosystem deserved a post on its own. So I'll write another one, specific to the C port of munin-node and plugins.
The master is the most complex component. So rewrites of it won't happen as-is. They usually take the form of a bridge between the munin protocol and another graphing system, such as Graphite.
There are also client libraries that are able to directly query munin nodes, to be able to reuse the vast ecosystem. Languages are various, from the obvious Python to Ruby, along with a quite modern node.js one.
-- munin, ecosystem, sysadminIn reply to Problem installing mod_muc_admin:
4+. Copy the compiled mod_muc_admin.beam to the system path where you have all the other ejabberd *.beam files.
In reply to Any limitation to number of users in one MUC room?:
There isn't a fixed limit. It depends on the machine capabilities.
On the other hand, it's preferable to have many rooms with few ocupants, than few rooms with many occupants. Because many occupants (hundreds) chatting a lot in one room will produce a lot of CPU consumption.
In reply to ejabberd 2.1.12 and 13.03-beta1:
I too would love to see a Windows Installer/binary for the latest stable version (2.1.12).
Thanks!
m plugins/system/cpu_by_process
fix cpu_by_process time parser cumulated CPU time is in [DD-]hh:mm:ss format
m plugins/drupal/drupal_users_online.php
fixed proper statement binding result parameters as well as set graph types to GAUGE for absolute numeric values
m plugins/system/pagefaults_by_process
Adjusting vlabel and using ARGV key 0 instead of 1 for config pass
In reply to Extauth not working:
hi Apulo,
I am facing same error. can you tell me how did you solve that.
thanks
m plugins/openvpn/openvpn_multi
Replacement plugin for openvpn_multi. This plugins handles all connected OpenVPN client and displays their current trafic. It dynamically handles clients. It produces a global graph and then a graph per client. It needs the OpenVPN status file.
In reply to shared roster - nicknames without using LDAP:
sorry I am not an expert, how can I check, wether it is enabled? Can I set vcards directly on the server?
Un peut de news du monde XMPP !
Beam Community
Le GSoC (Google Sumer of Code) a accepté la Beam Community (github) comme mentoring organisation cette année 2013. Beam Community regroupe des projets autour de la VM Erlang, tels que ejabberd, disco, elixir, zotonic, Tsung, MongooseIM, erlware, etc. Ce qui fait deux serveurs XMPP en erlang, MongooseIM étant le fork de ejabberd.
Les rumeurs courent : Google serait en cours de négociations pour le rachat de WhatsApp basé sur XMPP, pour 1 milliard de dollars. WhatsApp a démenti. Qui a raison ? À suivre.
On peut toutefois prédire sans trop de mal le sort de WhatsApp à long terme, puisqu’ils ne s’adossent toujours pas à un géant, qu’ils ont détourné un standard ouvert (qu’ils n’ont pas documenté), et ils n’ont toujours pas d’application de bureau, lourde ou web. Et puis…
Babble
Les rumeurs courent : Google serait en cours de beta tests d’une nouvelle application de chat, connu sous le nom de Babble. Ça sonne un peu comme Babel, dont le mythe de la tour est connu pour la recherche du langage ultime…
Cette rumeur a du sens, car il est une nécessité – a fortiori dans cette période de nettoyage de services – pour Google d’unifier Google Talk (qui n’évoue plus), Google Voice, Google Hangout (la visio multi-user de Google+), et Google+ Messenger.
De plus, des visuels ont fuit, ce qui concrétise un peu :

Google Babble
Espérosn que cela soit basé sur XMPP..
MSN
En parlant de truc pas basés sur XMPP, MSN est enfin fermé. Au revoir.
Personne ne va pleurer dessus.
+ plugins/network/psad
Add port scan detection plugin (psad) psad is a cyber defense tool that monitors for incoming port scans and can optionally blacklist/block attackers. Both these options can be charted with this plugin. - Port scans detected (per hour) - Attackers blocked (per hour)
If you are a student excited by XMPP, high-performance and Erlang, this should be great news.
It means that you will get the opportunity to get funded by Google to work on Erlang open source projects during the summer. Among exciting projects to work on, you will find:
ProcessOne will be focusing on mentoring XMPP, ejabberd and Tsung projects. This will be a great opportunity to work with more than 10 years Erlang, XMPP and performance veterans (yes, all at the same time).
Students applications will be closing on the 22nd of April.
More details on Google Summer of Code website and on the Beam Community Github.
m plugins/mail/dovecot
Merge pull request #287 from letompouce/master [FIX] mail/dovecot: fix typo, categorization.
m plugins/mail/dovecot
[FIX] mail/dovecot: fix typo, categorization.
+ plugins/other/wordpress2
Merge pull request #281 from patschi/patch-2 Create wordpress2
- plugins/network/netstat_bsd_s_/netstat_bsd_s_tcp_connections_connections-day.png - plugins/network/netstat_bsd_s_/netstat_bsd_s_tcp_received_packets-day.png - plugins/network/netstat_bsd_s_/netstat_bsd_s_tcp_sent_bytes-day.png m plugins/network/netstat_s_/netstat_s_ + plugins/network/netstat_s_/netstat_s_tcp_connections_connections-day-linux.png + plugins/network/netstat_s_/netstat_s_tcp_connections_connections-month-freebsd.png
Merge pull request #286 from dotdoom/netstat_bsd_s-update netstat_bsd_s: adding Linux support
Mostly a bugfix release but we also introduce some new support and features, from the changelog.
We’re starting to gear up for 1.3 now and we have introduced a voting system for features.
* NEW: Authors can now send custom object messages to other Authors making 3 way conversations possible. This introduces WebRTC plugin support. (see ep_video_chat)
* NEW: Hook for Chat Messages Allows for Desktop Notification support (see ep_desktop_notifications)
* NEW: Ctrl S for save revision makes the Icon glow for a few sconds.
* NEW: Various hooks and expose the document ACE object
* NEW: Plugin page revamp makes finding and installing plugins more sane.
* NEW: Icon to enable sticky chat from the Chat box
* Fix: Cookies inside of plugins
* Fix: Don’t leak event emitters when accessing admin/plugins
* Fix: Don’t allow user to send messages after they have been “kicked” from a pad
* Fix: Refactor Caret navigation with Arrow and Pageup/down keys stops cursor being lost
* Fix: Long lines in Firefox now wrap properly
* Fix: Session Disconnect limit is increased from 10 to 20 to support slower restarts
* Fix: Support Node 0.10
* Fix: Log HTTP on DEBUG log level
* Fix: Server wont crash on import fails on 0 file import.
* Fix: Import no longer fails consistantly
* Fix: Language support for non existing languages
* Fix: Mobile support for chat notifications are now usable
* Fix: Re-Enable Editbar buttons on reconnect
* Fix: Clearing authorship colors no longer disconnects all clients
* Other: New debug information for sessions
Some feature you want hasn’t been made yet? Get voting!
-- Features, releaseWe are announcing two major changes in ejabberd development today:
Both ejabberd editions are targeting different goals and audience:
ejabberd Community Server, released today in beta, provides huge improvements regarding performance and memory consumption. It will be an excellent basis to accelerate the community development effort. This release switches internal representation of data from list to binary to reduce memory consumption, all over ejabberd code.
For those interested in technical details, ejabberd started its existence using list to represent string, as it was the available approach at this time. It was causing increased memory consumption, but at that time there was also other limiting factors on less powerful servers (like CPU consumption use by the TCP/IP connections themselves).
Erlang now allows the use of binaries, which reduces the memory consumption, but ejabberd didn’t adopt this solution yet because it involved many changes in the code. That major change was delayed for ejabberd 3.0.0-alpha attempt, which used the new exmpp library and binary representation. However, the switch to exmpp library involved not only a major representation change, but also an enormous major and unnecessary API rewrite; not only in ejabberd core, but also in all the modules and all the contributed modules. So, we stepped back to use a more adequate method and the usage of exmpp in ejabberd internals has been deprecated.
There is a new ejabberd master branch, which comes from taking the good 2.1.12 and converting it from using strings to binaries. No other major changes. Simple and concrete. This is just performance improvements and internal changes that makes it possible for the community to happily build the next features.
Along with this new release comes a new versioning scheme. Ten years ago, ejabberd 0.1-alpha was released. Three years later, ejabberd 1.0.0 appeared with full XMPP compliance. And two years later, ejabberd 2.0.0. And after two more years, ejabberd 2.1.0.
Those major releases included big and small features, improvements and bugfixes just like the periodic minor releases. They never introduced unstability or major API changes: they were numbered as major versions only because it was time to increase the version number. In practice, improvements and bugfixes are introduced as they are available, efficient and stable, without considering if it’s a major or minor release.
The problem we had is that we had been referring internally to ejabberd3 as the commercial version. ejabberd community server was akwardly stuck in a 2.x version numbering.
To solve that problem, we decided to switch to an Ubuntu-like version numbering for ejabberd community server. The next releases will be numbered as “Year.Month-Revision”, instead of ”Major.Minor.Bugfix-Revision”. It will reflect more precisely how we work. You can thus expect a change in our worfklow and more interim stable releases in the future.
In conclusion, three years after the last major ejabberd release, we are pleased to announce ejabberd 13.03-beta1 and we are sure you will all love the changes.
You can find it in usual places:
Please, do not hesitate to watch, star, clone the repository on Github.
We are now accepting votes for new plugins and feature requests.
You can also place a new feature or plugin request.
Add a new request or vote now.
-- FeaturesEver wanted to share an exist location in a pad with a user? Well now it’s easy, just append ?lineNumber=10 (for example) on the end of your pad URL and you can share the line :)
Grab the plugin ep_scrollto
Replace the Etherpad Chat with IRC
Grab the plugin ep_irc
Automatically create a table of contents for your pad.
Grab the plugin ep_table_of_contents
-- FeaturesAs founder of ProcessOne, I’ve promoted since 10 years a vision made of real-time messages exchanged at an Internet scale. Together with ProcessOne team, we stayed true to that vision using the best technologies to make that ambition happen. Erlang is a dream environment to build fast and scalable real-time system. XMPP (eXtensible Messaging and Presence Protocol) is a protocol of choice to make people communicate over a federation of servers and a de facto standard today.
What we did is that we combined those two technologies to build the de facto standard component available to build Instant Messaging, Group Messaging, Social Messaging on a large scale. The software we have built is deployed on the largest chat deployments across the world. We have seen ejabberd in tens of thousands of deployments. We have seen ejabberd being adopted by large, renowed brands. We have invented protocols and extensions to push the messaging system further. We have traveled around the world to get those companies get the best of the tools we produced.
In a few years we’ve built the reference XMPP server, a tool that cannot get you fired for your choice because it is scalable and versatile. We are a small team, but we achieved something which still amaze me when I think again about it. We’ve been working in messaging for more than 10 years, delivering large scale highly scalable real-time platforms. I’m always proud to say that numerous renowned brands have trusted us to build their messaging services.
But, if you looked at what change in those ten years, what will strike you is that we went from a world where mobile phone where for most part just phones to a world of ubiquitous smartphones. The world of development quickly had to adapt to build apps, either native or HTML based, that were rich, interactive, able to tolerate for slow networks and changing conditions.
This evolution had been critical for us in several ways:
We’ve done a lot for mobile and on mobile in the past, for example:
We have done a lot for mobile and on mobile in the past, …but yet two things were missing:
Boxcar acquisition is a great opportunity for ProcessOne to get to the next steps of the same ambitious vision:
Now, mobile developers, you know that we are listening to you. Let’s connect and build great things together.
Can you help us put together a team to deal with Etherpad Security policies and disclosure.
The teams scope will be to:
1. Create a Vulnerability disclosure policy.
2. Engage with security researchers and the wider community to discover security issues.
3. Encourage site admins to be aware of and patch security issues before disclosure.
4. Relay security issues to the developer team and promote action whilst maintaining discreetness.
5. Work with the testing team to write test specs to check for vulnerabilities.
If you are interested in getting involved drop us an email at contact@etherpad.org
Original Vulnerability Disclosure and Discovery post
-- FeaturesHey there,
we have recently received the results of a security audit performed by Mozilla and have since sought to close the biggest gaping loopholes.
The result of this effort is version 1.2.9 of Etherpad lite, which is probably the most secure version released so far. I’d also like to thank Sebastian Nerz for reporting a massive security issue last week.
Sadly, the latest patches have apparently caused some issues themselves that affect user experience and import functionality, so there’s still some work for us to do.Still, this shouldn’t hold you back from updating! For a complete list of changes see the changelog
Grab the latest version either via a simple `git pull` or via etherpad.org
happy padding!
-- Features, releaseSalut à tous,
Grâce à Parinux, je vais faire une conférence lundi prochain pour présenter le projet « Salut à Toi », n'hésitez pas à venir pour discuter si vous vous y intéressez, en tant qu'utilisateur, contributeur potentiel, ou autre.
La conférence aura lieu à l'Espace Public Numérique la Bourdonnais, à côté du Champs de Mars, et commencera vers 19h15. Il faut vous inscrire: l'entrée est libre, mais il faut estimer le nombre de participants. Toutes les infos sont ici: http://www.parinux.org/content/conference-de-presentation-du-projet-%C2%AB-salut-toi-%C2%BB-par-goffi.
Le projet bouge bien en ce moment, c'est le bon moment pour venir discuter :)
Goffi
Our strong tradition of releasing a major full of bugs continues despite having a test framework. We are proud of our traditions and we hope one day to enhance them with more beer.
So what’s new in 1.2.81? Nothing.
Right to left support
Control Z and Control Y
Android tests.
Je ne parle pas ici d'XMPP, le protocole de communication standardisé qui a un réel succès (GoogleTalk, FacebookChat...)
Je parle de Jabber, le réseau fédérés de serveurs XMPP.
Tout d'abord, si l'on se fiche de que le réseau fait de nos communications, un skype est plus attirant sur le point des fonctionnalités.
Si l'on veut garder ses communications privées, le modèle de serveurs décentralisés ne résout pas le problème en soi.
En effet, si on crée son compte sur un serveur tiers, celui-ci peut très bien lire vos communications, usurper votre identité et même connaître votre mot de passe.
Donc on peut penser qu'il faut chacun administrer son serveur, ce qui est quand même balot d'un point de vue simplicité, économie d'énergie et coté pratique, mais cela ne sert en pratique pas à grand chose si le contact avec qui vous conversez ne fait pas la même chose pour s'assure de la confidentialité du message. Un pe comme les mails si vus voyez ce que je veux dire...
Du coup je m'interroge, à quel public s'adresse Jabber? Le seul intérêt que je vois actuellement, c'est un réseau ouvert à tous et non censuré.
Je rêve d'un réseau de messagerie sans serveur où chacun peut discuter en "privé" avec son interlocuteur de manière simple. Est possible d'avoir cela sur une infrastructure partagée (P2P, supernodes et table de hashage distribuée pour joindre l'IP de ses correspondants , clés asymétriques pour l'identification et le chiffrement des messages)
I advise every user to only use the packaged version of munin. Here's a short article to explain the background of my reluctance to ask for users to directly use the official tarball.
I have become upstream of munin a while ago now. As such, I'm in contact with package maintainers. They take the official releases and cram it into their own distribution of choice[1].
I have to admit that the various epic war stories read throughout the web about upstream vs packagers are very far from the truth here. They are a charm to work with. Often challenging and demanding, but always because there's a real need. And that's quite a good thing, as I'm still a rookie in term of open source software management. Therefore I'm quite grateful when they gently pinpoint my mistakes[2].
Yet, this nice team comes with a price. Since we mostly hang out on IRC together, there is way much inter-distro communication than on other software. But I'm the sole owner of the tarball distro .
Yet, as I don't like to build everything from source, I obviously use a distro. There, since the packaging is very nicely done, I don't feel to take the hassle of using my own "tarball" to test them. I just build a package for my distro out of the release code.
That's also a curse, as I admit that I although I test the code, I only seldom test the packaging. This means that I cannot really advise someone on using the tarball, nor directly git code as even I don't do it.
But, that said, I still think I'm the luckiest upstream around. Thanks guys !
[1] Be it linux-based like Gentoo, Redhat..., BSD-based as FreeBSD, OpenBSD..., or even multi-kernel based as Debian
[2] Defaulting to CGI graphics was a move that was way too premature, end-user wise. So thanks to them, it defaults to cron again
Salut à tous,
edit: la vidéo a été à peu près resynchronisée :)
je me suis amusé à faire un greffon qui exporte les entrées/sorties d'une commande Unix à un contact. Le principe est très simple: vous entrez une commande (pour l'instant ce n'est pas implémenté dans les frontaux, aussi il faut utiliser directement l'API D-Bus, via D-Feet ou qdbus par exemple), ainsi que les contacts autorisés à communiquer avec, quelques options éventuelles et c'est parti !
Il y a 2 intérêts principaux à faire ceci:
le premier est que vous pouvez donner l'accès à un interprète à n'importe lequel de vos contacts (je fais un exemple avec FTP dans la vidéo, j'ai également fait des tests avec bc, ipython et zsh), sans utiliser de machineries lourdes telles que ssh qui demandent la création d'un accès, d'avoir un client, un port ouvert etc. Bon évidemment ça reste très simpliste, ce n'est pas un terminal, mais ça dépanne. Les caractères d'échappements (ce qui donne des couleurs par exemple dans un interprète) ne sont pas gérés, et ça peut donner de la bouillie (j'ai eu le cas avec ipython). J'envisage de les intercepter et les convertir en couleur via XHTML-IM à terme (enfin faudrait déjà gérer XHTML-IM dans SàT :p ).
le second est de permettre de faire des bots très facilement: il suffit de faire un script qui lit l'entrée standard et réagit en conséquence. Vous pouvez faire ainsi un bot en quelques minutes avec n'importe quel langage de script (sh, Python, Ruby, etc) ou autre. Et vous pouvez directement le déboguer dans un terminal, sans avoir besoin de serveur XMPP pour tester. Pour vous montrer la simplicité de la chose, j'ai fait un petit essai en Python, voici ce que ça donne:
#!/usr/bin/python
#-*- coding: utf-8 -*-
import sys
class QuickBot(object):
def out(self, msg):
sys.stdout.write((u"%s\n" % msg).encode('utf-8'))
sys.stdout.flush()
def start(self):
while(True):
_input = raw_input().decode('utf-8','ignore')
if _input.startswith('!'):
args = _input[1:].split()
try:
getattr(self, "cmd_%s" % args[0].encode('ascii').lower())(args[1:])
except (IndexError, AttributeError, UnicodeEncodeError):
pass
def cmd_salut(self, args):
self.out(u"à Toi !")
if __name__ == "__main__":
bot = QuickBot()
bot.start()
Le contact n'a qu'à faire !commande [arguments] pour le faire réagir (ici !salut). Pour ajouter une commande, il suffit de faire une nouvelle méthode nommée cmd_ma_commande, par exemple cmd_toto ajoutera la commande !toto. Facile non ?
J'ai fait une petite vidéo pour vous montrer ça à l'œuvre, désolé pour le décalage du son, j'ai probablement mal réglé un paramètre, et je n'ai pas trop le temps de recommencer 15 fois.
Bon sinon j'ai également fait un petit widget web pour Libervia (il n'est pas encore poussé sur le dépôt). Évidemment c'est limité (à cause des restrictions javascript), mais ça permet d'afficher ce que vous voulez à côté de vos discussions, et de profiter des possibilités de mise en page de Libervia (on pourra par exemple, mettre 4 sites dans une grille).
Enfin, n'oubliez pas que demain aura lieu un hackathon dans les locaux du Loop, cf mon précédent billet.
À bientôt
Comme d'habitude, pour lire la vidéo, vous devez utiliser un butineur récent (le dernier Firefox/Iceweasel par exemple).
Vous pouvez aussi utiliser VLC (version >=1.1 uniquement), en allant dans le menu « Média/Ouvrir un flux réseau » et en mettant cette URL: http://www.goffi.org/videos/pr%c3%a9sentation_S%c3%a0T_6_export_commande.webm
Enfin, vous pouvez utiliser mplayer: mplayer "http://www.goffi.org/videos/pr%c3%a9sentation_S%c3%a0T_6_export_commande.webm"
Cette vidéo est sous la licence Creative Common BY-SA
Les 23 et 24 février prochain aura lieu un hackathon autour du projet « Salut à Toi » dans les locaux du loop à Paris (XIVème). Ce sera l'occasion à la fois de faire avancer certaines fonctionnalités rapidement, et de permettre à ceux qui veulent contribuer de découvrir le code.
Pour mémoire « Salut à Toi » est un client XMPP multi-interfaces qui propose des fonctionnalités comme le microblogage, vous pouvez consulter les billets précédents pour mieux le connaître/essayer la démo.
Le projet est principalement développé en Python, mais on peut utiliser pratiquement n'importe quel langage pour développer un frontal. Le frontal « Bellaciao » est d'ailleurs développé en C++/Qt.
Contactez moi (via les commentaires ci-dessous par exemple ou par courriel à goffi@goffi.org, ou via XMPP à goffi@jabber.fr) si vous souhaitez participer.
Un grand merci au loop pour prêter leur local.
Accès au loop: http://wiki.leloop.org/index.php/Accès
L’événement devrait commencer aux alentours de 10h.
Edit: une liste de choses à faire a été commencée sur le wiki: http://wiki.goffi.org/wiki/Hackathon_22_02_2013, n'hésitez pas à la compléter, ou indiquer si vous souhaitez voir plus particulièrement une des fonctionnalités implémentée (ou y contribuer).
Et voici les news XMPP/Jabber des dernières semaines…
Xabber libre !
Xabber, le client XMPP pour Android édité par RedSolution, a été libéré sous licence GPL v3.
Openfire 3.8.0
Openfire est sorti en version 3.8.0. Au menu, des améliorations sur le clustering, PubSub, le S2S et des améliorations de perf et corrections de bogues diverses.
MongooseIM
MongooseIM n’est pas un nouveau serveur XMPP, c’est le fork de ejabberd par Erlang Solutions qui se trouve un nom. Ce fork apporte une prise de charge limitée de Redis et un peu de Erlang/OTP.
ProcessOne is entering in an agreement with Kwaga to acquire Boxcar world-class push notification service as well as all technologies, intellectual property and trademark from Kwaga, the editor of WriteThatName.
Paris, 12 February 2013 – Kwaga, the creator of WriteThat.name today announces the sale of Boxcar technologies and IP to ProcessOne, one of the world’s top real-time messaging provider for the most demanding and popular mobile apps.
Following this agreement, ProcessOne team efforts would converge to enable the development of Boxcar as follow:
“We’ve been working with ProcessOne for the last 3 months on rebuilding Boxcar notification infrastructure for the benefits of our user base. In the process, it became clear to me that ProcessOne was uniquely positioned to bring Boxcar to the next level and that it would be better if they were to keep operating Boxcar. We’ll keep working with the ProcessOne team to bring Kwaga smarterEmail algorithm to the notification world and will jointly address Boxcar existing user base.” said Philippe Laval, CEO of Kwaga.
“We’ve been working in messaging for more than 10 years, delivering large scale highly scalable real-time platforms. I’m always proud to say that numerous renowned brands have trusted us to build their messaging services.” said Mickaël Rémond, CEO of ProcessOne. “The acquisition of Boxcar is an important piece in ProcessOne strategy to enhance our existing push messaging service for mobile developers, product managers and users.”
ProcessOne is a leader in real-time messaging and push notification for mobile applications and web. Its simple and reliable platform allows developers to focus on application development and integrate social messaging and push features rather than being forced to develop, run and maintain a complex platform by themselves. Appropriate from developers to the largest service providers, real-time and push services can be deployed in a very short time frame. Since 1999, leading companies like BBC, Meetic, Nokia, Orange Vallée et Portugal Telecom use ejabberd, the XMPP and Erlang-based messaging server, to power their real-time messaging apps. The company is based in Paris. For more information, visit: http://www.process-one.net/ and follow us on Twitter @ProcessOne
Founded in 2009, Kwaga is the company behind WriteThat.name, the online service that automatically updates address books and CRMs by identifying useful information with email signatures. WriteThat.name works with Gmail / GoogleApps, IBM Lotus Notes and Microsoft Outlook and is compatible with all major CRMs (SalesForce, Highrise …). For more information: http://writethat.name/
Avant, on avait XMPP contre MSN, Yahoo, ICQ et AIM.
Ils sont tous morts. Tués par Facebook.
Maintenant, on a XMPP contre Skype.
Google Chrome a fait un mouvement :
Google Chrome Team has just started working on a multiplatform chat client Chrome Packaged App named "Champ". It may not be used eventually but I do think it’s a pretty cool path to follow.
It currently only supports IRC but XMPP is definitely coming!
Source: https://gerrit.chromium.org/gerrit/41957
Très bien pour la promotion des standards ouverts et des protocole temps-réels et décentralisés multi-domaines, mais…
Cela arrive juste cinq ans trop tard…