<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title><![CDATA[yaxim]]></title>
  <link href="http://yaxim.org/atom.xml" rel="self"/>
  <link href="http://yaxim.org/"/>
  <updated>2024-02-29T18:21:56+01:00</updated>
  <id>http://yaxim.org/</id>
  <author>
    <name><![CDATA[Georg Lukas]]></name>
    
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <entry>
    <title type="html"><![CDATA[Planned downtime + Happy 10th anniversary, yax.im!]]></title>
    <link href="http://yaxim.org/blog/2023/11/27/happy-10th-yax_im/"/>
    <updated>2023-11-27T16:56:00+01:00</updated>
    <id>http://yaxim.org/blog/2023/11/27/happy-10th-yax_im</id>
    <content type="html"><![CDATA[<p>Our Android XMPP client yaxim was created in 2009. A decade later,
<a href="https://yaxim.org/blog/2019/08/23/happy-birthday/">we celebrated its round birthday</a>.
To make the user
experience more straightforward, we launched the
<a href="https://yaxim.org/blog/2013/11/17/yax-im-public-xmpp-hosting/">yax.im public XMPP service</a>
in November 2013, to become the default server in yaxim. Now, ten years later,
it&rsquo;s time to recap and to upgrade the hosting infrastructure.</p>

<h2>Downtime announcement</h2>

<p><del>We will migrate the server from the old infrastructure to the new one, on
Thursday, November 30th, between 8:00 and 11:00 UTC. Please expect a few hours
of downtime until everything is settled!</del></p>

<p>The migration will also include an upgrade to prosody 0.12 and <del>the
deactivation of TLS v1.0 and v1.1 in favor of</del> TLS v1.3.</p>

<p><strong>Update:</strong></p>

<ul>
<li>The migration has been completed at 9:00 UTC.</li>
<li>We have re-enabled TLS v1 and v1.1, as those are still in active use.</li>
<li>We have removed offline messages archives for accounts with no activity in the
last year.</li>
</ul>


<p><strong>/Update</strong></p>

<p>Many thanks go to <a href="https://boerde.de/">boerde.de</a> for being our home for the
last decade, and for enduring a few DDoS attacks on our behalf. Additional
thanks go to <a href="https://as250.net">AS250</a> for offering us a new home.</p>

<h2>Ten years review</h2>

<p>We started the service on <a href="https://www.debian.org/releases/squeeze/">Debian Squeeze</a>
with the freshly released
<a href="https://prosody.im/doc/release/0.9.0">Prosody 0.9</a> on it. Since then, there
were quite a few upgrades of both the OS and of prosody. However, for technical
reasons, the server is currently running on a prosody development snapshot that
predates the current
<a href="https://blog.prosody.im/prosody-0.12.0-released/">0.12 major update</a>.</p>

<p>In that time we&rsquo;ve grown significantly, and are currently processing on average
<strong>100 thousand</strong> messages and <strong>6.3 million</strong> presence stanzas every day.</p>

<p>Back in 2013, we were quite avantgarde to support not only TLSv1.0, but also
v1.1 and v1.2. The support was only added into Android with the
<a href="https://en.wikipedia.org/wiki/Android_version_history#Android_4.1_Jelly_Bean">4.1 release in 2012</a>
and wasn&rsquo;t enabled by default until
<a href="https://en.wikipedia.org/wiki/Android_Lollipop">2014 with Android 5</a>. Now we
are lagging behind, given that TLS v1.3 came with
<a href="https://en.wikipedia.org/wiki/Android_10">Android 10 four years ago</a>.</p>

<h2>IRC transports</h2>

<p>Since 2017, we are operating a beta (internal only)
<a href="https://biboumi.louiz.org/">biboumi IRC transport</a> on <code>irc.yax.im</code> and two
dedicated transports for <a href="https://www.ircnet.com/">IRCnet</a> on <code>ircnet.yax.im</code>
and for <a href="https://www.euirc.net/">euIRC</a> on <code>euirc.yax.im</code>.</p>

<p>These were never officially announced and have just a few users. They will be
migrated to the new host as well, but with a lower priority.</p>

<h2>Spam fighting efforts</h2>

<p>The XMPP spam problem has been a significant annoyance to most users. We have
the opinion that XMPP spam can be best fought at the server level, where
aggregate views and statistics are available, and spam can be blocked centrally
for all users with
<a href="https://modules.prosody.im/mod_firewall.html">mod_firewall</a>.</p>

<p>In 2017, we have implemented
<a href="https://yaxim.org/blog/2017/12/22/spam-reduction-on-yax-dot-im/">spam detection and prevention</a>
both for yax.im users and against spam bots registered on our server. In 2020,
we extended that to
<a href="https://yaxim.org/blog/2020/05/12/new-anti-spam-measures/">auto-quarantine suspicious account creations</a>.</p>

<p>In the last two weeks, our spam fighting efforts have blocked <strong>21.000</strong> spam
messages from <strong>7.600</strong> accounts on <strong>72</strong> servers, including <strong>480</strong>
auto-flagged bot accounts on yax.im. We were not explicitly keepig note, but
the number of auto-flagged accounts since the measure was introduced in 2020 is
around <strong>30.000</strong>.</p>

<p>As part of the <a href="https://github.com/JabberSPAM">JabberSPAM</a> initiative, we have
helped report abuse and bring down unmaintained spam relays.</p>

<h2>Future</h2>

<p>With the new hosting platform and our committed team of three administrators,
we are ready to take on the challenges of the future and to sustain the growth
of our user base.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[VaxBot performance challenge]]></title>
    <link href="http://yaxim.org/blog/2021/04/09/vaxbot-performance-challenge/"/>
    <updated>2021-04-09T17:50:28+02:00</updated>
    <id>http://yaxim.org/blog/2021/04/09/vaxbot-performance-challenge</id>
    <content type="html"><![CDATA[<p>A few days ago, <a href="https://vaccine.monal.im/">VaxBot</a>, a new XMPP-based
vaccination appointment notification service was launched in the USA.
The service is recommending <a href="https://monal.im/">Monal</a> and <a href="http://yaxim.org/">yaxim</a> as
client applications, and both apps by default register accounts on <strong>yax.im</strong>.</p>

<p>This has brought us hundreds of new users (per day) and a significant amount
of new traffic from the notifications, sometimes up to 200 messages per
second. The additional traffic load caused some short service interruptions in
the last days, and we are working together with the VaxBot team on
implementing mitigations.</p>

<!--more-->


<p>The <strong>VaxBot</strong> service
<a href="https://monal.im/blog/xmpp-ending-this-pandemic-part-1/">started in mid-March in Massachusetts</a>,
and is slowly expanding to more and more states, hoping to also spread over
the ocean. It was even
<a href="https://www.fox5vegas.com/coronavirus/new-vaxbot-system-sends-notification-when-vaccine-appointments-open-up/article_690eb0de-97d8-11eb-9851-cb59fcc8b09f.html">featured</a>
on
<a href="https://www.wbtw.com/trackingthevaccine/still-looking-for-a-vaccine-new-vaccine-tracker-vaxbot-connects-people-to-appointments/">TV</a>
(archive links for EU citizens:
<a href="https://web.archive.org/web/20210409162242/https://www.fox5vegas.com/coronavirus/new-vaxbot-system-sends-notification-when-vaccine-appointments-open-up/article_690eb0de-97d8-11eb-9851-cb59fcc8b09f.html">FOX5</a>,
<a href="https://web.archive.org/web/20210409150702/https://www.wbtw.com/trackingthevaccine/still-looking-for-a-vaccine-new-vaccine-tracker-vaxbot-connects-people-to-appointments/">WBTV</a>)!</p>

<p>This has lead to a significant uptick in <strong>yax.im</strong> account registrations, as
can be seen in this graph:</p>

<p><img src="http://yaxim.org/images/vaxbot-daily-registrations.png" alt="yax.im account registrations over last few weeks" /></p>

<p>Once a user registers with <strong>VaxBot</strong>, it will automatically send them
appointment notifications for their region as soon as they become
available.</p>

<p>This means that for each potential appointment, a message will be sent to each
registered user in the region. When a large chain opens up additional
capacities, thousands of messages will be generated and sent out in a burst.</p>

<p>As those are chat messages, they need to be stored in the respective user&rsquo;s
account, delivered to online devices, and forwarded to the respective push
service to wake up a mobile device.</p>

<p><img src="http://yaxim.org/images/vaxbot-hourly-msgs.png" alt="yax.im messages from VaxBot" /></p>

<p>Due to how the server is processing messages, a large message flood from one
connection can &ldquo;capture&rdquo; the processor for multiple seconds or even longer,
leading to the starvation of other connections, causing delivery delays and
even disconnects.</p>

<p>As a preliminary measure, we have implemented a rate limiting mechanism to
reduce the impact of message bursts from <strong>VaxBot</strong>, and we are working on
optimizing the number of messages generated by the bot and on increasing the
server performance to be able to further scale up.</p>

<p>A long-term solution based on <a href="http://xmpp.org/extensions/xep-0060.html">XEP-0060: Publish-Subscribe</a> would be
interesting and probably much more efficient for the infrastructure, but that
would require significant changes to all clients, and vaccination can not
wait.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[New Anti-Spam Measures]]></title>
    <link href="http://yaxim.org/blog/2020/05/12/new-anti-spam-measures/"/>
    <updated>2020-05-12T18:20:34+02:00</updated>
    <id>http://yaxim.org/blog/2020/05/12/new-anti-spam-measures</id>
    <content type="html"><![CDATA[<p>Some days ago, we have rolled out a new anti-spam measure on our public XMPP
server. Accounts registered from a malware infected computer or through an
open proxy (unfortunately this also includes Tor exit nodes) are flagged by
default and need a manual approval from the server admins to become fully
usable.</p>

<!--more-->


<p>Registrations on the server already were limited to a small number of new
accounts per IP address per hour, to prevent large amounts of automated
registrations. However, spammers circumvented that for some time already by
using open proxy servers on the Internet to create thousands of accounts.</p>

<p>Starting last week, we are putting accounts that use open proxy servers into
quarantine, where they are limited to contacting the server support and to
kindly ask to be unblocked. Users affected by the quarantine will receive a
message with a link to the support chat as well as a link explaining why their
IP address was blocked:</p>

<p><img src="http://yaxim.org/images/yax.im-rbl-blocked.png" alt="Message to quarantined user" /></p>

<p>Trying to contact anyone else will result in errors shown to the user:</p>

<p><img src="http://yaxim.org/images/yax.im-rbl-outgoing-msg.png" alt="Error when contacting other users" /></p>

<p>Behind the scenes, we are using a
<a href="https://en.wikipedia.org/wiki/Domain_Name_System-based_Blackhole_List">Real time Blackhole List</a>
to identify accounts for the quarantine, based on
<a href="https://github.com/JabberSPAM/resources/blob/master/prosody/restrict-proxy-registrations.md">this prosody setup</a>.
We are aware that it will affect legitimate anonymisation proxy users, and we
are very sorry about that. There might be only a dozen of actual for-hire
spammers on XMPP, but their impact on our ecosystem is staggering.</p>

<p>As the server is operated by volunteers, we do not have a 24/7 support team,
so please be patient when requesting an unblocking.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Multi-day Message Archive Outage]]></title>
    <link href="http://yaxim.org/blog/2020/04/27/multi-day-message-archive-outage/"/>
    <updated>2020-04-27T18:37:49+02:00</updated>
    <id>http://yaxim.org/blog/2020/04/27/multi-day-message-archive-outage</id>
    <content type="html"><![CDATA[<p>The day after the
<a href="http://yaxim.org/blog/2020/04/23/new-prosody-on-yax-dot-im/">upgrade to prosody-trunk</a>, there
was an interruption in the database connection to the server&rsquo;s message archive.
Due to this, no messages were stored in the users&#8217; <a href="http://xmpp.org/extensions/xep-0313.html">XEP-0313: MAM</a> storage.
For users who have more than one client, this will lead to incomplete
synchronization: some messages will not arrive on all devices, and it will not
be possible to synchronize the history for the past four days to newly
installed devices. We are very sorry for the inconvenience.</p>

<!--more-->


<p>The issue happened on Friday, 2020-04-23, at 07:38 UTC, and continued until
today, 2020-04-27, 16:29 UTC.  Due to lack of automatic monitoring, it was not
discovered sooner. We are currently investigating the root cause (and also
monitoring the database connection <em>very closely</em>).</p>

<p>As the fallback &ldquo;offline storage&rdquo; mechanism was not affected, users should
receive all messages on at least one of their devices.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[New prosody on yax.im]]></title>
    <link href="http://yaxim.org/blog/2020/04/23/new-prosody-on-yax-dot-im/"/>
    <updated>2020-04-23T14:52:28+02:00</updated>
    <id>http://yaxim.org/blog/2020/04/23/new-prosody-on-yax-dot-im</id>
    <content type="html"><![CDATA[<p>The software on <a href="http://yaxim.org/yax.im/"><strong>yax.im</strong></a> has been upgraded from version <strong>0.11</strong>
to <strong>prosody-trunk</strong>. While the new version is still considered as
experimental, it provides
<a href="https://hg.prosody.im/trunk/file/d0e6d5bc7ea2/CHANGES">many under-the-hood improvements</a>
that make the trade-off worthwhile. If you notice any issues, please report in the
<a href="https://yax.im/i/#yaxim@chat.yax.im?join">yaxim room</a>
(<a href="https://yaxim.org/chat/">webchat</a>).</p>

<!--more-->


<p>The primary reason why this change became necessary is that the previous version of
<a href="https://github.com/tmolitor-stud-tu/mod_push_appserver">mod_push_appserver</a>
(the <a href="http://xmpp.org/extensions/xep-0357.html">XEP-0357: Push</a> server for yaxim users)
was using synchronous calls to Google FCM to wake up yaxim. This blocked all
message processing on <strong>yax.im</strong> for a brief moment, or for many seconds when
there were issues with the network connection to Google&rsquo;s servers. As
asynchronous requests are only sufficiently supported in <strong>prosody-trunk</strong>,
it was required to drop support for older prosody versions in
mod_push_appserver, which has happened with the <strong>4.0</strong> release.</p>

<p>On top of that, with the new version it is also possible to further optimize
mobile battery usage
(<a href="https://modules.prosody.im/mod_cache_c2s_caps.html">mod_cache_c2s_caps</a>)
and to upgrade the service to the Lua 5.3 runtime with better server-side
memory efficiency (it is currently running on 5.2). These changes will be
implemented in the coming days / weeks when the operation has proved as stable
otherwise.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[yaxim 0.9.9 - FOSDEM Edition]]></title>
    <link href="http://yaxim.org/blog/2020/01/31/yaxim-0-dot-9-9-fosdem-edition/"/>
    <updated>2020-01-31T17:04:00+01:00</updated>
    <id>http://yaxim.org/blog/2020/01/31/yaxim-0-dot-9-9-fosdem-edition</id>
    <content type="html"><![CDATA[<p>We are proud to present to you yaxim version 0.9.9 &ldquo;FOSDEM 2020 Edition&rdquo;. Many
things have changed under the hood (reliable messaging with MAM and Push, new
UI with runtime permissions), and some exciting new features like even easier
onboarding, service browsing and
<a href="http://yaxim.org/blog/2019/04/01/yaxim-enters-the-matrix/">Matrix support</a>. Taken together,
yaxim now fulfills the <strong>Core IM</strong> and the <strong>Advanced Mobile</strong> profiles of the
<a href="https://xmpp.org/extensions/xep-0423.html">XMPP Compliance Suite 2020</a>.</p>

<p><img src="http://yaxim.org/images/yaxim-0.9.9-fosdem.png" alt="yaxim 0.9.9 screenshot" /></p>

<!--more-->


<h2>Material Design</h2>

<p>Starting with this version, yaxim follows Google&rsquo;s &ldquo;Material Design&rdquo; style.
To comply with last year&rsquo;s strictened
<a href="https://developer.android.com/distribute/best-practices/develop/target-sdk">Google Play publishing requirements</a>,
we had to replace the deprecated
<a href="https://github.com/JakeWharton/ActionBarSherlock">ActionBarSherlock</a> library
with Google&rsquo;s own
<a href="https://developer.android.com/jetpack/androidx/releases/appcompat">appcompat</a>,
which provides the Material style.</p>

<p>This also means that yaxim now requires at least an Android 4.0 device. As 4.0
was released in 2011, this only affects a single-digit number of devices.
Users with a ten years old phone need to stay with older yaxim versions, which
run on Android 2.3+.</p>

<p>Furthermore, on Android 6+ devices, the user will be asked to grant permission
at the moment when they are actually needed (i.e. when sharing a file or
taking a photo).</p>

<p><img src="http://yaxim.org/images/yaxim-0.9.9-runtime-permissions.png" alt="runtime permissions screenshot" /></p>

<p>On Android 8+, the new
<a href="https://medium.com/exploring-android/exploring-android-o-notification-channels-94cd274f604c">notification channels</a>
are used by yaxim. A new channel will be created for each contact with a
custom ringtone. Once you receive a message from such a contact, you need to
use the Android notification settings to change the ringtone, though.</p>

<h2>Even Easier Easy Onboarding</h2>

<p>yaxim 0.9 introduced <a href="http://yaxim.org/blog/2017/01/31/yaxim-0-dot-9-security-easy-xmpp/">Easy XMPP</a>,
using the purely client-side <a href="http://xmpp.org/extensions/xep-0379.html">XEP-0379: Pre-Authenticated Roster Subscription</a>,
which required a server with active In-Band Registration.</p>

<p>The new <a href="http://xmpp.org/extensions/xep-0401.html">XEP-0401: Easy User Onboarding</a> allows you to invite new users to
your server without <a href="http://yaxim.org/blog/2017/12/22/spam-reduction-on-yax-dot-im/">being abused by spammers</a>.</p>

<p>Here, you can see a
<a href="https://lab.louiz.org/poezio/poezio/merge_requests/62">poezio</a> user on a
<a href="https://modules.prosody.im/mod_easy_invite.html">prosody</a> server creating an
invitation that is used by yaxim to register and auto-add the inviter:</p>

<p><video width='1280' height='720' preload='metadata' controls poster='http://yaxim.org/images/poezio-yaxim-invitation.jpg'><source src='http://yaxim.org/images/poezio-yaxim-invitation.mp4' type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'></video></p>

<p>The invitation page in the example is making use of
<a href="https://developer.android.com/google/play/installreferrer">Google Play Install Referrers</a>
to let the newly installed yaxim know the inviter&rsquo;s address, which has a
privacy impact, and therefore is not rolled out to the official landing page
yet.</p>

<h2>Chat Rooms</h2>

<p>There is a new view of your (bookmarked) rooms and a browser of public rooms
powered by <a href="https://search.jabber.network/">search.jabber.network</a>.</p>

<p><img src="http://yaxim.org/images/yaxim-0.9.9-rooms.png" alt="room search screenshot" /></p>

<p>Your nickname (&ldquo;display name&rdquo;) is now synchronized to the server using
<a href="http://xmpp.org/extensions/xep-0172.html">XEP-0172: User Nickname</a>, and you can change it in the account settings.</p>

<h2>Service Discovery and Matrix Support</h2>

<p>The room browser can also be used to discover services by entering a valid
XMPP address into the search field:</p>

<p><img src="http://yaxim.org/images/yaxim-0.9.9-prosody.im.png" alt="prosody.im search screenshot" /></p>

<p><img src="http://yaxim.org/images/yaxim-0.9.9-prosody.im-browser.png" alt="prosody.im browser screenshot" /></p>

<p><img src="http://yaxim.org/images/yaxim-0.9.9-prosody.im-browser-conference.png" alt="prosody.im rooms screenshot" /></p>

<p>This is not limited to servers and rooms, you can also search for users, chat
with them and add them to your contact list:</p>

<p><img src="http://yaxim.org/images/yaxim-0.9.9-ge0rg.png" alt="ge0rg search screenshot" /></p>

<p>While initially introduced as an
<a href="http://yaxim.org/blog/2019/04/01/yaxim-enters-the-matrix/">April Fools&#8217; Day joke</a>,
Matrix support (using the
<a href="https://github.com/matrix-org/matrix-bifrost/">Bifröst bridge</a> is now
actually integrated into yaxim, using the official bridge on <code>matrix.org</code>,
which has also been made ready for FOSDEM 2020.</p>

<h2>Reliable Messaging</h2>

<p>For users who are using yaxim in parallel to another client, the new support
for <a href="http://xmpp.org/extensions/xep-0313.html">XEP-0313: Message Archive Management</a> (MAM) is good news. When
connecting to the server, yaxim will now activate MAM and request all messages
since the last synchronization. This will ensure that yaxim receives all
messages which already were delivered to the other client.</p>

<p>Furthermore, when installed on devices with Google Play Services, yaxim will
register for <a href="http://xmpp.org/extensions/xep-0357.html">XEP-0357: Push Notifications</a> via the <code>push.yax.im</code> server.
This will ensure that the app is woken up from deep sleep or launched when
somebody sends you a new message.</p>

<p>These important changes are also reflected in the <a href="http://yaxim.org/privacy/">app privacy policy</a>.</p>

<h2>Under the Hood Changes</h2>

<p>The internal chat message database has been optimized by adding database
indexes for all frequent operations, making yaxim much faster at loading chat
windows with long histories.</p>

<p>Furthermore, yaxim was upgraded from the ancient Smack 3 to the
<a href="https://download.igniterealtime.org/smack/docs/4.3.4/changelog.html">Smack 4.3.x</a>
XMPP library.</p>

<h2>Road to 1.0</h2>

<p>This release brings significant changes, and we had hoped to be able to
finalize even more to make a glamorous and exciting 1.0 release for the
<a href="http://yaxim.org/blog/2019/08/23/happy-birthday/">10 years anniversary</a>. However, the current
code base brings some major improvements for reliability and usability and we
did not want to hold them back even further.</p>

<p>More work is needed on the contacts view, to allow sorting by conversation age
and to quickly search your contacts. Furthermore, the creation of rooms and
inviting your friends into them need to be integrated.</p>

<p>MAM was long overdue, and for now only your private messages are queried for.
Room history is still obtained using the legacy mechanism, meaning that
sometimes, you might miss out on parts of room history.</p>

<p>The embedded image view does not have proper caching, and it will attempt to
load any attachment, regardless its size and whether it can be displayed in
yaxim. This needs to be restructured in a way that limits downloads to actual
image files of a certain maximum size.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Happy Birthday, yaxim! 10 Years of Android XMPP]]></title>
    <link href="http://yaxim.org/blog/2019/08/23/happy-birthday/"/>
    <updated>2019-08-23T12:43:10+02:00</updated>
    <id>http://yaxim.org/blog/2019/08/23/happy-birthday</id>
    <content type="html"><![CDATA[<p>A decade ago, today,
<a href="https://github.com/yaxim-org/yaxim/commit/68fe33a0444533c4bb993d446a2ff71d3e09baeb">the first yaxim commit</a>
was created, making it now officially
<a href="https://nl.movim.eu/?blog%2Fdebacle%40movim.eu%2Fhappy-birthday-xmpp-20th-anniversary-of-1st-jabber-server-IBmtu8">half as old as XMPP</a>.
Since then, much has happened both in the XMPP ecosystem and on the Android
side of things.</p>

<!--more-->


<h1>2009: The Beginning</h1>

<p>Back in 2009, the Android platform was still brand new, and it was lacking a
Free IM client. There were rumors and announcements, but nobody had posted
working code yet.</p>

<p><img class="left" src="http://yaxim.org/images/yaxim-old-48.png" title="Old yaxim logo" ></p>

<p>The first specific hint was a German slide deck by Sven and Chris, presenting
their semester project,
<a href="https://de.slideshare.net/pfleidi/yaxim-yet-another-xmpp-instant-messenger">YAXIM - Yet Another XMPP Instant Messenger</a>.</p>

<p>Some friendly emails later, a GitHub project got created, and the coding went
on. At the end of the year, a
<a href="https://op-co.de/tmp/yaxim-26c3-lightning.pdf">lightning talk was given at the 26C3</a>,
showing how yaxim looked back then:</p>

<p><img src="http://yaxim.org/images/yaxim-26c3-lightning-3.png" alt="26C3 slide: state of affairs" /></p>

<p><img src="http://yaxim.org/images/yaxim-26c3-lightning-4.png" alt="26C3 slide: screenshots" /></p>

<p>In the early days, it was a
<a href="https://op-co.de/blog/posts/XEP-0198/">huge challenge to reliably deliver messages</a>,
and things were improving only slowly.</p>

<h1>Significant Steps</h1>

<p>In 2010, YAXIM got renamed into yaxim, to look more like a name and less like
a yelling acronym.</p>

<p>In 2013, <a href="http://yaxim.org/bruno/">Bruno</a> was launched as yaxim&rsquo;s cute little sibling, to
appeal to children and everybody who loves animals. It has attained almost
2000 active fans by now.</p>

<p>Also in 2013, the <a href="http://yaxim.org/yax.im/">yax.im</a> XMPP service was launched, mainly to make
on-boarding from yaxim and Bruno easier, but also to have a stable and
reliable service usable for mobile clients.</p>

<p>Finally, in 2016, yaxim got its current yak-oriented logo.</p>

<p><img src="http://yaxim.org/images/yaxim-0.9-feature-graphic.png" alt="yaxim feature graphic" /></p>

<h1>A Review In Numbers</h1>

<p>From day 1, yaxim was more or less a hobby project, with no commercial backing
and no full time developers. Over the years, the code base has grown slowly,
with 2015 being an especially slow year.</p>

<p><img src="http://yaxim.org/images/yaxim-git-2009-2019.png" alt="yaxim commit history" /></p>

<p>Some contributors were more active than others&hellip; 😉</p>

<p><img src="http://yaxim.org/images/yaxim-authors-2009-2019.png" alt="yaxim Lines of Code history" /></p>

<p>Even though yaxim still has more total installs on Google Play than
<a href="https://play.google.com/store/apps/details?id=eu.siacs.conversations">Conversations</a>,
the latter is said to be the go-to client on Android, and very popular among
federation nerds. Still, at least in the last three years, there was no
decline in the number of devices that yaxim is installed on (Google doesn&rsquo;t
provide stats before 2016):</p>

<p><img src="http://yaxim.org/images/yaxim-play-devices-2016-2019.png" alt="3 years of devices" /></p>

<h1>Current Challenges</h1>

<p>The technical foundation of yaxim (Smack 3.x, ActionBarSherlock) became rather
dated, and currently much effort is going into making yaxim look great on
modern (Material design) Android devices, and to support modern features like
interactive permission dialogs and battery saving, as well as
<a href="http://yaxim.org/blog/2019/04/01/yaxim-enters-the-matrix/">the Matrix</a> (with the support
being <a href="https://web.archive.org/web/20190412060115/http://matrix.org/">currently dormant</a>.</p>

<p>Please check out
<a href="https://play.google.com/apps/testing/org.yaxim.androidclient">the Google Play beta channel</a>
to stay up-to-date with the most recent developments, and let&rsquo;s see how the
next decade will develop!</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Partial Service Downtime]]></title>
    <link href="http://yaxim.org/blog/2019/04/13/partial-service-downtime/"/>
    <updated>2019-04-13T18:36:21+02:00</updated>
    <id>http://yaxim.org/blog/2019/04/13/partial-service-downtime</id>
    <content type="html"><![CDATA[<p>The <a href="http://yaxim.org/yax.im/">yax.im service</a> was unavailable to ~11% of our users since
March 28th.  This was a result of a bug in a community module that was
triggered by our upgrade to
<a href="https://blog.prosody.im/prosody-0-11-0-released/">prosody 0.11</a>.</p>

<!--more-->


<p>The <strong>yax.im</strong> XMPP service is running on the host <strong>xmpp.yaxim.org</strong> and uses
<a href="https://wiki.xmpp.org/web/SRV_Records">SRV records</a> to let clients know the
actual host name. However, a certain percentage of clients (around 11%) are
running on IT infrastructure from the last century and fail to obtain those
SRV records. These clients fall back to connecting directly to the <strong>yax.im</strong>
host instead.</p>

<p><img class="left" src="http://yaxim.org/images/user-drop-without-srv.png" title="Logged in user numbers drop in Week 13" ></p>

<p>To accomodiate the clients, we are using <a href="https://www.haproxy.org">HAProxy</a>
and <a href="https://modules.prosody.im/mod_net_proxy.html">mod_net_proxy</a> to properly
forward the connections from the web server to the XMPP server.</p>

<p>After the upgrade to prosody 0.11, mod_net_proxy failed to accept new
connections from HAProxy, so that clients not using SRV were caught in an
infinite &ldquo;Connecting&hellip;&rdquo; loop. Unfortunately, this was not detected by our
technical monitoring, and only was brought up recently by an administrator&rsquo;s
relative.</p>

<p>The communication between HAProxy and mod_net_proxy has been restored today,
and the service should be fully available from now on. We will also improve
our monitoring to make sure that similar problems are detected in time in the
future.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[yaxim Enters the Matrix]]></title>
    <link href="http://yaxim.org/blog/2019/04/01/yaxim-enters-the-matrix/"/>
    <updated>2019-04-01T13:21:56+02:00</updated>
    <id>http://yaxim.org/blog/2019/04/01/yaxim-enters-the-matrix</id>
    <content type="html"><![CDATA[<p><img src="http://yaxim.org/images/yaxim-matrix-crop.png" alt="yaxim enters the Matrix" /></p>

<p>Starting today, yaxim is switching its protocol foundation from the
deprecated exchange of clumsy and inefficient XML streams to the modern
and elegant combination of HTTP and JSON/REST, the Matrix protocol.</p>

<!--more-->


<h2>Protocol History and Comparison</h2>

<p>The XMPP protocol
<a href="https://xmpp.org/2019/01/the-xmpp-newsletter-4-january-2019/">celebrated its 20th birthday early this year</a>.
The Matrix followed two months later and is
<a href="https://m.imdb.com/title/tt0133093/releaseinfo">currently in the middle of its own celebration</a>.
Some fifteen years later, a small company decided to use the strong brand
value of the Matrix name to <a href="https://matrix.org/blog/2014/09/03/hello-world/">reinvent XMPP with a modern facade</a>.</p>

<p>Evil voices claim that MATRIX stands for
<a href="https://news.ycombinator.com/item?id=19421917">Monolithic, Awefully Trendy Re-Implementation of XMPP</a>,
and there is some truth to this, if we compare the words of the respective
founding fathers:</p>

<blockquote><p>Jabber is a new project I recently started to create a complete open-source platform for Instant Messaging with transparent communication to other IM systems(ICQ, AIM, etc).</p><footer><strong>Jeremie Miller, 1999 on Slashdot,</strong> <cite><a href='https://slashdot.org/story/99/01/04/1621211/open-real-time-messaging-system'>slashdot.org/story/99/01/04/&hellip;</a></cite></footer></blockquote>




<blockquote><p>I think they missed the bit where Matrix is called Matrix because it bridges (matrixes) the existing networks (Slack, IRC, Telegram, Discord, XMPP, etc) in, rather than needing to convince everyone to join.</p><footer><strong>Matthew Hodgson, 2019 on HN,</strong> <cite><a href='https://news.ycombinator.com/item?id=19216252'>news.ycombinator.com/&hellip;</a></cite></footer></blockquote>


<p>However, the Matrix protocol has outgrown Vector Ltd, there is a
<a href="https://matrix.org/docs/spec/">version <del>1.0</del> 0.4 specification</a>,
and even a
<a href="https://matrix.org/blog/2018/10/29/introducing-the-matrix-org-foundation-part-1-of-2/">Matrix.org Foundation</a>.</p>

<p>This is much superior to XMPP, which is based on some
<a href="https://xmpp.org/rfcs/rfc6120.html">arcane</a>
<a href="https://xmpp.org/rfcs/rfc6121.html">specifications</a> maintained by
<a href="https://mailarchive.ietf.org/arch/msg/ietf/CpSAlzZ8848uCZuB9lFQjOFwyrE">a bunch of grey beards</a>,
plus a separate
<a href="https://xmpp.org/about/xmpp-standards-foundation.html">organisation</a>
for protocol extensions.
In addition, Matrix supports working over
<a href="https://matrix.org/blog/2019/03/12/breaking-the-100bps-barrier-with-matrix-meshsim-coap-proxy/">100 bits per second connections</a>,
while XMPP only gives you <a href="https://xmpp.org/extensions/xep-0365.html#intro">75 bps</a>.</p>

<p>The monolithic protocol is another huge advantage compared to
<a href="https://xmpp.org/extensions/">many hundreds of optional extensions</a>, and the
rumors of Matrix fragmentation are <a href="https://arewereadyyet.com/">a blatant lie</a>.</p>

<h2>Enter the Matrix</h2>

<p>Therefore, the yaxim developers have decided to take the blue pill, to
move forward, and to use the better and more modern and mobile friendly
polling based HTTP scheme. Starting with the current
<a href="https://play.google.com/apps/testing/org.yaxim.androidclient">beta release</a>,
you can enter Matrix chat rooms and talk to users on the Matrix.</p>

<p><video width='560' height='996' preload='metadata' controls poster='http://yaxim.org/images/yaxim-matrix.png'><source src='http://yaxim.org/images/yaxim-matrix.mp4' type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'></video></p>

<p>The legacy XMPP protocol is remaining in the release for now, but will
be removed in the near future to reduce the bloat of yaxim. You will be
able to migrate your contacts to your new Matrix account by using the
<a href="https://github.com/matrix-org/matrix-bifrost">Bifröst bridge</a>.</p>

<p>In parallel, we are working on switching
<a href="https://yaxim.org/yax.im/">yax.im</a> from prosody to Synapse. The data
transition is already completed, and we are only waiting for the data
center provider to add 512GB of RAM to the machine before we can switch
over.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Updated yax.im Policies]]></title>
    <link href="http://yaxim.org/blog/2018/05/24/updated-yax-dot-im-policies/"/>
    <updated>2018-05-24T20:48:00+02:00</updated>
    <id>http://yaxim.org/blog/2018/05/24/updated-yax-dot-im-policies</id>
    <content type="html"><![CDATA[<p>As users of a service, you have a right to know which data the service is
storing about you and how it is using that data. Starting tomorrow, this right
will become law in the European Union as the
<a href="https://en.wikipedia.org/wiki/General_Data_Protection_Regulation">General Data Protection Regulation (GDPR)</a>.</p>

<p>In the last months, we have worked out
<a href="https://wiki.xmpp.org/web/GDPR">how this affects the Jabber ecosystem</a>. This
work has resulted in the creation of new service policies for the <strong>yax.im</strong>
service, which become effective today.</p>

<!--more-->


<h2>Privacy Policy</h2>

<p>Our <a href="http://yaxim.org/yax.im/privacy/">Privacy Policy</a> describes in detail what information is
stored about you, how long it is stored and how it is shared with other
parties.</p>

<p>We are only storing and processing your information to:</p>

<ul>
<li>provide the service you explicitly want (send and receive messages and
files, participate in chatrooms etc.)</li>
<li>fight Jabber spam (<a href="http://yaxim.org/blog/2017/12/22/spam-reduction-on-yax-dot-im/">this is a huge problem!</a>)</li>
<li>ensure that our server operates properly</li>
</ul>


<p>We do not create profiles of our users or try to monetize the data in any way.</p>

<h2>Terms of Service</h2>

<p>Our <a href="http://yaxim.org/yax.im/tos/">Terms of Service</a> have moved to their own page, and we have
made more explicit that you may not use our server for illegal things or to
send spam.</p>

<h2>Other Changes</h2>

<p>To improve our (your!) data footprint, we are disabling the following
functions:</p>

<ul>
<li>Disqus comments (they used to be nice a loooong time ago).</li>
<li>Direct buttons for Twitter and flattr.</li>
<li>Infinite storage of uploaded user files.</li>
</ul>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Spam Reduction on yax.im]]></title>
    <link href="http://yaxim.org/blog/2017/12/22/spam-reduction-on-yax-dot-im/"/>
    <updated>2017-12-22T13:37:00+01:00</updated>
    <id>http://yaxim.org/blog/2017/12/22/spam-reduction-on-yax-dot-im</id>
    <content type="html"><![CDATA[<p>Jabber spam has become a
<a href="https://www.bleepingcomputer.com/news/security/xsender-the-source-of-all-the-recent-xmpp-spam/">huge</a>
<a href="https://www.bleepingcomputer.com/news/security/this-spam-service-will-charge-25-to-stop-spamming-you/">problem</a>
over the last one or two years. Spammers register thousands of accounts on
hundreds of public servers, and then send masses of messages to real and
guessed Jabber addresses. The <strong>yax.im</strong> server operators are committed
to fighting XMPP spam and helping others do so as well. In the
last two weeks, <strong>yax.im</strong> automatically blocked 46996 messages from 14293
different accounts registered on 282 different servers.</p>

<!--more-->


<h2>Measures</h2>

<p>Many public servers have adopted a policy to silently block messages from
strangers. This is problematic for two reasons: First, it breaks the
expectation of communication - you can&rsquo;t just send a message to somebody, you
first need to ask them to become you friend (and to see their online status).
Second, it is not apparent to you when you send a message - you don&rsquo;t receive
a response, and not even an error message. You can only guess whether the
message got delivered or not.</p>

<p>The <strong>yax.im</strong> server is using a custom
<a href="https://modules.prosody.im/mod_firewall.html">mod_firewall</a> rule-set to
detect and reject spam messages, both from and to accounts on <strong>yax.im</strong>. If
you send a message that does not pass the spam filter, you will receive an
error message (&ldquo;Blocked due to abuse&rdquo;).</p>

<p>The filter will flag certain automatic messages (like server monitoring
notifications) as spam.  If you are running a bot on <strong>yax.im</strong>, please ensure
that all users who want to receive such notifications add the
bot as their contact.</p>

<p>Furthermore, accounts registered on <strong>yax.im</strong> for the purpose of sending spam
will be terminated immediately, and all accounts registered from the same IP
address will be flagged and reviewed.</p>

<p>The rule-set is updated periodically to reflect changes in the spam
transmissions. Feel free to
<a href="https://yax.im/i/#yaxim@chat.yax.im?join">contact the server operators</a> to
learn more.</p>

<h2>Advice to Public Server Operators</h2>

<p>If you run a server with public registration, please consider this advice:
<strong>Don&rsquo;t do it!</strong></p>

<p>Seriously, running a public server is a time-consuming job, and if you don&rsquo;t
take the time to monitor and disable spammer accounts, you quickly become a
liability for the whole XMPP ecosystem by annoying thousands of users (on
other servers). It is perfectly fine to run a server for your friends and
family, and to <a href="https://modules.prosody.im/mod_invite.html">invite</a> them
individually.</p>

<p>If you insist on running a public server, please take the following measures:</p>

<ul>
<li>Limit and monitor In-Band-Registration</li>
<li>Protect account registration with a CAPTCHA, phone number validation or
other means that are hard to cheat</li>
<li>Throttle the number of messages you accept from local users, especially to
non-contacts</li>
<li>Provide <a href="http://xmpp.org/extensions/xep-0157.html">XEP-0157: Contact Addresses for XMPP Services</a> so that other
admins can contact you</li>
</ul>


<p>Thank you for observing all safety precautions.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[yaxim 0.9 - Security Update, Easy XMPP]]></title>
    <link href="http://yaxim.org/blog/2017/01/31/yaxim-0-dot-9-security-easy-xmpp/"/>
    <updated>2017-01-31T11:14:00+01:00</updated>
    <id>http://yaxim.org/blog/2017/01/31/yaxim-0-dot-9-security-easy-xmpp</id>
    <content type="html"><![CDATA[<p>There is a new yaxim release, fixing the
<a href="https://rt-solutions.de/en/2017/02/CVE-2017-5589_xmpp_carbons/">CVE-2017-5589</a>
security vulnerability.  <strong>PLEASE UPGRADE NOW!</strong>. The vulnerability allowed
attackers to make messages appear as if they were sent by somebody else:</p>

<p><img src="http://yaxim.org/images/CVE-2017-PHB-yaxim.png" alt="Message impersonating the Pointy-Haired Boss" /></p>

<p>The release also provides a number of long-awaited improvements like
<a href="https://wiki.xmpp.org/web/Easy_XMPP">Easy XMPP</a>, Group chats, Android Auto,
a new design and much much more.</p>

<!--more-->


<h2>Easy XMPP</h2>

<p>Most XMPP clients are impossible to use for normal people. Usability is a hard
problem, and making a federated protocol from the early 2000ies usable is even
more so. Now, yaxim provides significant improvements:</p>

<ol>
<li><p>Install the app and <a href="https://wiki.xmpp.org/web/Easy_Onboarding#Account_Creation">create an account</a>
by just typing your desired user name. A secure password will be
auto-generated (and you can overwrite it in the prefs):</p>

<p><img src="http://yaxim.org/images/yaxim-0.9-welcome.png" alt="Account Creation" /></p></li>
<li><p>You can <a href="https://wiki.xmpp.org/web/Easy_Roster_Invitations">invite friends</a>
using the new &ldquo;Create Invitation&rdquo; feature:</p>

<p><img src="http://yaxim.org/images/yaxim-0.9-menu-create.png" alt="Menu: Create Invitation" />
<img src="http://yaxim.org/images/yaxim-0.9-pars.png" alt="Invitation as QR Code" /></p>

<p>You can share the invitation link via QR-code, e-mail, SMS or any other
means, and your friend will either see a friendly landing page
(<a href="https://github.com/ge0rg/easy-xmpp-invitation">source</a>), or immediately
get the link opened in yaxim:</p>

<p><img src="http://yaxim.org/images/yaxim-0.9-pars-br.png" alt="Invitation in Browser" />
<img src="http://yaxim.org/images/yaxim-0.9-pars-click.png" alt="Invitation in yaxim" /></p>

<p>Because yaxim is the first client to support <a href="http://xmpp.org/extensions/xep-0379.html">XEP-0379: Pre-Authenticated Roster Subscription</a>,
it will automatically approve and add your friend.</p>

<p>You can also directly use <a href="https://en.wikipedia.org/wiki/Android_Beam">Android Beam™</a>
to share your own or any contact&rsquo;s address, by touching your devices
back-to-back.</p></li>
<li><p>It comes with technical foundation to support
<a href="https://wiki.xmpp.org/web/Easy_Group_Chats">Easy Group Chats</a>:</p></li>
</ol>


<h2>Group Chats</h2>

<p>Support for Group Chats (also known as <a href="http://xmpp.org/extensions/xep-0045.html">XEP-0045: Multi-User Chat</a> or MUC)
has been <a href="https://github.com/pfleidi/yaxim/issues/29">wished for</a> for a long
time, and it was in the works for multiple years, culminating in something that
is finally usable.</p>

<p>The recommended way to participate is to get invited into a Group Chat by a
friend (unfortunately, inviting friends isn&rsquo;t yet supported directly in yaxim).
You will get an invitation notification and can participate:</p>

<p><img src="http://yaxim.org/images/yaxim-0.9-muc-invite.png" alt="MUC Invitation and Join" />
<img src="http://yaxim.org/images/yaxim-0.9-muc-notify.png" alt="MUC Notification and Chat" /></p>

<p>Of course it is also possible to manually join a known MUC, however this
behavior is frowned upon, because typing JIDs is boring:</p>

<p><img src="http://yaxim.org/images/yaxim-0.9-muc-add.png" alt="MUC Add from Menu" />
<img src="http://yaxim.org/images/yaxim-0.9-muc-add-dialog.png" alt="MUC Add Dialog" /></p>

<p>A future release will provide a &ldquo;seamless&rdquo; flow to create groups for Cat
Pictures, Christmas planning or Business Matters, and help you invite all the
right people, as outlined in
<a href="https://wiki.xmpp.org/web/Easy_Group_Chats">Easy Group Chats</a>.</p>

<h2>Android Auto (and Wear)</h2>

<p>To improve the usability of yaxim in more-mobile-than-mobile scenarios, we have
added support for <a href="https://www.android.com/auto/">Android Auto</a> and
<a href="https://www.android.com/wear/">Android Wear</a>. If you connect your Auto/Wear
enabled device to your smartphone and install the appropriate companion app, you
will be able to receive message notifications from yaxim and respond
accordingly.</p>

<p>Android Auto will display the sender and read aloud the message content,
allowing to dictate a response or send back &ldquo;I&rsquo;m driving&rdquo;:</p>

<p><img src="http://yaxim.org/images/yaxim-0.9-aa-wide.png" alt="yaxim in Android Auto" /></p>

<p>On Wear, you can read the actual message, dictate the response or jump into the
app:</p>

<p><img src="http://yaxim.org/images/android-wear-collage.png" alt="yaxim in Android Wear" /></p>

<p>P.S: Starting with Android 5 and
<a href="https://web.archive.org/web/20161108133949/https://blog.google/products/android/android-auto-available-in-every-car/">Auto 2</a>,
you can run AA directly on your phone screen when using an appropriate phone
mount.</p>

<h2>New Design</h2>

<p>Consistent with the new <a href="http://yaxim.org/yax.im/">yax.im</a> look featuring Yaks, we have
redesigned the app logo and branding:</p>

<p><img src="http://yaxim.org/images/yaxim-0.9-feature-graphic.png" alt="New yaxim logo" /></p>

<p>Notifications also include the new icon, so the time of the red-white-yellow
ninja chicken is over:</p>

<p><img src="http://yaxim.org/images/yaxim-0.9-yak-notification.png" alt="New yaxim notification" /></p>

<h2>What&rsquo;s Next</h2>

<p>It might be a bit pathetic to outline the future plans in a release that
has taken over two years to complete, but still, it&rsquo;s important to share
our thoughts and ideas.</p>

<p>Let&rsquo;s first recapitulate our past promises from
<a href="http://yaxim.org/blog/2013/02/11/yaxim-0-dot-8-6-released/">0.8.6</a> and
<a href="http://yaxim.org/blog/2014/01/30/yaxim-0-dot-8-7-stream-management-and-more/">0.8.7</a>:</p>

<ul>
<li><p>We have finally tackled MUCs (as asked in 2011 and promised in 2013)  \o/</p></li>
<li><p>It looks like Android tablets aren&rsquo;t much of a thing, and neither is Android
TV.  There hasn&rsquo;t been much demand regarding big screen support, and there
 are no current plans.</p></li>
<li><p>End-to-end encryption is now called <a href="http://xmpp.org/extensions/xep-0384.html">XEP-0384: OMEMO</a> (<a href="https://github.com/pfleidi/yaxim/issues/197">#197</a>), we
will address it in a future release. Hopefully. Just run your own private and
trusted server already!</p></li>
</ul>


<p>The XMPP world has changed in the last two years. The most important plans now
are:</p>

<ul>
<li><p><a href="https://wiki.xmpp.org/web/Easy_XMPP">Make XMPP even easier</a> (and improve
yaxim accordingly)!</p></li>
<li><p>Implement <a href="http://xmpp.org/extensions/xep-0363.html">XEP-0363: HTTP File Upload</a>: <a href="https://github.com/pfleidi/yaxim/issues/196">#196</a> - high priority!</p></li>
<li><p>Implement <a href="http://xmpp.org/extensions/xep-0313.html">XEP-0313: Message Archive Management</a>: <a href="https://github.com/pfleidi/yaxim/issues/98">#98</a> - medium
priority</p></li>
<li><p>Implement User Avatars - maybe&hellip;</p></li>
<li><p>Boring maintenance work (Currently yaxim uses content providers and databases
for everything, including user presence. This makes for a very laggy
experience when connecting, and needs to be cleaned up. This will be a major
redesign of the internals, but it will make future improvements much easier
and faster).</p></li>
</ul>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Registration Repaired]]></title>
    <link href="http://yaxim.org/blog/2016/11/02/registration-repaired/"/>
    <updated>2016-11-02T12:28:00+01:00</updated>
    <id>http://yaxim.org/blog/2016/11/02/registration-repaired</id>
    <content type="html"><![CDATA[<p>In the last three months, it was not possible to register new accounts on
<a href="http://yaxim.org/yax.im/"><strong>yax.im</strong></a>. This issue has been resolved now.</p>

<!--more-->


<p>On 2016-07-27, the service was upgraded to the experimental prosody 0.10 branch, to
allow support for <a href="http://xmpp.org/extensions/xep-0313.html">XEP-0313: Message Archive Management</a> and for its better MUC
implementation.</p>

<p>Unfortunately, the upgrade also introduced
<a href="https://prosody.im/issues/issue/724">prosody bug #724</a>, where a logic error causes
new user registrations to fail, except for spammer accounts. Because the yax.im admin
was not aware of this and failed to see the signs of stagnation as well as angry user
reports, it took over three months to find and fix the issue. <strong>Sorry!</strong></p>

<p><img src="http://yaxim.org/images/registration-stagnation.png" alt="registration stagnation" /></p>

<p>The good news is: yax.im is accepting new users again! If you are running yaxim and
your registration attempt has failed, please uninstall &amp; reinstall the app or clear
the app data to perform a new registration.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[yax.im DNS Issues]]></title>
    <link href="http://yaxim.org/blog/2015/04/10/yax-dot-im-dns-issues/"/>
    <updated>2015-04-10T17:11:00+02:00</updated>
    <id>http://yaxim.org/blog/2015/04/10/yax-dot-im-dns-issues</id>
    <content type="html"><![CDATA[<p>Currently, the <a href="http://yaxim.org/yax.im/"><strong>yax.im</strong></a> service is experiencing connectivity problems (&ldquo;remote-server-not-found&rdquo; or &ldquo;connection-timeout&rdquo; on server-to-server links, &ldquo;Unable to resolve yax.im&rdquo; on clients) due to a DNS problem.</p>

<p>To support
<a href="http://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions">DNSSEC</a>,
we are moving the yax.im and yaxim.org domains to a different set of
nameservers. It looks like the old nameservers for yax.im stopped resolving the
domain before the 72h transition period was over; a support ticked has been
opened for this. Please bear with us (or flush your resolver cache) until the
issue has been fixed.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[yaxim 0.8.8 - Important Security Update]]></title>
    <link href="http://yaxim.org/blog/2014/08/06/yaxim-0-dot-8-8-important-security-update/"/>
    <updated>2014-08-06T13:37:00+02:00</updated>
    <id>http://yaxim.org/blog/2014/08/06/yaxim-0-dot-8-8-important-security-update</id>
    <content type="html"><![CDATA[<p>yaxim&rsquo;s stated first goal is security. Unfortunately, there are days when you
realize you failed hard at reaching that goal. <strong>All versions of yaxim before
0.8.8 are vulnerable to a
<a href="http://en.wikipedia.org/wiki/Man-in-the-middle%5Fattack">Man-in-the-Middle attack</a>,</strong>
where an active attacker can redirect and read all your traffic by using a
valid SSL certificate for his own server.</p>

<p>Please update immediately to 0.8.8
(<a href="https://raw.github.com/pfleidi/yaxim/master/ChangeLog">ChangeLog</a>,
<a href="https://github.com/pfleidi/yaxim/commits/0.8.8">commit history</a>)!</p>

<!--more-->


<h2>Man-in-the-Middle Vulnerability</h2>

<p>yaxim has fallen victim to the problem known as
<a href="http://op-co.de/CVE-2014-5075.html">CVE-2014-5075</a>, allowing attackers to hook
into the connection between yaxim and your server, and to read all your data
(including your XMPP password!).</p>

<p>It is not known if this vulnerability has ever been exploited in the wild.
Thereforeyou should immediately upgrade yaxim and change your XMPP server
password.  The latter can also be accomplished using yaxim 0.8.8.</p>

<h2>New Password Change Dialog</h2>

<p>Previous versions of yaxim only allowed changing the password stored in yaxim,
not the one on the server.</p>

<p>Because changing your XMPP password is an important security element, and the
embarrassing security vulnerability that existed in yaxim over the last years
forces the author to make it possible, the password change dialog now
incorporates the ability to change your password locally and on the server:</p>

<p><img src="http://yaxim.org/images/yaxim-password-server.png" alt="server password change dialog" /></p>

<p>If you only want to change the password in yaxim, but not on the server, just
untick the box:</p>

<p><img src="http://yaxim.org/images/yaxim-password-local.png" alt="local password change dialog" /></p>

<p>Because the XMPP password is stored in yaxim&rsquo;s (unencrypted) preferences, and
most users do not remember their XMPP password anyway, <strong>this mechanism does not
require entering the old password.</strong> If you consinder this a security
problem, please do not give your smartphone to potential pranksters.</p>

<p>On related news, the startup wizard also requires to re-enter the password when
registering a new account.</p>

<h2>Other Security Improvements</h2>

<p>As of now, yaxim will try to use TLSv1.2 or TLSv1.1 first, on Android 4.0 and
later. Older Android devices are limited to TLSv1 unfortunately. SSLv3 will not
be accepted any more, in accordance with
<a href="http://tools.ietf.org/html/draft-saintandre-xmpp-tls-02">current recommendations</a>.</p>

<p>Furthermore, with this release it is no longer possible for third-party apps on
your phone to access yaxim&rsquo;s contact list or chat history. This issue was
reported by Tarek Saier and is
<a href="https://github.com/pfleidi/yaxim/commit/a27cd49785f71a1703cb3faf5fc9abb4a8eabb03">incorporated</a>
in 0.8.8.</p>

<p>Improvements have been made to the
<a href="https://github.com/pfleidi/yaxim/commit/a5955ba40be02bec8dd0c853f75918276805f2be">packet queue handling with XEP-0198</a>,
helping with very laggy connections.</p>

<h2>User Interface Changes</h2>

<p>The status dialog
<a href="https://github.com/pfleidi/yaxim/commit/eeddca2c1de37ab0002e4b810d81f91a41e40bc4">has</a>
<a href="https://github.com/pfleidi/yaxim/commit/960906951530c3d4d4746941cb44f91294e5fbc9">been</a>
<a href="https://github.com/pfleidi/yaxim/commit/5fc72731eef85e25e3f0717b7ad37e304c455158">revamped</a>
by Joerg Mensmann. Now it features colorful icons in the
status drop down menu as well as
<a href="https://github.com/pfleidi/yaxim/commit/011f6c66de294d154738fb41b82046e638f1ca12">auto-completion</a>
for your old status messages:</p>

<p><img src="http://yaxim.org/images/yaxim-status.png" alt="new status dialog" /></p>

<p>A <a href="https://github.com/pfleidi/yaxim/commit/2be323d81aa7254d5df0a0f25a7802378b22a7c5">new setting</a>
allows to disable contact group display, moving all your contacts
into one large group.</p>

<p>Furthermore, the &ldquo;OK&rdquo; button to send chat messages has been finally aligned to
the bottom of the window, so it no longer moves up if you type a long chat
message, and there is a new &ldquo;huge&rdquo; setting for the chat window font.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[yaxim 0.8.7b - Maintenance Release]]></title>
    <link href="http://yaxim.org/blog/2014/04/11/yaxim-0-dot-8-7b-maintenance-release/"/>
    <updated>2014-04-11T11:42:00+02:00</updated>
    <id>http://yaxim.org/blog/2014/04/11/yaxim-0-dot-8-7b-maintenance-release</id>
    <content type="html"><![CDATA[<p>A new release of yaxim, 0.8.7b, has been made public today
(<a href="https://raw.github.com/pfleidi/yaxim/master/ChangeLog">ChangeLog</a>,
<a href="https://github.com/pfleidi/yaxim/commits/0.8.7b">commit history</a>).</p>

<p>The <a href="http://yaxim.org/blog/2014/01/30/yaxim-0-dot-8-7-stream-management-and-more/">0.8.7 release</a>
was timed for the XMPP Summit, and contained some little issues, which have
been fixed since then. Many thanks go to the sedulous testers who contributed
detailed problem reports.</p>

<!--more-->


<h2>Server Connection</h2>

<p>A long-standing bug, where yaxim vehemently refused to reconnect to the server
under certain conditions has been finally
<a href="https://github.com/igniterealtime/Smack/commit/1cf468158138433152892dfa4a8f8a9819505069">found and solved</a>:
when yaxim was configured for a server with
<a href="http://en.wikipedia.org/wiki/SRV_record">SRV records</a> (like yax.im) <em>and</em> the
yaxim app was restarted by the OS when no network connection was available (<em>or</em>
the SRV lookup failed for other reasons), yaxim always tried to connect to the
service name, port 5222, until the app was stopped and re-started.</p>

<p>Some more (re)connection related issues in the XEP-0198 component have been
found and fixed, including one where all contacts appeared as offline.</p>

<p>A new timeout mechanism for ongoing connection and disconnection attempts has
been added, requiring a connection to be created successfully within 30 seconds.</p>

<p>When an invalid JID was configured by the user, or a custom port was set without
a custom server name, yaxim crashed (<a href="https://github.com/pfleidi/yaxim/issues/97">#97</a>). Now, the preference dialog
is opened instead.</p>

<h2>User Interface Changes</h2>

<p>The preference and account preference dialogs have been fixed to properly
display the action bar, including the &ldquo;home&rdquo; navigation button.</p>

<p>Furthermore, the distracting &ldquo;yaxim: <a href="&#x6d;&#97;&#x69;&#108;&#x74;&#111;&#x3a;&#x65;&#x78;&#x61;&#109;&#x70;&#108;&#x65;&#64;&#x79;&#x61;&#120;&#46;&#x69;&#109;">&#101;&#x78;&#x61;&#x6d;&#112;&#x6c;&#x65;&#64;&#121;&#x61;&#x78;&#46;&#105;&#x6d;</a>&rdquo; popup in the status bar,
that appeared on every connection change, has been removed. This also improves
the user experience for smartwatch users (<a href="https://github.com/pfleidi/yaxim/issues/123">#123</a>).</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[yaxim Welcomes its New Overlords]]></title>
    <link href="http://yaxim.org/blog/2014/04/01/yaxim-welcomes-its-new-overlords/"/>
    <updated>2014-04-01T00:00:00+02:00</updated>
    <id>http://yaxim.org/blog/2014/04/01/yaxim-welcomes-its-new-overlords</id>
    <content type="html"><![CDATA[<p><strong>Update: the following text was posted on April Fools&#8217; day, 2014. yaxim (as
well as yax.im) remain a little private project of its administrators, and
there are no plans to get acquired, especially not by the military-industrial
complex. Nevertheless, we encourage everyone with the respective capability to
run their own servers for themselves and their friends!</strong></p>

<p>In the last months, several big takeovers happened in the Instant Messaging
world. Facebook bought
<a href="http://blog.instagram.com/post/20785013897/instagram-facebook">Instagram</a> and
<a href="http://techcrunch.com/2014/02/19/facebook-buying-whatsapp-for-16b-in-cash-and-stock-plus-3b-in-rsus/">WhatsApp</a>
(but failed to get
<a href="http://blogs.wsj.com/digits/2013/11/13/snapchat-spurned-3-billion-acquisition-offer-from-facebook/">Snapchat</a>),
Rakuten <a href="http://www.bloomberg.com/news/2014-02-17/rakuten-falls-on-900-million-deal-to-acquire-viber-message-app.html">got Viber</a>, and
<a href="http://www.tango.me/">Tango</a> was
<a href="http://www.forbes.com/sites/parmyolson/2014/03/20/exclusive-alibaba-sinks-250-million-into-messaging-app-tango-valuing-it-at-more-than-1-billion/">bought by China&rsquo;s Alibaba</a>.
We at yaxim used the exciting growth that followed the start of the yax.im service to unite with <a href="http://en.wikipedia.org/wiki/Booz_Allen_Hamilton">Booz Allen Hamilton</a>, a strong partner that greatly values our assets.</p>

<!--more-->


<h2>Monetizing yaxim&rsquo;s Values</h2>

<p>With each news line of billions of US dollars changing hands for proprietary
chat services, the yaxim team got more and more interested in monetizing a
solution that is based on Free and Open Source technologies. However, without
proprietary technology, secret scalability sauce, and other magic ingredients,
the only valuable asset we had at our hands was your user data.</p>

<p>Fortunately for us, the number of users grew by a <strong>factor of 20</strong> since the
yax.im service was
<a href="http://yaxim.org/blog/2013/11/17/yax-im-public-xmpp-hosting/">publicly announced</a>. You, our
loyal users, contributed to this success – and we consider it our honor and
civil duty to transfer ownership of your data into the hands of a new, strong,
partner.</p>

<p><img src="http://yaxim.org/images/yaxim-users-2014.png" alt="yax.im users" /></p>

<h2>About Booz Allen Hamilton</h2>

<p>Booz Allen Hamilton
(<a href="http://www.nyse.com/about/listed/quickquote.html?ticker=bah">BAH</a>) is a
publicly traded North-American corporation with a strong background in security
services, which perfectly matches yaxim&rsquo;s goals (security, transparency). On
the other hand, yaxim&rsquo;s international placement is a good match to
<a href="http://www.bizjournals.com/washington/print-edition/2012/06/08/booz-allen-hamilton-expands-overseas.html?page=all">BAH&rsquo;s announced plans to expand overseas</a>
and to bring peace and freedom to the Middle-East.
Last, but not least, BAH are known for employing awesome people like Edward Snowden.</p>

<h2>What Changes for You?</h2>

<p>We have undertaken significant effort to make the transfer of ownership
completely transparent for you, our dear users. The strongest benefit you are
going to experience will be the existence of decentralized backup copies of all
relevant data in <a href="http://en.wikipedia.org/wiki/Fort_George_G._Meade">Fort Meade</a>
as well as in <a href="http://en.wikipedia.org/wiki/Utah_Data_Center">Utah</a>.</p>

<p>On the other hand, however, there will be a decline in yaxim development and
slower reactions to service downtimes with yax.im, mainly due to the bad
Internet connectivity on the new Caribbean island owned and inhabited by the
yax.im administrators.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[yaxim 0.8.7 - Stream Management and More]]></title>
    <link href="http://yaxim.org/blog/2014/01/30/yaxim-0-dot-8-7-stream-management-and-more/"/>
    <updated>2014-01-30T17:17:00+01:00</updated>
    <id>http://yaxim.org/blog/2014/01/30/yaxim-0-dot-8-7-stream-management-and-more</id>
    <content type="html"><![CDATA[<p>A new version of yaxim, 0.8.7, has been released today
(<a href="https://raw.github.com/pfleidi/yaxim/master/ChangeLog">ChangeLog</a>,
<a href="https://github.com/pfleidi/yaxim/commits/0.8.7">commit history</a>) right in time
for the <a href="http://wiki.xmpp.org/web/Summit_15">XMPP Summit</a>. <a href="http://yaxim.org/download/"><strong>Download 0.8.7 now!</strong></a></p>

<p>This release comes with some long-awaited features, like Stream Management,
proper roster handling, improved error display and better
internationalization.</p>

<!--more-->


<h2>Stream Management</h2>

<p>Support for <a href="http://xmpp.org/extensions/xep-0198.html">XEP-0198: Stream Management</a> was
<a href="http://op-co.de/blog/posts/XEP-0198/">planned since 2009</a> and deferred many
times due to technical challenges and a lack of time. Finally, it is there,
and working well against <a href="https://prosody.im/doc/release/0.9.2">prosody 0.9</a>
servers with <code>mod_smacks</code> enabled.  Whenever your Android switches between
WiFi and 3G, yaxim is interrupted for some seconds, but restores the session
immediately &ndash; no messages are lost!</p>

<p>In the future, the code will be merged back into the SMACK library to allow
other Android clients to benefit from seamless session resumption.</p>

<h2>Roster Management</h2>

<p>Prior to 0.8.7, yaxim&rsquo;s default policy for incoming buddy request was to
silently accept them. Yes, you read right. The authors are very ashamed of
this fact, and it was due time to change the state of affairs.</p>

<p>With the current release, incoming requests are displayed in the roster, and a
dialog pops up when you tap them:</p>

<p><img src="http://yaxim.org/images/yaxim-roster-question.png" alt="roster query" /></p>

<h2>Carbon Notifications</h2>

<p>The <a href="http://xmpp.org/extensions/xep-0280.html">XEP-0280: Message Carbons</a> support introduced in
<a href="http://yaxim.org/blog/2013/02/11/yaxim-0-dot-8-6-released/">0.8.6</a> made your phone noisy when
you were chatting from another client, as it beeped on every incoming message
copy. To stop this annoyance, the notification behavior has been changed
<a href="https://github.com/pfleidi/yaxim/issues/107">as follows</a>:</p>

<ul>
<li>messages you send from your other client are silently added to yaxim&rsquo;s log</li>
<li>when yaxim receives the first message copy, it makes a sound</li>
<li>further message copies are silently added to the log, until you open the chat window</li>
<li>messages directly sent to yaxim always cause a sound</li>
</ul>


<p>At the same time, the <a href="http://xmpp.org/extensions/xep-0184.html">XEP-0184: Delivery Status</a> of copied messages is
now also correctly tracked in the chat log.</p>

<h2>Error Messages</h2>

<p>If an error stanza is received for an outgoing message, earlier versions of
yaxim silently ignored it.  The authors were made aware of the problem by
<a href="http://fnanp.in-ulm.de/blog/2014/01/16/01-woes.html">@das_aug</a>, and
<a href="https://github.com/pfleidi/yaxim/issues/108">#108</a> was promptly
<a href="https://github.com/pfleidi/yaxim/commit/1593c4d18dab8fbcbe9e58a4bea2eba74205fb82">fixed</a>:</p>

<p><img src="http://yaxim.org/images/error-stanza.png" alt="error stanza display" /></p>

<p>The exact error message is only displayed in a notification – there is no place
for it in the context of the chat message, yet. This will be changed in one of
the next releases.</p>

<h2>Internationalization</h2>

<p>As of 0.8.7, yaxim supports <a href="http://en.wikipedia.org/wiki/IDNA">Internationalized Domain
Names</a> for server addresses. In earlier
releases, you had to manually enter the
<a href="http://en.wikipedia.org/wiki/Punycode">punycode</a> into the custom server
field. In the latest release, IDNA names are supported in the JID field as
well as for custom server names.</p>

<p>Right-to-Left languages are also supported as of now for roster entries,
messages and the interface. However at the time of writing, the only available
RTL translation is Hebrew, thanks to Darlan from Gajim:</p>

<p><img src="http://yaxim.org/images/yaxim-RTL.png" alt="hebrew yaxim" /></p>

<p>Please <a href="http://translations.launchpad.net/yaxim/master/">contribute some more</a>!</p>

<h2>What&rsquo;s Next</h2>

<p>From the 0.8.6 release wishlist, only XEP-0198 has been implemented. MUC
support will be worked on next, we promise!</p>

<p>Other TODOs:</p>

<ul>
<li>a Tablet UI with the contacts list on the side of a chat view</li>
<li>end-to-end encryption, either with OTR or with GnuPG.</li>
<li>more user-friendlyness! \o/</li>
</ul>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[yax.im - public XMPP service]]></title>
    <link href="http://yaxim.org/blog/2013/11/17/yax-im-public-xmpp-hosting/"/>
    <updated>2013-11-17T15:55:00+01:00</updated>
    <id>http://yaxim.org/blog/2013/11/17/yax-im-public-xmpp-hosting</id>
    <content type="html"><![CDATA[<p><img class="left" src="http://yaxim.org/yax.im/yaks280.png" title="Yak Family (C) Eefi, CreativeCommons BY-NC-SA" ></p>

<p>With great pleasure we want to announce a new public service brought to you by
<a href="http://yaxim.org/">yaxim.org</a> - the <strong>yax.im</strong> (read: Yaks&#8217; IM) public
XMPP server.</p>

<p>To register with it, open your XMPP client (e.g. yaxim), choose a JID of your
liking that ends with <strong>@yax.im</strong>, like <strong>test@yax.im</strong> and activate &ldquo;Register
new account&rdquo;.</p>

<!--more-->


<h2>Server Details</h2>

<p>The service is running the recent <a href="http://blog.prosody.im/prosody-0-9-1-released/">Prosody 0.9</a>
XMPP server written in Lua. Many thanks go to the dedicated Prosody developers.</p>

<p><strong>yax.im</strong> is reachable via IPv4 and IPv6 (if your client does not support SRV
resolution, use <strong>xmpp.yaxim.org</strong> as the server name, port <strong>5222</strong>) and is hosted in
Berlin, Germany. It features several extensions important for mobile clients:</p>

<ul>
<li><a href="http://xmpp.org/extensions/xep-0198.html">XEP-0198: Stream Management</a> for mobile client connections</li>
<li><a href="http://xmpp.org/extensions/xep-0199.html">XEP-0199: XMPP Ping</a> set to ping you every 5 minutes, with a 2 minutes timeout</li>
<li><a href="http://xmpp.org/extensions/xep-0280.html">XEP-0280: Message Carbons</a> for keeping multiple parallel client connections in sync</li>
</ul>


<p>Certain JIDs are barred from registration (you need to specify at least two
letters, and <strong>test</strong> and <strong>admin</strong>, among some others, are disallowed).</p>

<h2>Transports and Services</h2>

<p>So far, <strong>yax.im</strong> offers a built-in <a href="http://xmpp.org/extensions/xep-0045.html">XEP-0045: MUC</a> component at
<strong>chat.yax.im</strong> with the yax.im service and yaxim app support chat room
<strong>yaxim@chat.yax.im</strong>.  Feel free to bother us with any issues you might have
with either the app or the server.</p>

<p>The server is not offering any transports. This might change if a transport
implementation for XMPP or any proprietary service appears that has a credible
security audit.</p>

<p>In the meantime, you are free to use whatever external transport you are used
to.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[yaxim going Professional!]]></title>
    <link href="http://yaxim.org/blog/2013/04/01/yaxim-going-professional/"/>
    <updated>2013-04-01T00:00:00+02:00</updated>
    <id>http://yaxim.org/blog/2013/04/01/yaxim-going-professional</id>
    <content type="html"><![CDATA[<p><strong>Up-Update: the following text was posted on April Fools&#8217; day, 2013. There is
no commercial version of yaxim, and the only money making plans we have is to
add donation support, sometime in the far future.</strong></p>

<p>After almost four year of development, we are proud to announce that yaxim,
our Open Source XMPP client, is sufficiently mature to fulfill even the
needs of large corporate customers. And like with any project that grows from
your garage to become a viable product, the day comes when its commercial
future needs to be set.</p>

<p>Starting Tuesday, yaxim will adapt its pricing to the competitive levels set
by the Mobile Network Operators with their new
<a href="http://en.wikipedia.org/wiki/Rich_Communication_Services">Rich Communication Services</a>
(also known as joyn™). However, there is no need to worry. For most of our
loyal customers, the free <em>Basic</em> plan will be more than sufficient. For other
customers, we offer the <em>Standard</em>, <em>Advanced</em> and <em>Professional</em> plans at
reasonable monthly rates.</p>

<!--more-->


<p>With the beginning of the next business week, the following pricing model will
be rolled out (all prices are in US Dollar, international offers will be
scaled appropriately). All users will automatically be enrolled in the <em>Basic</em>
plan, and have the option to purchase additional messages and roster capacity
or switch to one of the paid plans via <em>in app purchase</em>.</p>

<h2>Basic plan (free)</h2>

<p>The Basic plan includes all that is needed for most users, and it is <em>free</em>!</p>

<table>
<tr><th></th><th>Included<sup>1)</sup></th><th>Additional</th></tr>
<tr><th>Roster Groups</th><td>3</td><td>1.00$ / group</td></tr>
<tr><th>Roster Entries</th><td>15</td><td>1.00$ / 10 entries</td></tr>
<tr><th>Message Sending</th><td> 50 / month </td><td>0.19$ / message</td></tr>
<tr><th>Message Receiving</th><td colspan=2>unlimited<sup>2)</sup></td></tr>
<tr><th>Files / Images</th><td>5 / month</td><td>0.39$ / file or image</td></tr>
<tr><th>Encrypted Messages</th><td colspan=2>not supported</td></tr>
</table>


<p><sup>1)</sup> Unused units expire at the end of the calendar month.<br>
<sup>2)</sup> Receiving messages is not limited, but no notifications will be
displayed after you received 50 incoming messages.</p>

<h2>Standard plan (5.99 $ / month)</h2>

<p>The Standard plan includes the typical amount of messages for more
sophisticated users, at a reasonable rate.</p>

<table>
<tr><th></th><th>Included<sup>1)</sup></th><th>Additional</th></tr>
<tr><th>Roster Groups</th><td>10</td><td>1.00$ / group</td></tr>
<tr><th>Roster Entries</th><td>100</td><td>1.00$ / 10 entries</td></tr>
<tr><th>Message Sending</th><td>500 / month</td><td>0.09$ / message</td></tr>
<tr><th>Message Receiving</th><td colspan=2>unlimited<sup>2)</sup></td></tr>
<tr><th>Files / Images</th><td>50 / month</td><td>0.19$ / file or image</td></tr>
<tr><th>Encrypted Messages</th><td>50 / month</td><td>0.19$ / message</td></tr>
</table>


<p><sup>1)</sup> Unused units expire at the end of the calendar month.<br>
<sup>2)</sup> Receiving messages is not limited, but no notifications will be
displayed after you received 500 incoming messages.</p>

<h2>Advanced plan (14.99 $ / month)</h2>

<p>The Advanced plan is meant for users who value their communication privacy.</p>

<table>
<tr><th></th><th>Included<sup>1)</sup></th><th>Additional</th></tr>
<tr><th>Roster Groups</th><td>20</td><td>0.50$ / group</td></tr>
<tr><th>Roster Entries</th><td>300</td><td>1.00$ / 50 entries</td></tr>
<tr><th>Message Sending</th><td>1000 / month</td><td>0.05$ / message</td></tr>
<tr><th>Message Receiving</th><td colspan=2>unlimited</td></tr>
<tr><th>Files / Images</th><td>200 / month</td><td>0.09$ / file or image</td></tr>
<tr><th>Encrypted Messages</th><td colspan=2>share the limit with standard
text messages</td></tr>
</table>


<p><sup>1)</sup> Unused units expire at the end of the calendar month.</p>

<h2>Professional plan (39.99 $ / month)</h2>

<p>The Professional plan provides unlimited communication freedom.</p>

<table>
<tr><th></th><th>Included</th></tr>
<tr><th>Roster Groups</th><td>unlimited</td></tr>
<tr><th>Roster Entries</th><td>unlimited</td></tr>
<tr><th>Message Sending</th><td>unlimited</td></tr>
<tr><th>Message Receiving</th><td>unlimited</td></tr>
<tr><th>Files / Images</th><td>unlimited</td></tr>
<tr><th>Encrypted Messages</th><td>unlimited</td></tr>
</table>



]]></content>
  </entry>
  
</feed>
