Agregador de noticias

Ishan Khanna (GSoC 2015): Finally GSOC’15 came to an end.

Planet Jabber - 22 August, 2015 - 21:01

After about 3 months yet another GSOC has come to an end. This is the part of the program that I am sure almost every accepted student would feel sad about. End of those weekly meetings, end of those long chats with your mentors, and a lot more fun.

So my project was about adding support for Link Local (read Serverless) messaging (an XMPP Extension – 174) to Smack’s API. Though I didn’t complete everything that was expected as a part of my proposal but the basic implementation of this API is ready and working. Using the current API you can establish an XMPPLLConnection that is capable of announcing its presence over a local network and able to receive incoming connections and then communicate over a TCP connection. This was verified with the help of Gajim (an XMPP client for linux.) I made a video that demonstrates this process and shows messages being received over a Link Local Connection with the help of my API.

Even though officially the program has come to an end, I will actively contributing to Smack in future and will extend the current functionality to what I had written in my proposal, along side my Mentor Florian Schmaus.

Marvin Wißfeld (GSoC 2015): GSoC 2015 is over.

Planet Jabber - 21 August, 2015 - 00:00

Finally, the Google Summer of Code 2015 concluded. Over 1,000 students - including myself - used the summer to develop amazing open-source software, making our daily life better.

DNSSEC for minidns

I successfully finished my project, to include support DNSSEC in minidns, a popular DNS client library for Java with support for Android. Just to summarize my previous posts, here is a list of things developed during the summer:

  • Parsing the wire format of various DNS records: DLV, DNSKEY, DS, NSEC, NSEC3, NSEC3PARAM, RRSIG, OPENPGPKEY, OPT, TLSA
  • Creating the wire format for all supported DNS records (required for proper validation)
  • Recursive resolving from the DNS root servers
  • Validating signatures (RRSIG) using RSA and DSA keys and MD5 (deprecated), SHA1, SHA-256 and SHA-512 hashes
  • Validating negative results using NSEC and NSEC3
  • Validating delegation using direct domain chain (DS) or DNSSEC lookaside validation (DLV)
  • Certificate validation using TLSA records (DANE)
  • Include DNSSEC resolving and DANE capabilities as optional features into smack

To ensure correctness of all features, I also added a lot of unit tests to minidns. Due to this I was able to find some relevant bugs in minidns. Unfortunately, some of the optionally desired features did not make it into usable state until today. I will further work on adding the following after this years GSoC:

  • Validate signatures using ECDSA keys
  • Include DNSSEC resolving, DANE capabilities and OPENPGPKEY DNS record support into OpenKeychain

I’d like to say a warm thank you, to everyone involved with the organisation of the GSoC at XSF (which acted as my host organization) or supported me at my project. This includes, but is not limited to:

  • Rene Treffer
  • Florian Schmaus
  • Dave Cridland
  • Georg Lukas
  • Kevin Smith

Adhish Singla (GSoC 2015): Read and Write to Devices With Converse.js

Planet Jabber - 20 August, 2015 - 17:59

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

Getting Started

Follow the instructions given here

Use this converse.js file instead of the one given in above link.

Start with logging into an XMPP account
  • Log into your xmpp account.

  • Contacts will be displayed with an Icon to their left.

  • These icons determine the type of contacts (Sensor Devices, Control Devices or Contacts)

  • Open a Chatbox with a Device.

  • We have used Command Feature to implement the functions.

Reading Values from a Device
  • It works for Sensor as well as Control Devices.

  • The command for reading a value is ‘/read’.

  • It will display the fields stored in the device along with their present values. Like this :

Writing Value to a Field
  • It works for Control Devices.

  • First perform a Read to know the FieldNames.

  • The command for writing a Value to a FieldName is ‘/write FieldName Value’.

  • Now you can again perform a Read to check if the Value for that FieldName is changed. Like this :

History Retrieval for a Field
  • It works for Sensor as well as Control Devices for Fields that store their History.

  • The command to retrieve Hisotry of a FieldName is ‘/history day/week/month/year FieldName’.

  • Output for the same looks like this:

Hope you like playing around with it :)

Adhish Singla (GSoC 2015): IEA Cordova Application

Planet Jabber - 20 August, 2015 - 06:08

This tutorial is regarding using IEA Cordova Mobile Application, which can be used to read values and write values to devices, and also retrieve history of fields.

Getting Started
  • You need to install the application to your android device using latest apk file.
  • Home page looks like this :

Start with logging into an XMPP account
  • Login with any xmpp account. Online contacts along with the details of device, will be displayed for the contacts like this:

Reading Values from a Device
  • Clicking on a device contact will perform a Read Operation, the fields stored in the device along with their value will appear as a drop down for the contact:

Writing Value to a Field
  • If a field is writable, we can edit its value and tap the ‘write’ button, to send a write to a field request to the device:

History Retrieval for a Field
  • If a field stores history of its values, tapping on the ‘fieldname’ will generate a graph based on the history of its values:

Hope you like playing around with it :)

Adhish Singla (GSoC 2015): Week 12

Planet Jabber - 19 August, 2015 - 13:46
Objective History Logger for Sensor Devices Abstract

Storing momentary data for Sensor Devices by a node that sends back History data stored by the Logger.

  • Implementing for SleekXMPP, which is basically an API for storing and Rerieving of Momentary Data collected from other resource of same device.
  • Implementing for SleekXMPP:
    • It registers a new resource of the same device whose data is to be stored.
    • Sends a read request to the original device at regular intervals and stores the values using above mentioned API.
    • Recieves messages and respond back with history on receiving a history request by getting back data using the above mentioned API.
  • Also did a few changes to XEP-0323 Plugin of SleekXMPP for History Messages.

GSoC Final Evaluation

With this I conclude the modules made in ‘Prototyping IoT Tools’ Project for GSoC 2015. Will focus a little on Code Clean up and tutorials for the same.

Daniel Baczynski (GSoC 2015): Polishing and fixing existing code

Planet Jabber - 19 August, 2015 - 13:15
As GSoC is inevitably going to the end I started polishing and fixing existing code. Not all points of my initial plan was achieved but the aim for these last days is to prepare code so it can be extended to a full multi-account support in future.

Remko Tronçon: Simple Infinite Scrolling

Planet Jabber - 16 August, 2015 - 22:00

While looking at the demo site of Twenty Fifteen (the theme I use for this blog), I noticed it used infinite scrolling, where more articles get automatically loaded when you reach the end of the page. It looked like a neat thing to have, but since I didn’t actually use WordPress, I couldn’t use the plugins that provide infinite scrolling. Writing it myself seemed like more effort than it was worth, so I dismissed it at the time. However, I later realized that I could actually do it with just a few lines of client-side JavaScript, and didn’t need any changes or support from the backend (or, in my case, static site generator) or the theme.

Continue reading post

Peter Saint-Andre: RFC 7613: Internationalized Usernames and Passwords

Planet Jabber - 14 August, 2015 - 00:00
A few months ago I posted about the internationalization odyssey that was the Framework for Preparation, Enforcement, and Comparison of Internationalized Strings in Application Protocols, a.k.a. RFC 7564. This work has significant implications for security, as exemplified by the PRECIS profiles for usernames and passwords, just published as RFC 7613. The old approach to internationalization of usernames and passwords (RFC 4013) was locked into Unicode version 3.2 (it's now up to version 7, with version 8 coming soon) and also used an identical algorithm for both usernames and passwords, even though the security characteristics of these two constructs are quite different (for passwords we want to maximize entropy by allowing just about every possible Unicode character, whereas for usernames we want a more controlled subset of Unicode characters mostly limited to letters and numbers). With RFC 7613, Alexey Melnikov and I took a more modern and careful approach: among other things it's version-agile with respect to Unicode and it defines separate profiles - actually one for passwords (called "OpaqueString") and two for usernames, depending on whether uppercase characters are preserved or mapped to lowercase. It will take awhile for this new approach to trickle into application protocols (XMPP identifiers and chatroom nicknames are the first two) and then into running code, but eventually this new approach will provide a stronger and more sustainable foundation for handling internationalized usernames and passwords over the Internet.

Marvin Wißfeld (GSoC 2015): Status Update - Last minutes

Planet Jabber - 14 August, 2015 - 00:00

Next monday is the soft pencils down date and the firm pencils down is scheduled for next friday.

I completed the support for DANE and did further testing. With DANE support being added, we can finally start adding DNSSEC and DANE to applications. Hooray.

The list of open TODOs:

  • ECDSA support
  • DNSSEC look-aside validation (DLV)
  • Integration with smack and OpenKeychain
  • Moar Tests (can we reach 90% test coverage?)
  • Documentation

Hopefully the first three points will be finished until monday, allowing me to focus on tests on documentation the last four days (as suggested by Google).

Andreas Straub (GSoC 2015): Week 11 - Standards

Planet Jabber - 13 August, 2015 - 21:07
Howdy folks, and welcome to the progress update!

Not a whole lot of coding happened this week , as the focus has been on standardizing this implementation. I have been working on fixes for some user experience problems that occur if all keys of the counterpart have been purged. As-is, the user will be dropped into an empty TrustKeysActivity. Rather than changing this so that the multi-end encryption is unselectable in such a Situation, I'm going to still drop the user into the TrustKeysActivity, but present them with a short blurb explaining why there are no keys to select here, as we feel this is less confusing to the user. (shoutouts to @danielegobbetti for reporting this).

Other than that, work on the XEP draft is still ongoing.

Christian Schudt: Babbler Version 0.6.0

Planet Jabber - 12 August, 2015 - 22:11
I am happy to announce the release of version 0.6.0 of the Java XMPP library, which has also been released to Maven Central!

This version is an important milestone because it’s the first version which is written solely for Java 8!

In particular that means, it leverages many of the new Java 8 goodies, most notably the new Date/Time API, Functional Interfaces (e.g. Predicate) and Lambda Expressions and paves the way for future improvements (e.g. Stream API) to keep the library modern.

The legacy Date API (java.util.Date/Calendar/TimeZone) has been replaced by the new java.time package, i.e. Instant, OffsetDateTime and ZoneOffset.

Event Listeners have been replaced by java.util.function.Consumer, which really saved a lot of similar interfaces and thanks to lambdas there isn’t even a syntactical difference.

New Features A special release highlight is the support for the Jabber Component Protocol, which allows you to write External Components for an XMPP server. So the library isn’t exclusively usable for client development anymore, but now also for server component development! More about that in a future blog post.

Further new features are:

The full changelog with more information can be found here.

The updated documentation can be found here.

Support for XEP-0198: Stream Management is nearly done, but still needs some polishing, so it’s postponed to the next version.

Thanks for everybody who provided feedback and bug reports! I’m happy to hear more from you!

Adhish Singla (GSoC 2015): Week 11

Planet Jabber - 12 August, 2015 - 14:29
Objective Client-Device Logger Abstract

Logging momentary Data of a Sensor device using another resource of the same Jid.

  • 2 resources of same device can interact with each other, without any subscription.
  • So basic idea is to write a Logging Python Script for SleekXMPP that runs with same Jid as some Sensor Device which keeps asking for its Momentary Data at particular intervals from the Device and stores it locally or in some Database ( InfluxDb ).
  • So that when asked for history, the actual resource gives momentary data, while the resource of Logger Script gives History Data.
Road Ahead
  • Complete this module and implement XEP-0326.
  • Write Tutorials for all Modules in this Project, made during GSoC 2015.

Daniel Baczynski (GSoC 2015): Keeping roster items expanded

Planet Jabber - 12 August, 2015 - 12:20
After implementing roster proxy model to serve multiple RosterModels I had to update RosterGroupExpandinessPersister class (that keeps given items expanded, also after Swift restart) to manage AccountRosterItems too.

Collapsed groups were stored in string list as a setting. I have implemented CollapsedRosterItemsSet where information about each account and its groups state is stored. We can get info whether item is expanded/collapsed with convenience methods. RosterGroupExpandinessPersister now uses this new set instead of string list. CollapsedRosterItemsSet is serializable so it's easy to load/save it.

Tigase Blog: XMPP: An introduction

Planet Jabber - 11 August, 2015 - 22:41

A newcomer's introduction and journey into to the world of XMPP.
Helpful for beginners who are just starting to use XMPP.

Ishan Khanna (GSoC 2015): Serverless Messaging – Sniffing Packets

Planet Jabber - 11 August, 2015 - 22:07

For last couple of weeks I have been working on the XMPPLLConnection and Stream management. I have learned about Java NIO (read Non-Blocking I/O). Successfully implemented it in some test tasks given by my mentor and also implemented it to an extent in my project source code.

I have been testing my code for incoming connection requests with the help of Gajim on a VM. However there seems to be a problem with Gajim (This is what I have felt after trying some things suggested by David and Florian on the IRC channel #smack.) Whenever I get a Socket connection request from Gajim I send back a Stream Open packet to it but it immediately Resets the TCP connection by sending an RST packet. I have so far checked that there are no firewalls turned on for my network, I have made sure that the StreamOpen stanza is being written to the stream and is being sent to Gajim’s IP from which the request comes in.

All the above investigation was done with the help of WireShark.

This is what Gajim sends to my XMPPLLConnection

This is what I reply back to it.

However it fails to establish a TCP connection for some reason. I am still trying to figure out what’s going on.

ProcessOne: Advanced Erlang ejabberd Workshop Talks

Planet Jabber - 11 August, 2015 - 18:30

We have started preparing our Advanced Erlang ejabberd Workshop that will take place on the 17th of november 2015 in Paris.

The main focus of the workshop will be to showcase the use of ejabberd for broadcasting messages and alerts. The goal is to demonstrate that you can truly unlock the power of XMPP by implementing more than one-to-one messaging.

Session 1: Building advanced broadcast messaging service with XMPP and ejabberd
  • Talk 1: ejabberd State of the art to implement one-to-many chat services (Mickaël Rémond)
    I will be presenting all the methods available in ejabberd and XMPP to build large scale groupchat system that meet the challenge of modern messaging. In a world where browser-based chat and mobile messaging applications are the dominant clients for large XMPP networks, building groupchat system on top of XMPP is not as straightforward as it should be. However, XMPP and ejabberd have adapted themselves to these new requirements.

    The talk will cover and compare various XMPP extensions that are used today for distribution one-to-many messages:

    • Multi-User Chat: What it is used for, how to get the best of it and how to use ejabberd APIs to extend it and customize it.
    • XMPP based extended stanza addressing (called multicast service, defined in XEP-0033).
    • Admin broadcast for mass-messaging users.

    I will then explore a conversation-based, presence-less approach to enable group discussion in ejabberd and XMPP. This will be an opportunity to present our work-in-progress extension to enable Skype or WhatsApp like group conversations.

  • Talk 2: Broadcasting with XMPP PubSub. Building efficient and scalable message broadcast services (Christophe Romain and Jérôme Sautret)

    The goal will give you a broad overview of ejabberd PubSub extensible implementation. It will explains how you can benefit from the multiple plugins available to configure a scalable Pubsub deployment for your own specific needs.

    This talk will be also a good opportunity to give an overview of ejabberd PubSub API and introduce participants to PubSub plugin development.

Session 2: Managing production Erlang services at scale
  • Talk 1: Managing large scale ejabberd infrastructures: Dealing with operational challenges (Christophe Romain)

    The talk will present experimental technics to push Erlang application deployment further. It will shows in the specific case of ejabberd how you can use those methods to manage and upgrade large scale XMPP services without downtime.

The workshop will take place in Paris on November 17th, 2015. You can join us for a fixed affordable price of 100 euros (exc. VAT). You can register on Eventbrite: ejabberd Workshop – November 2015.

Tarun Gupta (GSoC 2015): Week - 10 & 11

Planet Jabber - 11 August, 2015 - 16:47
These two weeks I completed StringCodecs, Networks, Jingle and File Transfer.
In StringCodecs, I removed extra crypto functions (SHA-1, MD5 provider, etc) as they are already ported in Crypto. Later, I added tests for some existing functionalities.
XMPP has a client-server architecture wherein a client utilizing XMPP accesses a server over a TCP connection, and servers also communicate with each other over TCP connections. Because each server is identified by a network address and because server-to-server communications are a straightforward extension of the client-to-server protocol, in practice, the system consists of a network of servers that inter-communicate. For example, <> is able to exchange messages, presence, and other information with <>. This pattern is familiar from messaging protocols (such as SMTP) that make use of network addressing standards. Communications between any two servers are OPTIONAL. In Networks, I implemented various proxy connection classes (HTTP and SOCK5), Dummy Connection and ChainedConnector. I also added tests for some of the classes including HostAddress class which performs the functionality of finding the IP using InetAddress.
Jingle is an extension to XMPP which adds peer-to-peer session control for multimedia interactions such as in Voice over IP or video conferencing communications. In essence, Jingle enables two XMPP entities (e.g., romeo@montague.lit and juliet@capulet.lit) to set up, manage, and tear down a multimedia session. The negotiation takes place over XMPP, and the media transfer typically takes place outside of XMPP. More information is available in this RFC. Jingle provides a pluggable framework for both application types and media transports; in the case of voice and video chat, a Jingle negotiation usually results in use of the Real-time Transport Protocol (RTP) as the media transport and thus is compatible with existing multimedia technologies such as the Session Initiation Protocol (SIP). I added JingleSession, JingleContentID, JingleResponder, JingleSessionManager.
The File Transfer protocol is specified in XEP-0096. File Transfer defines a profile of the XMPP stream initiation extension for transferring files between two entities. The following XML namespaces are used in the context of the File Transfer protocol: In order to send a file, the sender must first tell the receiver a little bit about the file to make sure they will accept it. At the same time they list the stream methods they support in the order they wish to use them. This is done by sending the information in the namespace. More information available in this XEP. I have ported JingleFileTransfer, FileTransferManager and various other files. Tests are yet to be ported.
Next week, I am onto LinkLocal.

Alexander Gnauck: Unity development with MatriX

Planet Jabber - 11 August, 2015 - 12:36

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.
The Mono build can be found at the latest binary downloads here:
when you browse to MatriX => Mono

2) The System.Xml.Linq.dll seems to be not a standard Unity reference. Download it 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 linker.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 linker.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: Code As Craft Interview #2 – XWiki

Planet Jabber - 9 August, 2015 - 16:23

Ludovic Dubost, XWiki founder, explains what he has learned in more than 10 years running his company. Mickaël and Ludovic discuss what it is like to be both a programmer and a founder. Ludovic discuss what you have to do to stay relevant in a quickly evolving and highly competitive environment.

We hope you will enjoy this open discussion between two programmers, Open Source product builders and company founders.

Distribuir contenido