Planet Jabber

Distribuir contenido
Planet Jabber - http://planet.jabber.org/
Actualizado: hace 15 mins 2 segs

Tigase Blog: Connecting a distributed workforce with Tigase

Hace 4 horas 25 mins

It’s not uncommon to find a company deciding to forego the traditional office environment and instead choose to hire a distributed workforce.

Stefan Strigler: Compile MongooseIM on OS X with openssl

29 August, 2016 - 13:38

Another tricky thing I always struggle with: Get MongooseIM compiled on OS X (since they removed openssl). So if you have openssl installed via homebrew just do

diff --git a/apps/ejabberd/rebar.config b/apps/ejabberd/rebar.config index c693471..4e5ff1f 100644 --- a/apps/ejabberd/rebar.config +++ b/apps/ejabberd/rebar.config @@ -8,8 +8,15 @@ {require_otp_vsn, "R?1[678]"}. {port_specs, - [{".*", "priv/lib/tls_drv.so", ["c_src/tls_drv.c"], [{env, [{"LDFLAGS", "$LDFLAGS -lssl"}]}]}, - {".*", "priv/lib/ejabberd_zlib_drv.so", ["c_src/ejabberd_zlib_drv.c"], [{env, [{"LDFLAGS", "$LDFLAGS -lz"}]}]}]}. + [{".*", "priv/lib/tls_drv.so", ["c_src/tls_drv.c"], [{env, [{".*apple-darwin.*", "CFLAGS", "$CFLAGS -I/usr/local/opt/openssl/include"}, + {".*apple-darwin.*", "LDFLAGS", "$LDFLAGS -L/usr/local/opt/openssl/lib"}, + {"LDFLAGS", "$LDFLAGS -lssl"}]}]}, + {".*", "priv/lib/ejabberd_zlib_drv.so", ["c_src/ejabberd_zlib_drv.c"], [{env, [{"LDFLAGS", "$LDFLAGS -lz"}]}]}, + {".*", "priv/lib/sha_drv.so", ["c_src/sha_drv.c"], [{env, [{".*apple-darwin.*", "CFLAGS", "$CFLAGS -I/usr/local/opt/openssl/include"}, + {".*apple-darwin.*", "LDFLAGS", "$LDFLAGS -L/usr/local/opt/openssl/lib"}, + {"LDFLAGS", "$LDFLAGS -lcrypto"}]}]}, + {".*", "priv/lib/xml.so", ["c_src/xml.c"], []}, + {".*", "priv/lib/expat_erl.so", ["c_src/expat_erl.c"], [{env, [{"LDFLAGS", "$LDFLAGS -lexpat"}]}]}]}. {xref_checks, [undefined_function_calls, undefined_functions,

Monal IM: Tracking Progress on OMEMO encryption

29 August, 2016 - 01:49

For those who are interested in the collaborative effort to have a standard modern encryption scheme on the major mobile and desktop clients. You can see where things are for Monal and Chatsecure at the github issue.

 

 

Monal IM: TV Portal UI Finalized

25 August, 2016 - 19:11

Now that the app is mostly done I’ve put in some nicer images in TV portal.  IT also supports viewing scheduled recordings now. Going to keep testing (aka watch tv) to see what bugs arise but this is mostly done at this point. Please contact me at info@monal.im if you would like to help test this. 

Ignite Realtime Blog: Spark 2.8.0 Released

25 August, 2016 - 15:31

The Ignite Realtime community has just released Spark 2.8.0 and it can be downloaded from Ignite Realtime: Downloads.

 

This is a major release marking the end of support for Java 7 (which has reached the end of life state more than a year ago). Full Spark installers have already been bundled with Java 8 for some time. Online installer won't work with Java 7 starting with 2.8.0 version. We recommend updating to Java 8. Underlying Smack library has been updated to the latest version in this release. Roar plugin has received new popup control options as well.

 

There is a huge list of changes in this version. So this most probably has introduced new issues (though we have tried to catch and fix most of them before the release). Please report in the forums, if you find them. Again, please do not post bug reports in the comments of this blog post.

 

For a complete list of changes please check Spark Changelog

 

As usually we encourage new developers to join Spark project and provide patches. Those familiar with Smack can join the development easier, as we are now on the current version of it (4.1.8 at the moment of this release). Patches can be attached in the forums or submitted as PRs on GitHub.

 

Here are the contributors to this release (besides myself):

Wolf  updated Roar plugin to have separate settings for group chat and keyword matching popups, added system style popups

Alexander198961 · GitHub  added option to save room's password, added URL support to admin's broadcast dialog

Леонід  added Ukrainian translation

nicoben (Nico Ben) · GitHub  updated Italian translation

speedy  fixed failed login process with self-signed certificates, updated Substance skin library, fixed an issue with idle on Windows 10 lock screen

Daryl Herzmann  fixed Debian build

 

We owe Guus der Kinderen  a separate mention. Guus has done a huge job of updating Spark to the current Smack version, which contains a lot of bug fixes, security patches and new features. He has also fixed many other issues along the way. Such as group chat window size issues, room occupants presence management, annoying word wrapping issue with long text lines, SSO/GSSAPI problems, etc.

 

Important information for SSO (Single Sign On) users, if they are using SRV records: SSO (Single Sign On) configuration changes with Spark 2.8.0

 

UPDATE: Important information for those having login issues with 2.8.0: Login issues with Spark 2.8.0

 

[SIP phone] SIP plugin is not working since the Smack 4 update. We hope to have it fixed for 2.8.1.

[Voice Chat] Jingle (PC to PC) calls are not working at this point.

[Linux] Flashing plugin is not working on Linux systems.

 

Here are sha1 checksums for the downloads:

6fa1265e7def8800e0a4356bd1b7d8cf58bb85f8  spark_2_8_0.dmg

741c20d9141c88ecde08d60fbc11145887d32573  spark_2_8_0.exe

b76e36da81469561fdad4a227fa4ad68d792ca7b  spark_2_8_0_online.exe

e2fcdddb4e84f6f1abe9d62a39aa0c7c9e06d814  spark_2_8_0.tar.gz

a772028ba10db2084ea7e2b7b1fb408803c77a5b  spark-2.8.0.rpm

38ca0d9ab5ccd7d61be03b702a0abd5c8939ada5  spark-2.8.0.src.rpm

fba8705d54f49bceb62f19a30348482f9bbeacfb  spark_2_8_0.deb

Ignite Realtime Blog: Openfire 4.0.3 is Released

17 August, 2016 - 16:16

The Ignite Realtime Community is pleased to announce the 4.0.3 release of Openfire.  Openfire is a cross-platform real-time collaboration server based on the XMPP (Jabber) protocol.  This release signifies our ongoing effort to produce a stable 4.0 series release while continuing to work toward a 4.1 release. A changelog of fixes is available and indicates 14 issues resolved.

 

Note: There was an unfortunate and complicated problem with the distributed 4.0.2 .deb Openfire installer.  If you had troubles with it and reverted to 4.0.1, we hope that you try 4.0.3 now.  See OF-1116 for some more details.  Also, if you are an experienced Debian/Ubuntu packager, we would certainly love your feedback on how the .deb package for Openfire is generated and distributed.

 

Additionally, this update contains an updated truststore. This truststore is used by Openfire to secure remote connections.  If you are using an installer and have manually updated this file in the past, it is likely that the installer will not overwrite your changes with the new truststore.  Please review your resources/security directory after install and rectify differences you may find.

 

As always, please report issues in the Community Forums and you can download this release from our website.  Here are the sha1sum's for the downloads available.

 

Platform
sha1sumFilenameMac

3dcba5b91d3078618aaff182bb1f0d84be7b9e63

openfire_4_0_3.dmgWindows690d3b2114b98f45836191f73d242ee9702c6771openfire_4_0_3.exeBinary (tar.gz)

39b0f04bb6471f9d9aaaeda4fbdf6839a4062a4e

a2222bbef28342553a8ec00500064929dc77029d (updated 19 August 2016)

openfire_4_0_3.tar.gzBinary (zip)

f65b7ffdf563a6a7deb85594ec1534748a942e6a

170468f366c7cd185b1c987f84e020fb96864f91

openfire_4_0_3.zipSource (tar.gz)87aa9a17938c3ce9441d61802e669f87fd0e324fopenfire_src_4_0_3.tar.gzSource (zip)698c598a73dd01cec4037df98190f017dbb19444openfire_src_4_0_3.zipRPM Installer

70da0a51da40cb955288db977b5d405a49667efc

ad42faaa8da58de463124fa35d0ae0271a20e4bd (updated 19 August 2016)

openfire-4.0.3-1.i386.rpmDEB Installer5c53afd72cf527edf81915d2aaa0fe68d96b6346openfire_4.0.3_all.deb

 

Update 19 August 2016: A problem was found with the 32bit RPM containing a 64 bit JRE.  This artifact has been refreshed on the website for download. Also Binary (tar.gz) package has been replaced to include the usual binaries.

 

As a reminder, Openfire's source code and development can be found on Github and an active developer discussion occurs within our open_chat@conference.igniterealtime.org groupchat.  Please consider helping out with Openfire's development!  We can use help in about all areas of development, but especially:

  • experienced packaging developers to improve the install/upgrade experience on various platforms
  • developers interested in transitioning Openfire to Maven
  • testing of bamboo generated builds

 

Thank you for your interest in Openfire!

Remko Tronçon: HAProxy Alerts with WebHooks

15 August, 2016 - 22:00

I want to be notified immediately when one of the backend servers behind my HAProxy instance goes down. HAProxy offers alerting functionality, but only via SMTP: when a backend goes down it sends an email to a list of recipients via an SMTP server you provide. Unfortunately, email isn’t an ideal mechanism for real-time notification, and I don’t have an SMTP server accessible from my HAProxy instance. In this post, I’ll show my setup of HAProxy posting its alerts to a Slack channel and the Pushover push notification service, using smtp-http-proxy and AWS Lambda.

Continue reading post

Peter Saint-Andre: Working for Freedom

14 August, 2016 - 00:00
Almost four years ago to the day, I posted some hopeful thoughts about working for freedom within the Republican party, specifically within the framework of the Republican Liberty Caucus. I changed my voter registration to Republican, attended a few meetings and caucuses, and started to learn a bit about how electoral politics works at the local level (which, in the county where I live, mostly means Republican party politics).

Tigase Blog: Message Archive Component

13 August, 2016 - 00:30

The Message Archive Component provides for storage of messages and stanzas.

Christian Schudt: Babbler 0.7.1 (Bugfix) Released

11 August, 2016 - 10:57
A bugfix version of the XMPP client library has been released to Maven Central: 0.7.1

Here's the changelog:

  • Discovering services should not fail immediately if one sub-query fails.
  • Make sure abnormal WebSocket disconnections trigger the reconnection.
  • Make sure RECONNECTION_SUCCEEDED event is triggered for external components.
  • Add listeners to listen for successful or failed send operations.
  • Add public constructor for the SASL challenge class.
  • Add public constructors to SASL Failure class.
  • Make sure to not write XMLConstants.XML_NS_URI to XML elements (FasterXML Aalto’s XMLStreamWriter implementation writes it)
  • Add DataForm.Field#getValue() and implement toString() method.
  • Add convenient API to compare two MUC affiliations and roles (i.e. Affiliation.OWNER.isHigherThan(Affiliation.ADMIN))
  • Compare presences of MUC occupants in the Occupant’s Comparable implementation.
  • Minor performance improvement by using a ListIterator in collection based result sets.
  • Discover PubSub services by identity, not by feature name (it’s more reliable)
  • Add nextPage() and previousPage() method and refine the naming of other methods in result set management (e.g. having forCount() and forItemCount() was confusing)

Tigase Blog: Tigase JaXMPP Client v3.1.3 Release

10 August, 2016 - 19:31
Announcing a maintenance release of Tigase JaXMPP Client Library v3.1.3!

Alexander Gnauck: Unity development with MatriX

10 August, 2016 - 11:27

A question which comes up very often is the following:

Can I use MatriX with Unity 3d?
Of course you can. Many of our customers are using it with great success in their Unity projects.

Unity is based on Mono. MatriX is designed for cross platform and works on all major .NET platforms, including Mono.

Many Unity developers have some problems to get started with MatriX on Unity.
This post should be a small tutorial and address some of the issues you may be facing during your Unity development.

1) Download the correct MatriX dll (Mono build). MatriX builds are not universal, which means you need to download and reference the MatriX library for Mono.
You can get the latest Mono build from NuGet here:
https://www.nuget.org/packages/MatriX.Mono/

2) MatriX requires System.Xml.Linq.dll. Make sure that you reference System.Xml.Linq in your project as well and add it to your assets. Otherwise Unity may throw an exception when you run your project.

3) Depending on your Unity version you may get compiler errors on iOS. When you use the latest Unity version this should be no problem. On older Unity versions this problem is related to obfuscation. To resolve this please contact us directly.

4) The iOS stripping feature causes problems. It does not work when reflection gets used. The core Xml serializing engine in MatriX is build on reflection using a factory pattern. You either have to remove stripping from your complete project, or exclude the MatriX classes.
Here is an example of a link.xml file excluding all MatriX classes:

<linker> <assembly fullname="Matrix"> <type fullname="Matrix.*" preserve="all"/> </assembly> <assembly fullname="mscorlib"> <namespace fullname="System.Security.Cryptography" preserve="all" /> </assembly> </linker>

It looks like disabling all stripping in Unity is not enough and the link.xml file above must exist.

5) Some of our users reported that connecting to an XMPP server does not work inside the Unity editor because of some networking problems of the IDE. When the code gets executed or published on a device it works fine. This is a restriction of Unity and not related to MatriX.

If you run into any other problems please contact us directly. We do our best to solve them.

ProcessOne: XMPP Radar Newsletter #13

9 August, 2016 - 13:49

Welcome to the 13th issue of our newsletter. Here are the links we found interesting in July:

Go’s March to Low-latency GC

Twitch uses Go for many of their busiest systems. Its simplicity, safety, performance, and readability make it a good tool for the problems they encounter with serving live video and chat to millions of users.

XMPP : Swiss Army Knife for Internet of Things (IoT)

IoT communication is complex and varied, and XMPP is a great candidate for an application-layer protocol. Developers can use it in IoT for communication among devices and their corresponding servers and users in the cloud.

MITTO

Mitto is a worldwide IoT SIM card for connected devices. It wants to make your IoT projects more about the actual project and (much) less about figuring out cellular carriers and connectivity.

Fighting XMPP Abuse and Spam with ejabberd

In this video, Mickaël Rémond explains the features, options and API that can be used to protect ejabberd servers from spam and various other types of attacks. The video was recorded at ejabberd Advanced Erlang Workshop in Paris.

XMPP Mobile groupchat: Introducing MUC Subscription

We are announcing MUC Subscription, a new experimental feature in ejabberd that makes group conversations in XMPP work seamlessly with mobile clients.

Open Source Contribution: XMPP Module for React Native

Working with React Native, a relatively new mobile app development framework has overall been a great experience. However, one of the common complaints of developers about react native has been the lack of off-the-shelf libs/modules for certain use-cases e.g. XMPP.

Read and Write to Devices With Converse.js

This tutorial is about using Converse.js to read values and write values to devices, and also retrieve history of fields.

New Jabber/XMPP Client for iOS

Intercambio is a Jabber/XMPP client for iOS. It is open source and you are welcome helping to improve it and shape it to your needs.

ProcessOne: ejabberd 16.08

4 August, 2016 - 13:53

Welcome ejabberd summer release !

This new release is the culmination of several months of work to improve your experience using ejabberd. It contains as usual a lot of small bug fixes and some enhancements. However, this version contains some new major features:
– MUC/Sub
– Major clean-up and improvement on OAuth ReST API
– Database backend for OAuth tokens
– Better support of Elixir modules
– Full compatibility with Erlang 19
– Modules loading in a dependent order

The biggest improvement in ejabberd 16.08 is a new experimental feature in ejabberd that make group conversations in XMPP work seamlessly with mobile clients: MUC/Sub.

The main issue with XMPP group chat (based on XEP-0045) is that it is bound to user presence. On mobile, presence is almost irrelevant. You are always somewhat loosely reachable, but ofter seen as offline from XMPP point of view. MUC/Sub rely as much as possible on existing MUC specification, while making the smallest possible change that make mobile group conversation client development easy without having to send presence.
See all details in our dedicated MUC/Sub blogpost.

This release also covers needs of the Elixir community: Erlang 19, Elixir 1.2.6, better mix integration. It’s also possible to write Elixir module handled by the contributed module extension of ejabberd. We also tested ejabberd with Elixir 1.3.2 with success, so you can likely upgrade without issues.

Finally, it is worth noting that development team is growing and three new official contributors joined the project: Gabriel, Anna and Thiago. Welcome !

Changes

This is a selection of the most relevant changes:

MUC
  • New MUC/Sub support
  • Add ‘allow_subscription’ room configuration option for MUC/Sub
OAuth and ReST API
  • Add OAUTH SQL backend
  • New special scope: ejabberd:admin and ejabberd:user, to more easily grant group of privileges
  • Add DB backend support for ejabberd_oauth
  • Added ejabberdctl commands to manage OAuth tokens: oauth_issue_token, oauth_list_tokens, oauth_list_scopes, oauth_revoke_token
  • Simplified OAuth form: username and password merged into JID field
  • User configurable validity duration for tokens on OAuth token generation form
  • Add support for sending back missing scope error to API ReST command calls
  • Oauth: several minor fixes
  • Support oauth password grant type, to generate token programmatically
Elixir support
  • Update supported Elixir version to 1.2 and 1.3.
  • Support installation of Elixir contributions with external module command line tool.
PubSub
  • Fix use of like parameter in sql pubsub’s requests
  • Fix node configuration change with sql backends
  • Fix send_last_items duplication with multi-plugin setup
MAM
  • Always limit result set page size
  • Use hooks instead of direct calls
API
  • Add support for checking access rules conformance for commands
  • Add support for rich error reporting for API
  • Add support for sending back missing scope error to API ReST command calls
  • Fix handling of complex values as arguments in http_api
  • Improve error handling
Other improvements
  • External Component Connection Hooks
  • Fix compilation issues on R19
  • Support for OpenSSL 1.1
  • Make access rules in ejabberd_web_admin configurable
  • Make modules loading in a dependent order (#1191)
  • Make s2s stats commands more robust
  • Preserve PID for offline sessions
  • Several quoting fixes for PostgreSQL
  • Switch supervised workers from temporary to transient
Feedback

As usual, the release is tagged in the Git source code repository on Github.

The source package and binary installers are available at ProcessOne.

If you suspect that you’ve found a bug, please search or fill a bug report on Github.

Stefan Strigler: Otalk IM

4 August, 2016 - 09:34

A customer of mine asked for a WebRTC based, self hosted solution. So I started investigating and stumbled upon the great Otalk IM Client. Unfortunately it has not been maintained for a while. I decided to go with it nonetheless. I updated dependencies as required to make them work with latest stable NPM (3.x) and Node.js (6.x) as applicable and fixed bugs all along the way. Check out my fork if you are interested! Feedback would be very welcome. I think it makes for a very good starting point if you were about to create your own WebRTC solution. Or maybe even just a regular chat client.

ProcessOne: ejabberd 16.06

3 August, 2016 - 15:07

We are proud to introduce our new ejabberd release, ejabberd 16.06. As usual it includes many bug fixes, but also several improvements.

The big improvement in this release is a new Access Control List (ACL) infrastructure. ACL rules are used in ejabberd config file to define fine-grained access to ejabberd features.

In ejabberd 16.06, the ACL configuration has been much improved to make it both simpler to use and easier to read. Moreover, ACL and access rules are not mandatory anymore when configuring access restrictions for a feature or a module: You can just inline the user, for example, making small configuration much easier to setup properly.

To make you even more comfortable, our new code is still supporting the old syntax and you can mix old and new syntax. It means that you can still use your existing configuration file and that you can migrate incrementally, as needed.

The new ACL syntax

New access rule will look like this:

access_rules: my_access: - allow: admins - deny: blocked - allow: - user: "peter@server.com" - ip: "222.111.222.111/32" - allow: moderators

This is an example definition for my_access rule. It is composed of four groups. They are evaluated from top to bottom order. the first with all listed acl rules evaluated as true is used as result. If none of them matches, evaluation fallback to default value deny. Above definition can be parsed as: if user belongs to ACL definition admins, return allow, if not, and user belongs to ACL definition blocked, return deny. otherwise for user “peter@server.com” when connected from ip: “222.111.222.111” return allow, and for users in ACL definition moderators return allow as well, in all other cases return deny.

We can see in this example two new additions that were introduced in this rewrite:

  • you can now directly specify ACL definitions inside access rules (you no longer will be required to define ACL rules for each case)
  • you now have the ability to require a match on several ACL rules types at this same time (in the example: ip and user).

You can use any rule that is allowed inside acl: sections (like user, server, resource, user_glob, etc.) and one additional rule that is allowed only inside access_rules: section, acl: NameOfACL that will look for definition of NameOfAcl inside acl: section and use it for matching. If you have only one ACL rule name to use you can use short form - allow: acl_rule, additionally - allow: all or - deny: all can be shorted still to - allow and ‘- deny`.

Shapers can also be specified using new syntax, but they now go into shaper_rules: section and they look like that:

shaper_rules: my_shaper: - 100: admin - 10: all

Rules defined in access: section will use old syntax, and work as before, so you don’t need to update your old config, to adapt it to that change.

At last, one can define module specific access rules directly in modules configuration section, this is simpler to understand when reading configuration.

Let’s get a simple example of the changes. With previous ACL implementation, one could have this:

acl: bad_servers: ip: - "XXX.XXX.XXX.XXX/32" admin: user: - "aleksey": "localhost" access: muc_admin: admin: allow muc_create: local: allow muc: all: allow s2s: bad_servers: deny all: allow c2s_shaper: admin: none all: normal modules: mod_muc: access: muc access_create: muc_create access_persistent: muc_create access_admin: muc_admin

Which can be translated to this since ejabberd 16.06 with new ACL implementation:

acl: admin: user: "aleksey@localhost" access_rules: s2s: - deny: - ip: "XXX.XXX.XXX.XXX/32" - allow c2s_shaper: - none: admin - normal modules: mod_muc: access: - allow access_create: - allow: local access_persistent: - allow: local access_admin: - allow: admin

Shorter and clearer. Please also note that you can use the JID literally as a string. The previous awkward username: domain syntax can go away.

Changes

This is a selection of the most relevant changes:

Config
  • New ACL infrastructure
  • Add shorter version of some common access rules definitions
  • Allow @ inside acl rules user, user_glob or user_regexp to pass both user and server
    in single string
  • Add acl rule access_rules_validator and shaper_rules_validator for use in mod_opt_type and opt_type callback functions.
  • Allow using shapers defined by name like in s2s_shaper: fast
  • Allow mod_opt_type and opt_type to transform values passed to it, and support
    better error reporting
  • Do not call transform_terms multiple times in configuration processing when merging them
  • Don’t halt program when include_config_file is missing/can’t be read
  • Allow again multiple fqdn values in configuration
Commands
  • Allow passing username and ip to ejabberd_commands, and use it in mod_http_api
  • Fix path to epmd in ejabberdctl
  • push_roster: must convert read strings to binaries
  • set_presence: Fix command API
  • Fix for modules_update_specs command
  • Add ejabberdctl commands to manage oauth tokens.
Core
  • Bounce messages sent to server JID
  • Fix C2S session leak in rare cases
  • Fix handling of queued stanzas on session timeout
  • Give more time to stop and kill epmd
  • When stopping ejabberd, stop modules after broadcasting c2s shutdown
  • XEP-0198: Use different error message for bounces
  • XEP-0198: Add ‘h’ attribute to element
  • XEP-0198: Also count stanzas when socket is closed
Databases
  • Fix pgsql compatibility on delete_old_messages command
  • Handle Redis connection in a separate module
  • Report in SQL when scram is enabled but the stored password isn’t
  • Update SQL escaping
  • Use MEDIUMTEXT type for muc_room.opts in MySQL schema
MAM
  • Send unique stanza id and archived tag also in the message carbons
  • Fix “assume_mam_usage: if_enabled”
  • Fix typo in mod_mam:select()
  • Updated support of XEP-0313 from version 0.4 to 0.5.1
  • Mnesia: Avoid cleanup on bag when disc_only, switch in memory
  • Mnesia: Don’t exceed table size limit
  • Mnesia: Use transactions when writing
Client State Indication
  • Fix handling of chat states
  • Simplify check for carbon-copied chat states
  • Simplify handling of PEP stanzas
  • Pass chat states of other resources
  • Unwrap carbon copies when checking for chat states
  • Add queue_pep option
  • Queue chat state notifications
  • Move CSI queue handling code from ejabberd_c2s
  • When stopping, delete only the configured hooks
Other modules
  • ext_mod: Set HTTP/1.0 so Github accepts the request
  • gen_mod: Compile early to remove undefined behaviour warning
  • mod_http_upload: Let client retry HTTP upload on file size mismatch
  • mod_last: Produce mod_last entry on account creation
  • mod_muc_room: Notify on affiliation changes
  • mod_register: Check password with jid:resourceprep when registering account
  • mod_roster: respect roster item changes introduced with roster_process_item hooks upon pushing
  • PubSub: Fix PubSub RSM on get_items
  • PubSub: Add support for PubSub publishing options
  • PEP: Fix sender in case of explicit pep subscriptions
  • ejabberd_xmlrpc: Report error when conversion of argument type fails
Feedback

As usual, the release is tagged in the Git source code repository on Github.

The source package and binary installers are available at ProcessOne.

If you suspect that you’ve found a bug, please search or fill a bug report on Github.

Isode: Swift 4.0 (Beta): What’s new

3 August, 2016 - 15:01

Those of you keeping an eye on the Swift or Isode Twitter accounts will have noticed that a beta release of the new Swift 4.0 is now available for download from the Swift website .

Swift 4.0 includes a number of important functional changes compared to Swift 3.0 as well as a significant change to the look and feel of the product.

The main changes are listed in the changelog but there are two big changes that you’ll notice immediately on launching this Swift beta.

Better Chat Monitoring

Swift already makes it very easy to monitor events in multiple chat rooms through the use of keyword highlighting rules. In response to requests from a number of users we’ve supplemented this with the addition of a “trellis” layout option, allowing multiple chats and rooms to be tiled instead of being exclusively displayed as tabs within a single window.

Swift in A 2x2 tiled view showing 1 MUC room and 3 1:1 chats with security labels and delivery receipts

This new option (Change Layout from the View menu) allows the user to define the number and arrangement of tiles to be displayed simultaneously and then move chats or rooms into an appropriate position. The trellis layout option and the existing tabbed layout option can be flexibly combined.

New Chat Design

We’ve introduced a new, cleaner chat design which we believe will enable users (especially in MUC rooms) to keep better track of their own contributions to conversations allows for better display of message receipts and better indication of unread messages.

The Swift 4.0 beta is available for Windows, MAC OS X, Ubuntu & Debian Linux. Please email (swift@swift.im) or tweet @swift_im any feedback you have to help us further improve Swift.

Tigase Blog: XMPP An Introduction Part VII: Multi-User Chat II

3 August, 2016 - 01:21
The second part of MUC description, going over roles and affiliations.

Swift Blog: Swift 4.0 (Beta): What’s new

3 August, 2016 - 00:00

Those of you keeping an eye on the Swift or Isode Twitter accounts will have noticed that a beta release of the new Swift 4.0 is now available for download.

Swift 4.0 includes a number of important functional changes compared to Swift 3.0 as well as a significant change to the look and feel of the product.

The main changes are listed in the changelog but there are two big changes that you’ll notice immediately on launching this Swift beta:

Better Chat Monitoring

Swift already makes it very easy to monitor events in multiple chat rooms through the use of keyword highlighting rules. In response to requests from a number of users we’ve supplemented this with the addition of a “trellis” layout option, allowing multiple chats and rooms to be tiled instead of being exclusively displayed as tabs within a single window.

This new option (Change Layout from the View menu) allows the user to define the number and arrangement of tiles to be displayed simultaneously and then move chats or rooms into an appropriate position. The trellis layout option and the existing tabbed layout option can be flexibly combined.

New Chat Design

We’ve introduced a new, cleaner chat design which we believe will enable users (especially in MUC rooms) to keep better track of their own contributions to conversations allows for better display of message receipts and better indication of unread messages.

The Swift 4.0 beta is available for Windows, MAC OS X, Ubuntu & Debian Linux. Please email (swift@swift.im) or tweet (@swift_im) any feedback you have to help us further improve Swift.

Peter Saint-Andre: Philosophical Encounters

1 August, 2016 - 00:00
As I begin the large and deep task of (re-)reading the complete works of Aristotle, I am spurred to ponder why I am drawn to working through various philosophers in this way. I've come to see that there is an almost visceral element here, of directly confronting the insights of a great thinker and gaining intimate knowledge about how that person approached life and the pursuit of wisdom. In order to do this, I find that I need to read the philosopher's original language of expression: Greek for Aristotle and Epicurus, English for Thoreau and Rand, and German for Nietzsche (which makes me consider learning classical Chinese so that I can directly encounter Lao Tzu). I also find that I need to immerse myself directly in the philosopher's own words and not spend too much time reading other people's commentaries. Ironically, the outcome of my doing so is in each case a book that comprises more commentary! Yet for me the book that I write is merely a record of my personal encounter, which I use primarily to remind myself of what I have learned. Secondarily, I hope that by recording my own philosophical encounters I might inspire you to do the same with the great thinkers you find most congenial (and I would love to read about similar encounters with philosophers I likely won't have the time or inclination to work through completely myself, such as Confucius, Krishna, Buddha, Plato, the Stoics, Montaigne, Kierkegaard, Emerson, and Sartre). What's most important is the encounter itself, because it helps me gain more wisdom as I adopt some of the outlook and practices of someone much more sagacious than I am.