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

	<title>Planet Jabber</title>
	<!--<link rel="self" type="text/atom" href=""/>-->
	<link rel="alternate" type="text/html" href="http://planet.jabber.org/"/>
	<id></id>
	<updated>2013-05-25T22:09:36+00:00</updated>
	<generator uri="http://www.planetplanet.org/">http://intertwingly.net/code/venus/</generator>

	<entry>
		<title>Mike Taylor: Google Hangout chat and the missing XMPP</title>
		<link rel="alternate" type="text/html" href="http://code-bear.com/bearlog/2013/05/24/google-hangout-chat-and-the-missing-xmpp/"/>
		<id>http://code-bear.com/bearlog/2013/05/24/google-hangout-chat-and-the-missing-xmpp/</id>
		<updated>2013-05-25T00:27:17+00:00</updated>
		<content type="html">&lt;p&gt;My friend &lt;a href=&quot;https://plus.google.com/u/0/116113014152499702246&quot;&gt;Jason Salas&lt;/a&gt; (who is an amazing and smart man – you should follow him in all of his endevours) asked me to comment on a post on &lt;a href=&quot;https://plus.google.com/u/0/+AndroidAuthority/posts/eJAN664PeZE&quot;&gt;Google+ from the Android Authority&lt;/a&gt; about &lt;a href=&quot;http://xmpp.org/about-xmpp/&quot;&gt;XMPP&lt;/a&gt; being dropped by Hangout(s). I wanted to repost what I said here for anyone who reads my posts but is not on G+.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://plus.google.com/u/0/116113014152499702246/posts/C7RhkXsF7dY&quot;&gt;From Google+&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;it’s a good summary about the issue with &lt;a href=&quot;http://xmpp.org/about-xmpp/&quot;&gt;XMPP&lt;/a&gt; – I may quibble with some of his thoughts about how Google “helped” XMPP but not enough to reject the post completely.&lt;/p&gt;
&lt;p&gt;We in the &lt;a href=&quot;http://xmpp.org/about-xmpp/&quot;&gt;XMPP&lt;/a&gt; community have seen this before and we will continue to support everyone who wants to use a stable, robust and &lt;b&gt;open&lt;/b&gt; protocol. In some ways it may be an odd blessing as Google did not support some of the more secure features of federation and now that the largest (public) client base is out of the picture we will be able to revisit some items that were previously put on hold.&lt;/p&gt;
&lt;p&gt;I’m also sensing that Google itself may not be completely aware of what just happened, this may be a case of the marketing/product folks driving the release of a product(s) that were not yet set in order to meet the I/O deadline – which is in-of-itself another worrying point.&lt;/p&gt;
&lt;p&gt;But yea, there have been a number of great non-&lt;a href=&quot;http://xmpp.org/&quot;&gt;XSF&lt;/a&gt; folks posting concerns and questions. The &lt;a href=&quot;http://xmpp.org/&quot;&gt;XSF&lt;/a&gt; is ready to help when Google realizes the full impact of what has happened ;)﻿&lt;/p&gt;</content>
		<author>
			<name>bear</name>
			<uri>http://code-bear.com/bearlog</uri>
		</author>
	</entry>

	<entry>
		<title>Peter Saint-Andre: Seventeen Years in the Making</title>
		<link rel="alternate" type="text/html" href="http://stpeter.im/journal/1487.html"/>
		<id>tag:stpeter.im,1487</id>
		<updated>2013-05-24T00:00:00+00:00</updated>
		<content type="html">Today I took the final steps toward publishing The Tao of Roark as an ebook and print-on-demand title, seventeen years to the day after I first posted a germ of the idea (although I didn't start composing it in earnest until 2008). Much as I like my Letters on Happiness, The Tao of Roark is the best thing I've written to date and it holds great personal meaning for me -- not least because it was the last rung on the ladder of my intellectual encounter with Ayn Rand.&lt;p&gt;...&lt;/p&gt;</content>
		<author>
			<name>Peter Saint-Andre</name>
			<uri>http://stpeter.im/journal/</uri>
		</author>
	</entry>

	<entry>
		<title>Peter Saint-Andre: RFC 6963</title>
		<link rel="alternate" type="text/html" href="http://stpeter.im/journal/1486.html"/>
		<id>tag:stpeter.im,1486</id>
		<updated>2013-05-24T00:00:00+00:00</updated>
		<content type="html">RFC 6963, released today, is the latest document I've had published in the RFC series. This RFC provides a way for specification authors to generate documentation examples using Uniform Resource Names (URNs), similar to domain names like &quot;example.com&quot; (see RFC 2606). So if you've been dying to put &quot;urn:example:foo&quot; in your documentation or you need to generate random URNs for testing purposes, have at it!&lt;p&gt;...&lt;/p&gt;</content>
		<author>
			<name>Peter Saint-Andre</name>
			<uri>http://stpeter.im/journal/</uri>
		</author>
	</entry>

	<entry>
		<title>Mike Taylor: XMPP features now missing from GTalk (aka Hangout Chat)</title>
		<link rel="alternate" type="text/html" href="http://code-bear.com/bearlog/2013/05/19/xmpp-features-now-missing-from-gtalk-aka-hangout-chat/"/>
		<id>http://code-bear.com/bearlog/2013/05/19/xmpp-features-now-missing-from-gtalk-aka-hangout-chat/</id>
		<updated>2013-05-20T00:43:20+00:00</updated>
		<content type="html">&lt;p&gt;I posted a snarky Twitter message about not wanting to spam the people following me with the features I’m now missing from GTalk, but I now really want to track them so…&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Features that are now missing&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Outside IM clients can no longer send messages to Google+ (aka GTalk, aka GMail) users&lt;/li&gt;
&lt;li&gt;Outside IM clients can no longer receive messages from Google+&lt;/li&gt;
&lt;li&gt;Presence updates to/from outside networks not allowed&lt;/li&gt;
&lt;li&gt;Invisible status is missing&lt;/li&gt;
&lt;li&gt;Unable to block other Google+ users from seeing my status&lt;/li&gt;
&lt;li&gt;Contacts are now in whatever order some silly person at Google thinks is accurate/friendly/useful instead of the at-least-it’s consistent alphabetical order&lt;/li&gt;
&lt;li&gt;The only way to remove someone from the active Contacts list is to … wait for it… &lt;b&gt;block them&lt;/b&gt;!&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;ok, so it’s not the 15 that I said on Twitter but it’s still damn annoying&lt;/p&gt;
&lt;p&gt;&lt;b&gt;EDIT&lt;/b&gt;:&lt;br /&gt;
ok, so I may have been a bit harsh and in a really cranky mood when writing the above – here is a post from the G+ conversation where some of the community members correct me ;)&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
  Buried in a conversation over on this post &lt;a href=&quot;https://plus.google.com/u/0/107968525907303243288/posts/HFe3W7A9Dor&quot; class=&quot;ot-anchor&quot; rel=&quot;nofollow&quot;&gt;https://plus.google.com/u/0/107968525907303243288/posts/HFe3W7A9Dor&lt;/a&gt; is some comments from &lt;span class=&quot;proflinkWrapper&quot;&gt;&lt;span class=&quot;proflinkPrefix&quot;&gt;+&lt;/span&gt;&lt;a href=&quot;https://plus.google.com/107968525907303243288&quot; class=&quot;proflink&quot;&gt;Ben Eidelson&lt;/a&gt;&lt;/span&gt; about how XMPP support is still in the plans for Hangouts, just either not implemented or buggy.&lt;/p&gt;
&lt;p&gt;  So it could be that I’m just reacting poorly to some really bad coding and/or product management – don’t get me wrong, i’m still irked.&lt;/p&gt;
&lt;p&gt;  I just may be restructuring and changing my reaction over the next couple of updates.&lt;/p&gt;
&lt;p&gt;  Thanks to +Fernando Miguel for pointing that out.﻿
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;and here is the conversation:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
  &lt;a href=&quot;https://plus.google.com/u/0/107968525907303243288&quot; class=&quot;Sg Ob qm&quot; rel=&quot;nofollow&quot;&gt;Ben Eidelson&lt;/a&gt; &lt;span class=&quot;Uy Du&quot;&gt;&lt;span class=&quot;Bf&quot; title=&quot;May 15, 2013, 8:35:06 PM&quot;&gt;May 15, 2013&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;+&lt;a href=&quot;https://plus.google.com/113498798332314665976&quot; class=&quot;proflink&quot;&gt;Daniel Rose&lt;/a&gt; currently those settings affect who causes invites to you, not who shows up for you to send messages to. Once you start using Hangouts for a few days the list should re-order based on who you are contacting most often.&lt;/p&gt;
&lt;p&gt;  +&lt;a href=&quot;https://plus.google.com/102699684098900408933&quot; class=&quot;proflink&quot;&gt;Thomas Heinen&lt;/a&gt; Thanks for your report of the issue. Hangouts supports basic interop with XMPP, so you can-for the time being-continue to use 3rd party clients. It does not work the same way as Talk, and so I believe the issue you’re having with the XMPP bridge will not resolve in Hangouts.﻿&lt;/p&gt;
&lt;/blockquote&gt;</content>
		<author>
			<name>bear</name>
			<uri>http://code-bear.com/bearlog</uri>
		</author>
	</entry>

	<entry>
		<title>Mike Taylor: I welcome Google as the new Borg</title>
		<link rel="alternate" type="text/html" href="http://code-bear.com/bearlog/2013/05/19/i-welcome-google-as-the-new-borg/"/>
		<id>http://code-bear.com/bearlog/2013/05/19/i-welcome-google-as-the-new-borg/</id>
		<updated>2013-05-19T22:12:05+00:00</updated>
		<content type="html">&lt;p&gt;yea, that’s a subtle title alright :/&lt;/p&gt;
&lt;p&gt;I posted this earlier on Google+ and decided to cross-post it here as I realized that it was more hipster ironic than I wanted to be (to post about Google changing things on the same G+ stream they are changing things to focus on.)&lt;/p&gt;
&lt;p&gt;So here is a cut-n-paste of what I said over &lt;a href=&quot;https://plus.google.com/u/0/103825681530404900115/posts/EF2XUnjYArj&quot;&gt;there&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I just found out the hard way that GTalk on Android has been silently replaced by Hangouts &lt;b&gt;and&lt;/b&gt; the do-no-evil geniuses have removed everything dealing with XMPP from it … &lt;b&gt;everything&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The “hard way” is from the fact that I did not get a server alert on my phone because Hangouts no longer supports outside messages from XMPP sources (also known as Federation.)&lt;/p&gt;
&lt;p&gt;This has me all worked up in a lot of ways:&lt;/p&gt;
&lt;p&gt;Personally – a lot of my friends are XMPP users so now I no longer have a single client for my messaging needs and this means that GTalk will not be my primary tool, heck I may not load it at all now.&lt;/p&gt;
&lt;p&gt;Professionally – I’m a member of the XMPP Software Foundation and we have been very proud about XMPP being the core of a lot of commercial communication products (Google, Facebook, Microsoft, Cisco and many others) and even tho each commercial entity does odd things (heck, breaks them also) the one thing that stood out was Federation.&lt;/p&gt;
&lt;p&gt;Now Google is removing a core part of their messaging and replacing it with something that is not an Open standard and hell, to be blunt, is a horrible implementation of a messaging system. The Hangouts support forum is full of people wondering, like me, what happened to many features they depended on and also asking WTF&lt;/p&gt;
&lt;p&gt;So even tho I know Google engineers may not ever see this, I just have to ask: when will you be changing your motto from “do no evil” to “meh, we just do what we want because we are now the new borg”&lt;/p&gt;
&lt;p&gt;yea, I’m pissed, pissed enough that I won’t be buying Android as my next phone and I’m going to be putting my full effort behind the infrastructure behind Firefox OS&lt;/p&gt;</content>
		<author>
			<name>bear</name>
			<uri>http://code-bear.com/bearlog</uri>
		</author>
	</entry>

	<entry>
		<title>Remko Tronçon: My Favorite Vim Plugins</title>
		<link rel="alternate" type="text/html" href="http://el-tramo.be/blog/vim-plugins/"/>
		<id>tag:el-tramo.be,2013-05-18:/blog/vim-plugins/</id>
		<updated>2013-05-17T22:00:00+00:00</updated>
		<content type="html">&lt;p&gt;After &lt;a href=&quot;http://el-tramo.be/blog/sublime-text-experiment/&quot;&gt;a brief affair with another editor&lt;/a&gt;, I’m now back
to using
my beloved &lt;a href=&quot;http://www.vim.org&quot;&gt;Vim&lt;/a&gt; again. What’s more, I decided to invest the time I should have put in years ago when I started using
it, and learned to do things more efficiently. Besides reading
&lt;a href=&quot;http://pragprog.com/book/dnvim/practical-vim&quot;&gt;Practical Vim&lt;/a&gt; and watching some
&lt;a href=&quot;http://vimcasts.org&quot;&gt;VimCasts&lt;/a&gt;, I went through my list of plugins I collected over the years, removed the
ones I wasn’t using, learned about a couple of new ones I didn’t know, and re-learned some of the ones
I forgot about. Here’s the list of my favorite plugins I ended up with.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2332&quot;&gt;&lt;code&gt;pathogen&lt;/code&gt;&lt;/a&gt;:
  Easy management of Vim plugins. I put all my Vim settings in a Git
  repository, and this plugin allows me to add plugins as a Git submodule
  somewhere in my settings tree. For an extensive tutorial, have a look at the
  &lt;a href=&quot;http://vimcasts.org/episodes/synchronizing-plugins-with-git-submodules-and-pathogen/&quot;&gt;&lt;code&gt;pathogen&lt;/code&gt;
  VimCast&lt;/a&gt;.
  Several other plugins with similar functionality have emerged since I started
  using &lt;code&gt;pathogen&lt;/code&gt;, but I haven’t tried them since this one does the trick for
  me.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=4391&quot;&gt;&lt;code&gt;sensible&lt;/code&gt;&lt;/a&gt;:
  Have sensible, safe defaults for a modern day Vim setup. Allows me
  to trim down my vimrc a bit.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=3736&quot;&gt;&lt;code&gt;ctrlp&lt;/code&gt;&lt;/a&gt;: Open files anywhere below your
  current directory very quickly, using
  fuzzy search. This is similar to Sublime’s “Go to anything” (which even uses the same
  shortcut). I almost exclusively open files using &lt;code&gt;ctrlp&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1590&quot;&gt;&lt;code&gt;unimpaired&lt;/code&gt;&lt;/a&gt;: Easy to remember extra
  &lt;code&gt;]&lt;/code&gt; and &lt;code&gt;[&lt;/code&gt; shortcuts for a handful of useful tasks:
  cycling through files, buffers, arguments, SCM conflict markers, spelling errors; exchange
  lines, switch options, insert empty lines, … Also comes with shortcuts to
  toggle options, such as &lt;code&gt;col&lt;/code&gt; (toggle invisible characters), &lt;code&gt;con&lt;/code&gt;
  (toggle number column), &lt;code&gt;cos&lt;/code&gt; (toggle spell correction), …&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1171&quot;&gt;&lt;code&gt;detectindent&lt;/code&gt;&lt;/a&gt;: Automatically detects whether tabs are expanded or not. Handy
  for working on multiple codebases with different tab preferences.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=31&quot;&gt;&lt;code&gt;a&lt;/code&gt;&lt;/a&gt;: Switch between corresponding &lt;code&gt;.h&lt;/code&gt; and &lt;code&gt;.(c|cpp|mm)&lt;/code&gt; headers easily&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2572&quot;&gt;&lt;code&gt;ack&lt;/code&gt;&lt;/a&gt;: Lightning fast greps across a project. I actually use &lt;code&gt;ag&lt;/code&gt; as backend.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=3302&quot;&gt;&lt;code&gt;clang_complete&lt;/code&gt;&lt;/a&gt;: C/C++ code completion that works. Requires &lt;code&gt;clang&lt;/code&gt; to be on your system (which it is by default on MacOS X)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2386&quot;&gt;&lt;code&gt;endwise&lt;/code&gt;&lt;/a&gt;: Automatically adds &lt;code&gt;end&lt;/code&gt; when
  you write a &lt;code&gt;begin&lt;/code&gt;, but does it conservatively so it never inserts anything unwanted.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2975&quot;&gt;&lt;code&gt;fugitive&lt;/code&gt;&lt;/a&gt;. An extremely powerful Git integration for
  Vim. Apart from providing an interface for doing all kinds of (interactive) Git tasks from within Vim, also
  provides a status line entry for showing your current branch etc.
  There are
  &lt;a href=&quot;http://vimcasts.org/episodes/fugitive-vim---a-complement-to-command-line-git/&quot;&gt;a&lt;/a&gt;
  &lt;a href=&quot;http://vimcasts.org/episodes/fugitive-vim-working-with-the-git-index/&quot;&gt;couple&lt;/a&gt;
  &lt;a href=&quot;http://vimcasts.org/episodes/fugitive-vim-resolving-merge-conflicts-with-vimdiff/&quot;&gt;of&lt;/a&gt;
  &lt;a href=&quot;http://vimcasts.org/episodes/fugitive-vim-browsing-the-git-object-database/&quot;&gt;VimCast&lt;/a&gt;
  &lt;a href=&quot;http://vimcasts.org/episodes/fugitive-vim-exploring-the-history-of-a-git-repository/&quot;&gt;episodes&lt;/a&gt;
  about how to use this plugin.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1545&quot;&gt;&lt;code&gt;abolish&lt;/code&gt;&lt;/a&gt;: A set of search/replace/conversion commands
  that support plurals, case (MixedCase, camelCase, snake_case, …), … Can be used to rename variables
  easily, change case of avariable, … There are also
  &lt;a href=&quot;http://vimcasts.org/episodes/smart-search-with-subvert/&quot;&gt;some&lt;/a&gt;
  &lt;a href=&quot;http://vimcasts.org/episodes/supercharged-substitution-with-subvert/&quot;&gt;VimCasts&lt;/a&gt;
  &lt;a href=&quot;http://vimcasts.org/episodes/enhanced-abbreviations-with-abolish/&quot;&gt;about&lt;/a&gt; this plugin.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=3304&quot;&gt;&lt;code&gt;gundo&lt;/code&gt;&lt;/a&gt;: Graphical overview of Vim’s undo tree.
  If you undid a couple of changes,
  did some other stuff, and decided that your initial version was actually better,
  you can easily revert back. This has saved me and my undecisive mind a couple
  of times already. Also has a &lt;a href=&quot;http://vimcasts.org/episodes/undo-branching-and-gundo-vim/&quot;&gt;VimCast&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=39&quot;&gt;&lt;code&gt;matchit&lt;/code&gt;&lt;/a&gt;: Match more than just braces with &lt;code&gt;%&lt;/code&gt;. Cycles through if/else, matches
  HTML/XML tags, …&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1697&quot;&gt;&lt;code&gt;surround&lt;/code&gt;&lt;/a&gt;: change/delete/add surrounding quotes, parentheses, tags, …&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2736&quot;&gt;&lt;code&gt;syntastic&lt;/code&gt;&lt;/a&gt;: Checks the syntax of your current file on save, and displays
  errors using markers in the sidebar. Saves you a round trip to your terminal
  when trying to compile/run the file.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=273&quot;&gt;&lt;code&gt;taglist&lt;/code&gt;&lt;/a&gt;: A navigation window with an overview of all functions/variables in
  your current file. Uses &lt;code&gt;ctags&lt;/code&gt; behind the screens, but doesn’t require you
  to run &lt;code&gt;ctags&lt;/code&gt; yourself on the codebase. It can also put an entry with the
  current function in your status bar (which is useful when editing files
  with large functions).&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1173&quot;&gt;&lt;code&gt;tcomment&lt;/code&gt;&lt;/a&gt;: Quickly comment out lines and code blocks. I used &lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1218&quot;&gt;&lt;code&gt;NERDCommenter&lt;/code&gt;&lt;/a&gt; for a
  while, but &lt;code&gt;tcomment&lt;/code&gt; came with more natural Vim shortcuts (and is also supported
  by &lt;a href=&quot;http://vrapper.sourceforge.net&quot;&gt;Vrapper&lt;/a&gt;). I also tried
  &lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=3695&quot;&gt;&lt;code&gt;commentary&lt;/code&gt;&lt;/a&gt; (mostly because it’s by Tim Pope, and
  because it supports &lt;code&gt;repeat&lt;/code&gt;), which uses the same shortcuts, but this one doesn’t
  comment indented code blocks the way I want it to (i.e. put the indentation after
  the comment string instead of in front).&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=3526&quot;&gt;&lt;code&gt;easymotion&lt;/code&gt;&lt;/a&gt;:
  Makes it easy to jump to any word in your buffer, by assigning
  a single letter to each word, highlighting it, and drilling down with each keystroke.
  Although this plugin is probably
  as fast and intuitive as it gets, in a GUI mode, it may be a tad faster to
  simply reach for the mouse and click in the document. However, when editing
  remote files without mouse support, this plugin is great!&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2540&quot;&gt;&lt;code&gt;snipmate&lt;/code&gt;&lt;/a&gt;: An engine for
  inserting snippets of code. There’s also a
  &lt;a href=&quot;https://github.com/honza/vim-snippets&quot;&gt;standard repository of standard snippets&lt;/a&gt;, but I
  mostly only use my own snippets for larger snippets
  (e.g. create a new class, insert copyright headers, …).
  Downsides: it no longer works with &lt;code&gt;clang_complete&lt;/code&gt; (although it used to), and
  it seems hard to override already existing snippets (which is why I don’t
  use the default repository).&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=521&quot;&gt;&lt;code&gt;mru&lt;/code&gt;&lt;/a&gt;: Easily access recently opened
  files through the MRU list.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=4504&quot;&gt;&lt;code&gt;dispatch&lt;/code&gt;&lt;/a&gt;:
  Asynchronous version of &lt;code&gt;:make&lt;/code&gt;, so you can still edit your code while your project is
  building. The downside is that it requires &lt;em&gt;iTerm&lt;/em&gt; on MacOS X or fires off a separate command
  shell on Linux and Windows, so it’s still not as nice as a native window running a build in
  its own thread, but it gets the job done.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1658&quot;&gt;&lt;code&gt;NERDtree&lt;/code&gt;&lt;/a&gt;: A better file system explorer than the default one. I don’t really use it
  that often (since I use &lt;code&gt;ctrlp&lt;/code&gt; to open files), but it’s handy for when you need
  to look around your project tree.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2136&quot;&gt;&lt;code&gt;repeat&lt;/code&gt;&lt;/a&gt;: ‘&lt;code&gt;.&lt;/code&gt;’ support for some of the plugins I use.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2120&quot;&gt;&lt;code&gt;speeddating&lt;/code&gt;&lt;/a&gt;: Increment dates using
  &lt;code&gt;Ctrl-A&lt;/code&gt;/&lt;code&gt;Ctrl-X&lt;/code&gt;. Not that I often do this,
  but since it just adds extra support to &lt;code&gt;Ctrl-A&lt;/code&gt;/&lt;code&gt;Ctrl-X&lt;/code&gt;, I just load it.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2340&quot;&gt;&lt;code&gt;molokai&lt;/code&gt;&lt;/a&gt;: A beautiful dark gray
  color scheme,
  based on the Monokai scheme from TextMate, and popular in other modern editors as well.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://vrapper.sourceforge.net/&quot;&gt;Vrapper&lt;/a&gt;: Not really a Vim plugin, but worth the mention: this Eclipse plugin
  provides a wide variety of Vim bindings to use inside Eclipse, so you can stay efficient when working on
  Java/Eclipse projects.&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>Remko Tronçon</name>
			<uri>http://el-tramo.be/</uri>
		</author>
	</entry>

	<entry>
		<title>Remko Tronçon: My Favorite Vim Plugins</title>
		<link rel="alternate" type="text/html" href="http://el-tramo.be/blog/my-favorite-vim-plugins/"/>
		<id>tag:el-tramo.be,2013-05-18:/blog/my-favorite-vim-plugins/</id>
		<updated>2013-05-17T22:00:00+00:00</updated>
		<content type="html">&lt;p&gt;After &lt;a href=&quot;http://el-tramo.be/blog/sublime-text-experiment/&quot;&gt;a brief affair with another editor&lt;/a&gt;, I’m now back
to using
my beloved &lt;a href=&quot;http://www.vim.org&quot;&gt;Vim&lt;/a&gt; again. What’s more, I decided to invest the time I should have put in years ago when I started using
it, and learned to do things more efficiently. Besides reading
&lt;a href=&quot;http://pragprog.com/book/dnvim/practical-vim&quot;&gt;Practical Vim&lt;/a&gt; and watching some
&lt;a href=&quot;http://vimcasts.org&quot;&gt;VimCasts&lt;/a&gt;, I went through my list of plugins I collected over the years, removed the
ones I wasn’t using, learned about a couple of new ones I didn’t know, and re-learned some of the ones
I forgot about. Here’s the list of my favorite plugins I ended up with.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2332&quot;&gt;&lt;code&gt;pathogen&lt;/code&gt;&lt;/a&gt;:
  Easy management of Vim plugins. I put all my Vim settings in a Git
  repository, and this plugin allows me to add plugins as a Git submodule
  somewhere in my settings tree. For an extensive tutorial, have a look at the
  &lt;a href=&quot;http://vimcasts.org/episodes/synchronizing-plugins-with-git-submodules-and-pathogen/&quot;&gt;&lt;code&gt;pathogen&lt;/code&gt;
  VimCast&lt;/a&gt;.
  Several other plugin managers (such as
  &lt;a href=&quot;https://github.com/MarcWeber/vim-addon-manager&quot;&gt;&lt;code&gt;VAM&lt;/code&gt;&lt;/a&gt; and
  &lt;a href=&quot;https://github.com/gmarik/vundle&quot;&gt;&lt;code&gt;Vundle&lt;/code&gt;&lt;/a&gt;) have emerged since I started
  using &lt;code&gt;pathogen&lt;/code&gt;, but I haven’t tried them since this one does the trick for
  me.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=4391&quot;&gt;&lt;code&gt;sensible&lt;/code&gt;&lt;/a&gt;:
  Have sensible, safe defaults for a modern day Vim setup. Allows me
  to trim down my vimrc a bit.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=3736&quot;&gt;&lt;code&gt;ctrlp&lt;/code&gt;&lt;/a&gt;: Open files anywhere below your
  current directory very quickly, using
  fuzzy search. This is similar to Sublime’s “Go to anything” (which even uses the same
  shortcut). I almost exclusively open files using &lt;code&gt;ctrlp&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1590&quot;&gt;&lt;code&gt;unimpaired&lt;/code&gt;&lt;/a&gt;: Easy to remember extra
  &lt;code&gt;]&lt;/code&gt; and &lt;code&gt;[&lt;/code&gt; shortcuts for a handful of useful tasks:
  cycling through files, buffers, arguments, SCM conflict markers, spelling errors; exchange
  lines, switch options, insert empty lines, … Also comes with shortcuts to
  toggle options, such as &lt;code&gt;col&lt;/code&gt; (toggle invisible characters), &lt;code&gt;con&lt;/code&gt;
  (toggle number column), &lt;code&gt;cos&lt;/code&gt; (toggle spell correction), …&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1171&quot;&gt;&lt;code&gt;detectindent&lt;/code&gt;&lt;/a&gt;: Automatically detects whether tabs are expanded or not. Handy
  for working on multiple codebases with different tab preferences.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=31&quot;&gt;&lt;code&gt;a&lt;/code&gt;&lt;/a&gt;: Switch between corresponding &lt;code&gt;.h&lt;/code&gt; and &lt;code&gt;.(c|cpp|mm)&lt;/code&gt; headers easily&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2572&quot;&gt;&lt;code&gt;ack&lt;/code&gt;&lt;/a&gt;: Lightning fast greps across a project. I actually use &lt;code&gt;ag&lt;/code&gt; as backend.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=3302&quot;&gt;&lt;code&gt;clang_complete&lt;/code&gt;&lt;/a&gt;: C/C++ code completion that works. Requires &lt;code&gt;clang&lt;/code&gt; to be on your system (which it is by default on MacOS X)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2386&quot;&gt;&lt;code&gt;endwise&lt;/code&gt;&lt;/a&gt;: Automatically adds &lt;code&gt;end&lt;/code&gt; when
  you write a &lt;code&gt;begin&lt;/code&gt;, but does it conservatively so it never inserts anything unwanted.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2975&quot;&gt;&lt;code&gt;fugitive&lt;/code&gt;&lt;/a&gt;. An extremely powerful Git integration for
  Vim. Apart from providing an interface for doing all kinds of (interactive) Git tasks from within Vim, also
  provides a status line entry for showing your current branch etc.
  There are
  &lt;a href=&quot;http://vimcasts.org/episodes/fugitive-vim---a-complement-to-command-line-git/&quot;&gt;a&lt;/a&gt;
  &lt;a href=&quot;http://vimcasts.org/episodes/fugitive-vim-working-with-the-git-index/&quot;&gt;couple&lt;/a&gt;
  &lt;a href=&quot;http://vimcasts.org/episodes/fugitive-vim-resolving-merge-conflicts-with-vimdiff/&quot;&gt;of&lt;/a&gt;
  &lt;a href=&quot;http://vimcasts.org/episodes/fugitive-vim-browsing-the-git-object-database/&quot;&gt;VimCast&lt;/a&gt;
  &lt;a href=&quot;http://vimcasts.org/episodes/fugitive-vim-exploring-the-history-of-a-git-repository/&quot;&gt;episodes&lt;/a&gt;
  about how to use this plugin.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1545&quot;&gt;&lt;code&gt;abolish&lt;/code&gt;&lt;/a&gt;: A set of search/replace/conversion commands
  that support plurals, case (MixedCase, camelCase, snake_case, …), … Can be used to rename variables
  easily, change case of avariable, … There are also
  &lt;a href=&quot;http://vimcasts.org/episodes/smart-search-with-subvert/&quot;&gt;some&lt;/a&gt;
  &lt;a href=&quot;http://vimcasts.org/episodes/supercharged-substitution-with-subvert/&quot;&gt;VimCasts&lt;/a&gt;
  &lt;a href=&quot;http://vimcasts.org/episodes/enhanced-abbreviations-with-abolish/&quot;&gt;about&lt;/a&gt; this plugin.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=3304&quot;&gt;&lt;code&gt;gundo&lt;/code&gt;&lt;/a&gt;: Graphical overview of Vim’s undo tree.
  If you undid a couple of changes,
  did some other stuff, and decided that your initial version was actually better,
  you can easily revert back. This has saved me and my undecisive mind a couple
  of times already. Also has a &lt;a href=&quot;http://vimcasts.org/episodes/undo-branching-and-gundo-vim/&quot;&gt;VimCast&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=39&quot;&gt;&lt;code&gt;matchit&lt;/code&gt;&lt;/a&gt;: Match more than just braces with &lt;code&gt;%&lt;/code&gt;. Cycles through if/else, matches
  HTML/XML tags, …&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1697&quot;&gt;&lt;code&gt;surround&lt;/code&gt;&lt;/a&gt;: change/delete/add surrounding quotes, parentheses, tags, …&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2736&quot;&gt;&lt;code&gt;syntastic&lt;/code&gt;&lt;/a&gt;: Checks the syntax of your current file on save, and displays
  errors using markers in the sidebar. Saves you a round trip to your terminal
  when trying to compile/run the file.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=273&quot;&gt;&lt;code&gt;taglist&lt;/code&gt;&lt;/a&gt;: A navigation window with an overview of all functions/variables in
  your current file. Uses &lt;code&gt;ctags&lt;/code&gt; behind the screens, but doesn’t require you
  to run &lt;code&gt;ctags&lt;/code&gt; yourself on the codebase. It can also put an entry with the
  current function in your status bar (which is useful when editing files
  with large functions).&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1173&quot;&gt;&lt;code&gt;tcomment&lt;/code&gt;&lt;/a&gt;: Quickly comment out lines and code blocks. I used &lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1218&quot;&gt;&lt;code&gt;NERDCommenter&lt;/code&gt;&lt;/a&gt; for a
  while, but &lt;code&gt;tcomment&lt;/code&gt; came with more natural Vim shortcuts (and is also supported
  by &lt;a href=&quot;http://vrapper.sourceforge.net&quot;&gt;Vrapper&lt;/a&gt;). I also tried
  &lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=3695&quot;&gt;&lt;code&gt;commentary&lt;/code&gt;&lt;/a&gt; (mostly because it’s by Tim Pope, and
  because it supports &lt;code&gt;repeat&lt;/code&gt;), which uses the same shortcuts, but this one doesn’t
  comment indented code blocks the way I want it to (i.e. put the indentation after
  the comment string instead of in front).&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=3526&quot;&gt;&lt;code&gt;easymotion&lt;/code&gt;&lt;/a&gt;:
  Makes it easy to jump to any word in your buffer, by assigning
  a single letter to each word, highlighting it, and drilling down with each keystroke.
  Although this plugin is probably
  as fast and intuitive as it gets, in a GUI mode, it may be a tad faster to
  simply reach for the mouse and click in the document. However, when editing
  remote files without mouse support, this plugin is great!&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2540&quot;&gt;&lt;code&gt;snipmate&lt;/code&gt;&lt;/a&gt;: An engine for
  inserting snippets of code. There’s also a
  &lt;a href=&quot;https://github.com/honza/vim-snippets&quot;&gt;standard repository of standard snippets&lt;/a&gt;, but I
  mostly only use my own snippets for larger snippets
  (e.g. create a new class, insert copyright headers, …).
  Downsides: it no longer works with &lt;code&gt;clang_complete&lt;/code&gt; (although it used to), and
  it seems hard to override already existing snippets (which is why I don’t
  use the default repository).&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=521&quot;&gt;&lt;code&gt;mru&lt;/code&gt;&lt;/a&gt;: Easily access recently opened
  files through the MRU list.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=4504&quot;&gt;&lt;code&gt;dispatch&lt;/code&gt;&lt;/a&gt;:
  Asynchronous version of &lt;code&gt;:make&lt;/code&gt;, so you can still edit your code while your project is
  building. The downside is that it requires &lt;em&gt;iTerm&lt;/em&gt; on MacOS X or fires off a separate command
  shell on Linux and Windows, so it’s still not as nice as a native window running a build in
  its own thread, but it gets the job done.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1658&quot;&gt;&lt;code&gt;NERDtree&lt;/code&gt;&lt;/a&gt;: A better file system explorer than the default one. I don’t really use it
  that often (since I use &lt;code&gt;ctrlp&lt;/code&gt; to open files), but it’s handy for when you need
  to look around your project tree.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2136&quot;&gt;&lt;code&gt;repeat&lt;/code&gt;&lt;/a&gt;: ‘&lt;code&gt;.&lt;/code&gt;’ support for some of the plugins I use.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2120&quot;&gt;&lt;code&gt;speeddating&lt;/code&gt;&lt;/a&gt;: Increment dates using
  &lt;code&gt;Ctrl-A&lt;/code&gt;/&lt;code&gt;Ctrl-X&lt;/code&gt;. Not that I often do this,
  but since it just adds extra support to &lt;code&gt;Ctrl-A&lt;/code&gt;/&lt;code&gt;Ctrl-X&lt;/code&gt;, I just load it.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2340&quot;&gt;&lt;code&gt;molokai&lt;/code&gt;&lt;/a&gt;: A beautiful dark gray
  color scheme,
  based on the Monokai scheme from TextMate, and popular in other modern editors as well.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://vrapper.sourceforge.net/&quot;&gt;Vrapper&lt;/a&gt;: Not really a Vim plugin, but worth the mention: this Eclipse plugin
  provides a wide variety of Vim bindings to use inside Eclipse, so you can stay efficient when working on
  Java/Eclipse projects.&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>Remko Tronçon</name>
			<uri>http://el-tramo.be/</uri>
		</author>
	</entry>

	<entry>
		<title>Remko Tronçon: My Favorite Vim Plugins</title>
		<link rel="alternate" type="text/html" href="http://el-tramo.be/blog/my-favorite-plugins/"/>
		<id>tag:el-tramo.be,2013-05-18:/blog/my-favorite-plugins/</id>
		<updated>2013-05-17T22:00:00+00:00</updated>
		<content type="html">&lt;p&gt;After &lt;a href=&quot;http://el-tramo.be/blog/sublime-text-experiment/&quot;&gt;a brief affair with another editor&lt;/a&gt;, I’m now back
to using
my beloved &lt;a href=&quot;http://www.vim.org&quot;&gt;Vim&lt;/a&gt; again. What’s more, I decided to invest the time I should have put in years ago when I started using
it, and learned to do things more efficiently. Besides reading
&lt;a href=&quot;http://pragprog.com/book/dnvim/practical-vim&quot;&gt;Practical Vim&lt;/a&gt; and watching some
&lt;a href=&quot;http://vimcasts.org&quot;&gt;VimCasts&lt;/a&gt;, I went through my list of plugins I collected over the years, removed the
ones I wasn’t using, learned about a couple of new ones I didn’t know, and re-learned some of the ones
I forgot about. Here’s the list of my favorite plugins I ended up with.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2332&quot;&gt;&lt;code&gt;pathogen&lt;/code&gt;&lt;/a&gt;:
  Easy management of Vim plugins. I put all my Vim settings in a Git
  repository, and this plugin allows me to add plugins as a Git submodule
  somewhere in my settings tree. For an extensive tutorial, have a look at the
  &lt;a href=&quot;http://vimcasts.org/episodes/synchronizing-plugins-with-git-submodules-and-pathogen/&quot;&gt;&lt;code&gt;pathogen&lt;/code&gt;
  VimCast&lt;/a&gt;.
  Several other plugins with similar functionality have emerged since I started
  using &lt;code&gt;pathogen&lt;/code&gt;, but I haven’t tried them since this one does the trick for
  me.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=4391&quot;&gt;&lt;code&gt;sensible&lt;/code&gt;&lt;/a&gt;:
  Have sensible, safe defaults for a modern day Vim setup. Allows me
  to trim down my vimrc a bit.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=3736&quot;&gt;&lt;code&gt;ctrlp&lt;/code&gt;&lt;/a&gt;: Open files anywhere below your
  current directory very quickly, using
  fuzzy search. This is similar to Sublime’s “Go to anything” (which even uses the same
  shortcut). I almost exclusively open files using &lt;code&gt;ctrlp&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1590&quot;&gt;&lt;code&gt;unimpaired&lt;/code&gt;&lt;/a&gt;: Easy to remember extra
  &lt;code&gt;]&lt;/code&gt; and &lt;code&gt;[&lt;/code&gt; shortcuts for a handful of useful tasks:
  cycling through files, buffers, arguments, SCM conflict markers, spelling errors; exchange
  lines, switch options, insert empty lines, … Also comes with shortcuts to
  toggle options, such as &lt;code&gt;col&lt;/code&gt; (toggle invisible characters), &lt;code&gt;con&lt;/code&gt;
  (toggle number column), &lt;code&gt;cos&lt;/code&gt; (toggle spell correction), …&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1171&quot;&gt;&lt;code&gt;detectindent&lt;/code&gt;&lt;/a&gt;: Automatically detects whether tabs are expanded or not. Handy
  for working on multiple codebases with different tab preferences.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=31&quot;&gt;&lt;code&gt;a&lt;/code&gt;&lt;/a&gt;: Switch between corresponding &lt;code&gt;.h&lt;/code&gt; and &lt;code&gt;.(c|cpp|mm)&lt;/code&gt; headers easily&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2572&quot;&gt;&lt;code&gt;ack&lt;/code&gt;&lt;/a&gt;: Lightning fast greps across a project. I actually use &lt;code&gt;ag&lt;/code&gt; as backend.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=3302&quot;&gt;&lt;code&gt;clang_complete&lt;/code&gt;&lt;/a&gt;: C/C++ code completion that works. Requires &lt;code&gt;clang&lt;/code&gt; to be on your system (which it is by default on MacOS X)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2386&quot;&gt;&lt;code&gt;endwise&lt;/code&gt;&lt;/a&gt;: Automatically adds &lt;code&gt;end&lt;/code&gt; when
  you write a &lt;code&gt;begin&lt;/code&gt;, but does it conservatively so it never inserts anything unwanted.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2975&quot;&gt;&lt;code&gt;fugitive&lt;/code&gt;&lt;/a&gt;. An extremely powerful Git integration for
  Vim. Apart from providing an interface for doing all kinds of (interactive) Git tasks from within Vim, also
  provides a status line entry for showing your current branch etc.
  There are
  &lt;a href=&quot;http://vimcasts.org/episodes/fugitive-vim---a-complement-to-command-line-git/&quot;&gt;a&lt;/a&gt;
  &lt;a href=&quot;http://vimcasts.org/episodes/fugitive-vim-working-with-the-git-index/&quot;&gt;couple&lt;/a&gt;
  &lt;a href=&quot;http://vimcasts.org/episodes/fugitive-vim-resolving-merge-conflicts-with-vimdiff/&quot;&gt;of&lt;/a&gt;
  &lt;a href=&quot;http://vimcasts.org/episodes/fugitive-vim-browsing-the-git-object-database/&quot;&gt;VimCast&lt;/a&gt;
  &lt;a href=&quot;http://vimcasts.org/episodes/fugitive-vim-exploring-the-history-of-a-git-repository/&quot;&gt;episodes&lt;/a&gt;
  about how to use this plugin.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1545&quot;&gt;&lt;code&gt;abolish&lt;/code&gt;&lt;/a&gt;: A set of search/replace/conversion commands
  that support plurals, case (MixedCase, camelCase, snake_case, …), … Can be used to rename variables
  easily, change case of avariable, … There are also
  &lt;a href=&quot;http://vimcasts.org/episodes/smart-search-with-subvert/&quot;&gt;some&lt;/a&gt;
  &lt;a href=&quot;http://vimcasts.org/episodes/supercharged-substitution-with-subvert/&quot;&gt;VimCasts&lt;/a&gt;
  &lt;a href=&quot;http://vimcasts.org/episodes/enhanced-abbreviations-with-abolish/&quot;&gt;about&lt;/a&gt; this plugin.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=3304&quot;&gt;&lt;code&gt;gundo&lt;/code&gt;&lt;/a&gt;: Graphical overview of Vim’s undo tree.
  If you undid a couple of changes,
  did some other stuff, and decided that your initial version was actually better,
  you can easily revert back. This has saved me and my undecisive mind a couple
  of times already. Also has a &lt;a href=&quot;http://vimcasts.org/episodes/undo-branching-and-gundo-vim/&quot;&gt;VimCast&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=39&quot;&gt;&lt;code&gt;matchit&lt;/code&gt;&lt;/a&gt;: Match more than just braces with &lt;code&gt;%&lt;/code&gt;. Cycles through if/else, matches
  HTML/XML tags, …&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1697&quot;&gt;&lt;code&gt;surround&lt;/code&gt;&lt;/a&gt;: change/delete/add surrounding quotes, parentheses, tags, …&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2736&quot;&gt;&lt;code&gt;syntastic&lt;/code&gt;&lt;/a&gt;: Checks the syntax of your current file on save, and displays
  errors using markers in the sidebar. Saves you a round trip to your terminal
  when trying to compile/run the file.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=273&quot;&gt;&lt;code&gt;taglist&lt;/code&gt;&lt;/a&gt;: A navigation window with an overview of all functions/variables in
  your current file. Uses &lt;code&gt;ctags&lt;/code&gt; behind the screens, but doesn’t require you
  to run &lt;code&gt;ctags&lt;/code&gt; yourself on the codebase. It can also put an entry with the
  current function in your status bar (which is useful when editing files
  with large functions).&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1173&quot;&gt;&lt;code&gt;tcomment&lt;/code&gt;&lt;/a&gt;: Quickly comment out lines and code blocks. I used &lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1218&quot;&gt;&lt;code&gt;NERDCommenter&lt;/code&gt;&lt;/a&gt; for a
  while, but &lt;code&gt;tcomment&lt;/code&gt; came with more natural Vim shortcuts (and is also supported
  by &lt;a href=&quot;http://vrapper.sourceforge.net&quot;&gt;Vrapper&lt;/a&gt;). I also tried
  &lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=3695&quot;&gt;&lt;code&gt;commentary&lt;/code&gt;&lt;/a&gt; (mostly because it’s by Tim Pope, and
  because it supports &lt;code&gt;repeat&lt;/code&gt;), which uses the same shortcuts, but this one doesn’t
  comment indented code blocks the way I want it to (i.e. put the indentation after
  the comment string instead of in front).&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=3526&quot;&gt;&lt;code&gt;easymotion&lt;/code&gt;&lt;/a&gt;:
  Makes it easy to jump to any word in your buffer, by assigning
  a single letter to each word, highlighting it, and drilling down with each keystroke.
  Although this plugin is probably
  as fast and intuitive as it gets, in a GUI mode, it may be a tad faster to
  simply reach for the mouse and click in the document. However, when editing
  remote files without mouse support, this plugin is great!&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2540&quot;&gt;&lt;code&gt;snipmate&lt;/code&gt;&lt;/a&gt;: An engine for
  inserting snippets of code. There’s also a
  &lt;a href=&quot;https://github.com/honza/vim-snippets&quot;&gt;standard repository of standard snippets&lt;/a&gt;, but I
  mostly only use my own snippets for larger snippets
  (e.g. create a new class, insert copyright headers, …).
  Downsides: it no longer works with &lt;code&gt;clang_complete&lt;/code&gt; (although it used to), and
  it seems hard to override already existing snippets (which is why I don’t
  use the default repository).&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=521&quot;&gt;&lt;code&gt;mru&lt;/code&gt;&lt;/a&gt;: Easily access recently opened
  files through the MRU list.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=4504&quot;&gt;&lt;code&gt;dispatch&lt;/code&gt;&lt;/a&gt;:
  Asynchronous version of &lt;code&gt;:make&lt;/code&gt;, so you can still edit your code while your project is
  building. The downside is that it requires &lt;em&gt;iTerm&lt;/em&gt; on MacOS X or fires off a separate command
  shell on Linux and Windows, so it’s still not as nice as a native window running a build in
  its own thread, but it gets the job done.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1658&quot;&gt;&lt;code&gt;NERDtree&lt;/code&gt;&lt;/a&gt;: A better file system explorer than the default one. I don’t really use it
  that often (since I use &lt;code&gt;ctrlp&lt;/code&gt; to open files), but it’s handy for when you need
  to look around your project tree.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2136&quot;&gt;&lt;code&gt;repeat&lt;/code&gt;&lt;/a&gt;: ‘&lt;code&gt;.&lt;/code&gt;’ support for some of the plugins I use.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2120&quot;&gt;&lt;code&gt;speeddating&lt;/code&gt;&lt;/a&gt;: Increment dates using
  &lt;code&gt;Ctrl-A&lt;/code&gt;/&lt;code&gt;Ctrl-X&lt;/code&gt;. Not that I often do this,
  but since it just adds extra support to &lt;code&gt;Ctrl-A&lt;/code&gt;/&lt;code&gt;Ctrl-X&lt;/code&gt;, I just load it.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2340&quot;&gt;&lt;code&gt;molokai&lt;/code&gt;&lt;/a&gt;: A beautiful dark gray
  color scheme,
  based on the Monokai scheme from TextMate, and popular in other modern editors as well.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://vrapper.sourceforge.net/&quot;&gt;Vrapper&lt;/a&gt;: Not really a Vim plugin, but worth the mention: this Eclipse plugin
  provides a wide variety of Vim bindings to use inside Eclipse, so you can stay efficient when working on
  Java/Eclipse projects.&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>Remko Tronçon</name>
			<uri>http://el-tramo.be/</uri>
		</author>
	</entry>

	<entry>
		<title>ProcessOne: Google Cloud Messaging Update Boosted by XMPP</title>
		<link rel="alternate" type="text/html" href="http://blog.process-one.net/google-cloud-messaging-update-boosted-by-xmpp/"/>
		<id>http://blog.process-one.net/?p=1159</id>
		<updated>2013-05-17T17:55:34+00:00</updated>
		<content type="html">&lt;p&gt;As you know, ProcessOne is about realtime messaging. Our core component is XMPP ejabberd scalable and ubiquitous server. We recently acquired Boxcar to use a familiar and popular brand for our large scale push notification service for mobile as well.&lt;/p&gt;
&lt;p&gt;From this perspective, Google’s huge update on its Cloud Messaging service is the &lt;strong&gt;biggest announcement&lt;/strong&gt; from this year Google I/O, as it mixes our two core strengths. We strongly believe this is a big deal for mobile developers and we will explain why.&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-1159&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;b&gt;What is Google Cloud Messaging (GCM) ?&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: center;&quot;&gt; &lt;a href=&quot;http://blog.process-one.net/wp-content/uploads/2013/05/google-io-keynote-cloud-1.jpg&quot;&gt;&lt;img src=&quot;http://blog.process-one.net/wp-content/uploads/2013/05/google-io-keynote-cloud-1-300x168.jpg&quot; alt=&quot;google-io-keynote-cloud-1&quot; width=&quot;300&quot; class=&quot;size-medium wp-image-1164 aligncenter&quot; height=&quot;168&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In case you never heard about it, here is a quick overview.&lt;/p&gt;
&lt;p&gt;Google Cloud Messaging have been announced last year as a replacement of Google Cloud to Device Messaging. This is a service that allows mobile developer to notify mobile devices (but also Chrome browser) about important changes on the server-side component of the application. It makes it possible for the device to stay up to date, without the need to use polling. Polling is about checking periodically for updates on your server and is bad for several reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;it consumes lot of battery, periodically waking up the mobile device network stack.&lt;/li&gt;
&lt;li&gt;it consumes a lot of useless resources on the server as most of this resource lead to a “no update” reply.&lt;/li&gt;
&lt;li&gt;it introduces latency as the request for new data can happen long after the data availability (unless you put a very low polling interval, which is even worse for the mobile battery). You can get your news alert hours after every one already knows about it, which defeat the purpose of the alert in the first place.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Push notifications avoid all those drawbacks, saving battery life, providing lower latency, reducing server load. As a permanently connected session to Google servers, it get the important notification messages as soon as they happen, in a battery efficient way.&lt;/p&gt;
&lt;p&gt;Being a service that runs at device level, it can be optimized across applications running on the same device and perform further battery saving benefits.&lt;/p&gt;
&lt;p&gt;So, this is a really critical feature to implement in application relying on data coming from the network (which actually covers a lot of applications).&lt;/p&gt;
&lt;p&gt;GCM offers nice outstanding features like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;line-height: 15px;&quot;&gt;Support two use cases:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;“send to sync”&lt;/strong&gt;: short notification to tell client to get update from developer server.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;“send data”&lt;/strong&gt;: larger notification containing the data payload, avoiding an extra client to developer server roundtrip.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Time to live&lt;/strong&gt; can be used to destroy message without notification if device was not online before its expiration. Pending messages can also be replaced with the &lt;strong&gt;collapse&lt;/strong&gt; feature.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Delay when idle&lt;/strong&gt; can be use for less urgent notifications. Device will get it when becoming active again.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multicast messages&lt;/strong&gt; to send the same notification to up to 1000 devices.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;b&gt;What does GCM update brings to developers ?&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;The new update is a brand new service deployment bringing a large set of new features for developers.&lt;/p&gt;
&lt;p&gt;In short, it brings:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Persistent connections&lt;/strong&gt; are supported between developer backend and Google, allowing sending a larger number of notifications faster.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Upstream messaging&lt;/strong&gt;: This allows the device to send back notifications to the developer server, through Google platform.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Notifications synchronization&lt;/strong&gt; between devices. Basically, this allows a developer to remove a notification from a device when it has been read / processed on another device.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;GCM Cloud Connection Service (CCS): Persistent connections using XMPP&lt;/h3&gt;
&lt;p&gt;Google choose to use XMPP to allow developers to keep a persistent connection. It works as follow:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You open an &lt;strong&gt;XMPP client&lt;/strong&gt; connection to Google XMPP GCM server (Port 5235 on gcm.googleapis.com).&lt;/li&gt;
&lt;li&gt;You can then keep the secure connection open for as long as you wish.&lt;/li&gt;
&lt;li&gt;You can then send your usual GCM JSON payload in XMPP message packets.&lt;/li&gt;
&lt;li&gt;This is streaming so you receive possible errors asynchronously and you can match it to original push thanks to XMPP message id.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This alone brings you a huge performance increase, allowing your server to send up to 4000 messages per second on the persistent connection. Knowing you are allowed up to 10 connections, you can possibly send many notifications fast (up to 40k notifications per second).&lt;/p&gt;
&lt;p&gt;A few things to note:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;line-height: 15px;&quot;&gt;You cannot use multicast messages with XMPP persistant connection (at least yet).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;However, you can mix HTTP connexions and XMPP persistant connections in your use case to optimize the performance depending on the use case.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Upstream messaging&lt;/h3&gt;
&lt;p&gt;Upstream messaging allows your client to send data asynchronously to your server. Compared to HTTP posts, it offer several advantages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It is &lt;strong&gt;easy&lt;/strong&gt; for client developer, with a simple &lt;em&gt;gcm.send&lt;/em&gt; command. This is “fire and forget”. Client developer sends the data. Android GCM framework save it locally, with the commitment to deliver it.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;line-height: 15px;&quot;&gt;It is &lt;strong&gt;reliable&lt;/strong&gt; with reliability handled transparently by GCM mobile framework on the client. There is acknowledgement mechanism on the client and between GCM and your server that ensure no message can be lost.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Timing to send is &lt;strong&gt;optimized&lt;/strong&gt; across mobile applications. This allow significant battery saving for messages that are not very time sensitive. Optimization is even performed based on the server side down stream needs. If client or server send messages first, the other direction queue is flushed at the same time.&lt;/li&gt;
&lt;li&gt;It supports &lt;strong&gt;time to live&lt;/strong&gt;. If the message could not be send, because network is unavailable and is not relevant anymore, it is discarded.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As a developer, your server will receive the message through an XMPP connection. However, be very careful about your server efficiency: you have to be robust and read data fast as the GCM server will queue for you 100 messages before starting to overwrite them (and if you are offline for 24 hours it will discard your messages).&lt;/p&gt;
&lt;h3&gt;Multi-devices notification synchronisation&lt;/h3&gt;
&lt;p&gt;The goal of this feature is to makes your notifications state becomes up to date and consistent across a user devices, by propagating state change between the user application installations on your various devices.&lt;/p&gt;
&lt;p&gt;This feature is designed to bring many added benefits in the way multiple devices are handled.&lt;/p&gt;
&lt;p&gt;First, to know that your app is used by the same users, you can group your device Registration Ids under the same &lt;em&gt;notification_key&lt;/em&gt;. Notification key is typically a hash of the username. You are allowed up to 10 devices linked to that notification_key.&lt;/p&gt;
&lt;p&gt;Once you have done that, you can use that notification_key as a user id to send notifications to all devices of a given user. By doing so, you let GCM performs lots of optimizations under the hood. Notification will be send in priority to the active device or the last active device. Other devices will get the notification a bit later in a delay while idle type of delivery.&lt;/p&gt;
&lt;p&gt;Once the notification has been processed and dismissed, other devices are notified and they can remove the notification as well. If they were not notified yet, notification is directly canceled from the notification queue.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;As you see, update to Google Cloud Messaging is really a big update for developers, increasing the number of situation this platform is relevant.&lt;/p&gt;
&lt;p&gt;We are already working on supporting those improvements on our push notification platform to help you all benefits of those improvements.&lt;/p&gt;
&lt;p&gt;Stay tuned for more information on this support very soon.&lt;/p&gt;
&lt;p&gt;Here is the video of Francesco Nerieri’s talk on GCM:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;</content>
		<author>
			<name>Mickaël Rémond</name>
			<uri>http://blog.process-one.net</uri>
		</author>
	</entry>

	<entry>
		<title>Prosodical Thoughts: Prosody 0.9.0beta1 available for testing</title>
		<link rel="alternate" type="text/html" href="http://blog.prosody.im/prosody-0-9-0beta1-available-for-testing/"/>
		<id>http://blog.prosody.im/prosody-0-9-0beta1-available-for-testing/</id>
		<updated>2013-05-16T17:08:13+00:00</updated>
		<content type="html">&lt;p&gt;It's the news you've all been waiting for! We present the first beta of our upcoming 0.9.0 release. For those
of you not already following our development and nightly builds, here are a few of the major changes in this
development branch (codenamed 'Prosody Everyone Edition') since 0.8:&lt;/p&gt;




&lt;p&gt;&lt;/p&gt;&lt;div style=&quot;clear: both;&quot;&gt;&lt;p&gt;&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;Full IPv6 support for all services (c2s, s2s, HTTP, etc.)&lt;/li&gt;
    &lt;li&gt;Server-to-server authentication using certificates (SASL EXTERNAL)&lt;/li&gt;
    &lt;li&gt;A new and improved HTTP subsystem, supporting virtual hosts and fully-reloadable modules&lt;/li&gt;
    &lt;li&gt;Basic pubsub service&lt;/li&gt;
    &lt;li&gt;Many other fixes and improvements, see our &lt;a href=&quot;http://prosody.im/doc/release/0.9.0&quot;&gt;release notes&lt;/a&gt; for more information.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; This release introduces some changes that require attention from people who upgrade from previous
releases. Please read the upgrading section of our &lt;a href=&quot;http://prosody.im/doc/release/0.9.0#upgrading&quot;&gt;release notes&lt;/a&gt; to
avoid any surprises.&lt;/p&gt;

&lt;p&gt;We expect there to be one or two more betas before rc1, and then the final release soon after that.&lt;/p&gt;

&lt;p&gt;As always, we appreciate all the help that we get testing Prosody. If you find any issues, please &lt;a href=&quot;http://prosody.im/bugs&quot;&gt;report them&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Download&lt;/h2&gt;

&lt;h3&gt;Debian/Ubuntu&lt;/h3&gt;

&lt;p&gt;If you are using our &lt;a href=&quot;http://prosody.im/doc/package_repository&quot;&gt;package repository&lt;/a&gt; then you can simply install
the &lt;em&gt;prosody-0.9&lt;/em&gt; package, which automatically tracks our 0.9 branch.&lt;/p&gt;

&lt;p&gt;Alternatively you can download packages manually from &lt;a href=&quot;http://packages.prosody.im/debian/pool/dev/p/prosody/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Windows&lt;/h3&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;http://prosody.im/tmp/0.9.0beta1/ProsodySetup-0.9.0beta1.exe&quot;&gt;Windows installer&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://prosody.im/tmp/0.9.0beta1/Prosody-0.9.0beta1.zip&quot;&gt;Windows zip&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Source&lt;/h3&gt;

&lt;p&gt;Finally, for you old-school folks...&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Source tarball&lt;/strong&gt;: &lt;a href=&quot;http://prosody.im/tmp/0.9.0beta1/prosody-0.9.0beta1.tar.gz&quot;&gt;prosody-0.9.0beta1.tar.gz&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
		<author>
			<name>The Prosody Team</name>
			<uri>http://blog.prosody.im/</uri>
		</author>
	</entry>

	<entry>
		<title>ProcessOne: Google I/O 2013: Services, services, services</title>
		<link rel="alternate" type="text/html" href="http://blog.process-one.net/google-io-2013-services-services-services/"/>
		<id>http://blog.process-one.net/?p=1155</id>
		<updated>2013-05-16T02:22:17+00:00</updated>
		<content type="html">&lt;p&gt;Today was the keynote of Google I/O developer conference. The keynote is usually the place where major announcements are made regarding the Google ecosystem.&lt;/p&gt;
&lt;p&gt;Despite impressive announcements, the most important thing that strikes me is not what has been released, but what has not been mentioned.&lt;/p&gt;
&lt;h2&gt;Services, services and more services&lt;/h2&gt;
&lt;p&gt;First, what are the main areas of focus this year ?&lt;/p&gt;
&lt;p&gt;Either on Android, on Chrome or on the Cloud and server engine architecture Google is showing its consistency in pushing further existing services, adding new ones, and integrating all the pieces together. Here is the impressive list of highlights to their service stack:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;line-height: 15px;&quot;&gt;Google &lt;strong&gt;Maps API V2&lt;/strong&gt; and &lt;strong&gt;location API&lt;/strong&gt; improvements, with:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;line-height: 15px;&quot;&gt;&lt;strong&gt;Fused location&lt;/strong&gt; = faster, more accurate and more battery friendly.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Geofencing&lt;/strong&gt;, ability to save up to one hundred location triggers per application.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Activity recognition&lt;/strong&gt; based on the phone accelerometer. Device can know if your are walking, cycling, walking, driving. This is a battery efficient, not relying on GPS.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Google+ Sign in&lt;/strong&gt;, brings deep integration between website and Android apps with Google+ service.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Google Cloud Messaging&lt;/strong&gt;, Google Push Notification service, with three major highlights:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Persistent connections&lt;/strong&gt; are supported between developer backend and Google, allowing sending a larger number of notifications faster.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Upstream messaging&lt;/strong&gt;: This allows the device to send back notifications to the developer server, through Google platform.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Notifications synchronization&lt;/strong&gt; between devices. Basically, this allows a developer to remove a notification from a device when it has been read / processed on another device.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;Google Cloud Messaging is one our main area of interest. We are already working on the new features and we will have announcements to make soon under our mobile &lt;strong&gt;Boxcar&lt;/strong&gt; brand. Stay tuned :)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Google Play &lt;strong&gt;Game Service&lt;/strong&gt;, with:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cloud Save&lt;/strong&gt; to synchronize your game progress across devices.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Achievements and Learderboard&lt;/strong&gt;, integrated with Google+.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multiplayer API&lt;/strong&gt; to help developer with networking part.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Matchmaking&lt;/strong&gt; to find players to play with.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cross-platform&lt;/strong&gt; experience on Android and iOS.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Google Wallet&lt;/strong&gt;: low profile (aka not really promoted in the keynote) improvements, like GMail payments, or easier checkout on mobile.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Better developer console&lt;/strong&gt; to analyse how Android apps are doing and optimize their performance, more specifically:
&lt;ul&gt;
&lt;li&gt;Optimization tips&lt;/li&gt;
&lt;li&gt;App Translation Service.&lt;/li&gt;
&lt;li&gt;Referal tracking&lt;/li&gt;
&lt;li&gt;Usage metrics (Google Analytics from the developer console).&lt;/li&gt;
&lt;li&gt;Revenue graph&lt;/li&gt;
&lt;li&gt;Beta testing and stage rollout management&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There have also been announcements focusing on Google services improvements or addition for main users (as opposed to developers):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Google Play Store improvements&lt;/strong&gt; to better promote apps to users.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Google Music&lt;/strong&gt; subscription service (US only for now).&lt;/li&gt;
&lt;li&gt;Huge &lt;strong&gt;Google Maps&lt;/strong&gt; rework and redesign.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Search improvements&lt;/strong&gt; with focus on:
&lt;ul&gt;
&lt;li&gt;more knowledge graph integration in search.&lt;/li&gt;
&lt;li&gt;more integration of personal information and Google+, circle based personnalisation in search results.&lt;/li&gt;
&lt;li&gt;Better conversation (aka iteratively refined voice search), with conversation-based queries coming to Chrome on the desktop.&lt;/li&gt;
&lt;li&gt;Google Now improvements with more cards, to anticipate your search needs on the go.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Google+ improvements&lt;/strong&gt;, mostly for end users:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Stream&lt;/strong&gt; redesign&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hangouts&lt;/strong&gt; chat system, which is a cross platform merge of all Google chats. It is cross-platform, focus on conversation, realtime, photo sharing and video group calling.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Photos&lt;/strong&gt; management, with impressive auto-enhancement and sorting features.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note from an XMPP developer perspective: Does the new Hangouts mean Gtalk and XMPP will disappear, along with interoperability ? There was not word about it, but I think so.&lt;/p&gt;
&lt;p&gt;Impressive, isn’t it ?&lt;/p&gt;
&lt;p&gt;Still, as a developer, that first day strangely leaves me with a feeling of unfullfilled expectations. Why ? I think to understand it, we need to list what Google did not talk about.&lt;/p&gt;
&lt;h2&gt;What Google did not talk about&lt;/h2&gt;
&lt;p&gt;In previous Google I/O, the center stage is usually taken by:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Android&lt;/strong&gt; updates: There was none announced today.&lt;/li&gt;
&lt;li&gt;Shiny new &lt;strong&gt;devices&lt;/strong&gt;, usually prerelease to developers. Nothing on this part as well.&lt;/li&gt;
&lt;li&gt;New &lt;strong&gt;unexpected projects&lt;/strong&gt;, like Chrome, Google Glasses, Google TV, or even the now dead Wave.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On this side, nothing has been announced. No mention of Android for home or TV. No successor for the now dead Nexus Q. No update on Android Accessory Developement Kit. No glasses push. No new wearable computer.&lt;/p&gt;
&lt;p&gt;Despite a few talks on Google glasses tomorrow, there have been little mention of the progress so far in the keynote.&lt;/p&gt;
&lt;p&gt;This year, Google is focusing on services for several (valid) reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Those services are &lt;strong&gt;updated&lt;/strong&gt; directly on the devices through Google Play Store. They can more easily push the updates to the end users.&lt;/li&gt;
&lt;li&gt;Services are perceived are &lt;strong&gt;Apple’s Achille heel&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Services are a way to put Google at the front stage and &lt;strong&gt;differenciate&lt;/strong&gt; the Google experience from the various Android forks. It also allow Google to differenciate from device manufacturers that are increasingly trying to get the front stage with their Android devices.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But as Google focus on Services, the story they tell is increasingly about themselves.&lt;/p&gt;
&lt;p&gt;For Android developer, on the most major highlight (outside of Google Services) was Android Studio, a development environment based on Jetbrains Intellij, release today in early preview (version 0.1!).&lt;/p&gt;
&lt;p&gt;Google have even been heavily promoting Chrome on Desktop, but now also on Android and iOS, focusing on bringing the same experience from all the environment. Along with the fact that both Chrome and Android and under the unique direction of Sundar Pichai, this leave a strange confusing impression.&lt;/p&gt;
&lt;p&gt;My conclusion is that for Google, devices do not matter. When Larry Page says that he wants the technology, the device to disappear, he actually means it in the proper sense. Google Glasses and conversational search are a steps in that direction. They are the most straightforward access to Google services. Ideally, they should not even be needed.&lt;/p&gt;
&lt;p&gt;It does not matter if you use Chrome, Glasses, Android or iOS to access Google Services. What matter are the services themselves and the contextual data that can be gathered to improve relevance and personnalisation of the service.&lt;/p&gt;
&lt;p&gt;Sundar Pichai said two days ago that Google I/O will not be centered on the devices. It is because devices are not an end but a mean for Google.&lt;/p&gt;
&lt;p&gt;I feel at this Google I/O, the goal of Google has never been more clear (if you look through the confusion I mentioned earlier).&lt;/p&gt;
&lt;p&gt;At this very moment, the path of Apple and Google may split there:&lt;/p&gt;
&lt;p&gt;Google wants to improve people lifes with services, making the technology totally hidden. Apple wants to improve people life by focusing on how people interact with the technology (touch, voice, and more). This goes through devices improvements (lighter, faster, easier to use), not making the devices disappear.&lt;/p&gt;
&lt;p&gt;Today, I feel that we are at a turning point, I am really looking forward WWDC to see what will be Apple move.&lt;/p&gt;</content>
		<author>
			<name>Mickaël Rémond</name>
			<uri>http://blog.process-one.net</uri>
		</author>
	</entry>

	<entry>
		<title>Isode: The M-Link IRC Gateway: new whitepapers</title>
		<link rel="alternate" type="text/html" href="http://isode.com/company/wordpress/irc-gateway/"/>
		<id>http://isode.com/company/wordpress/?p=2105</id>
		<updated>2013-05-14T15:18:04+00:00</updated>
		<content type="html">&lt;img src=&quot;http://isode.com/company/wordpress//wp-content/uploads/2011/11/whitepaper.png&quot; alt=&quot;&quot; title=&quot;Whitepapers&quot; width=&quot;24&quot; height=&quot;50&quot; /&gt;&lt;br /&gt;&lt;p&gt;Military deployments make extensive use of text chat services, mostly for multi-user chat (MUC). A vast majority of new deployments use the XMPP (eXtensible Messaging and Presence Protocol) standard but there are significant legacy text chat installations using IRC (Internet Relay Chat).&lt;/p&gt;
&lt;p&gt;Communication between IRC and XMPP networks is often problematic.  In the next major release of the Isode product set, R16, we’re introducing an IRC gateway into our M-Link XMPP Server product. We are doing this because we believe that existing gateways do not include functionality appropriate to our target markets.&lt;/p&gt;
&lt;p&gt;Existing gateways allow individual XMPP users to connect into IRC channels (where they adopt a username derived from their XMPP JID). In this model the XMPP user is downgrading to IRC capabilities. The Isode gateway associates an XMPP MUC room with an IRC channel, giving a number of benefits over existing approaches:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The 	involvement of IRC is totally transparent to the XMPP user. The user will see a normal MUC room which just happens to be connected to an IRC channel.&lt;/li&gt;
&lt;li&gt;Full 	MUC functionality is available locally, for example MUC access control and affiliation management.&lt;/li&gt;
&lt;li&gt;There is no downgrade of security for XMPP users with XMPP traffic. XMPP users are still authenticated and connections are protected with TLS.&lt;/li&gt;
&lt;li&gt;M-Link security label support is available, including translation to IRC users as FLOT (First Line of Text) labels in the IRC messages.&lt;/li&gt;
&lt;li&gt;The 	XMPP administrator has control of MUC room naming, which does not have to match IRC channel naming.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;width: 310px;&quot; class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_2111&quot;&gt;&lt;a href=&quot;http://isode.com/company/wordpress/wp-content/uploads/2013/05/xmpp-irc51.png&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://isode.com/company/wordpress/wp-content/uploads/2013/05/xmpp-irc51-300x294.png&quot; title=&quot;xmpp-irc&quot; height=&quot;294&quot; width=&quot;300&quot; alt=&quot;Chat from the perspective of IRC and XMPP&quot; class=&quot;size-medium wp-image-2111 &quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Chat from the perspective of IRC and XMPP&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;We’ve released two whitepapers today which talk about IRC, XMPP and the new capabilities in M-Link R16.&lt;/p&gt;
&lt;p&gt;In [&lt;a href=&quot;http://www.isode.com/whitepapers/interconnecting-xmpp-and-irc.html&quot; target=&quot;_blank&quot;&gt;Interconnecting XMPP and IRC&lt;/a&gt;] we describe the operation of both XMPP and IRC and then look at the different approaches to gateways between these two services, comparing the existing approach with Isode’s solution.&lt;/p&gt;
&lt;p&gt;In [&lt;a href=&quot;http://www.isode.com/whitepapers/irc-fmuc-and-xmpp-guards.html&quot; target=&quot;_blank&quot;&gt;Deploying IRC, Federated MUC and XMPP Guards&lt;/a&gt;]  we look at how IRC would operate with a Federated Multi-User Chat (FMUC) deployment. FMUC is a new standard, more information here. The paper also looks at how the solution would work in a cross-domain environment using XMPP Guards.&lt;/p&gt;
&lt;p&gt;R16 is currently in late beta and will be released in June 2013.&lt;/p&gt;</content>
		<author>
			<name>Will Sheward</name>
			<uri>http://isode.com/company/wordpress</uri>
		</author>
	</entry>

	<entry>
		<title>Rodrigo Duarte (GSoC 2012): Media Server user authentication - XEP-0070</title>
		<link rel="alternate" type="text/html" href="http://rodrigodsousa.blogspot.com/2012/07/media-server-user-authentication-xep.html"/>
		<id>tag:blogger.com,1999:blog-2875641587368436167.post-9173745859332246931</id>
		<updated>2013-05-07T14:41:11+00:00</updated>
		<content type="html">XEP-0070 is a known specification of how verify HTTP requests via XMPP. It has basically &lt;a href=&quot;http://xmpp.org/extensions/xep-0070.html#usecase&quot; target=&quot;_blank&quot;&gt;8 steps&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In the Media Server, when a HTTP request arrives, the HTTP side forwards the request to a AuthVerifier class, this class has control over an XMPP component, to send and receive packets in a synchronous way, via a SyncReplySend util class. Once the AuthVerifier class receives the request, it &quot;asks&quot; if the client has sent it, if yes, the request is authorized, if not, the HTTP side returns a 403 error.&lt;br /&gt;&lt;br /&gt;Here is the sequence diagram:&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;clear: both; text-align: center;&quot; class=&quot;separator&quot;&gt;&lt;a style=&quot;margin-left: 1em; margin-right: 1em;&quot; href=&quot;http://2.bp.blogspot.com/-F94I8XMKnos/UBCdiiMD9gI/AAAAAAAAAUM/1yN60MxMdO8/s1600/index.png&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/-F94I8XMKnos/UBCdiiMD9gI/AAAAAAAAAUM/1yN60MxMdO8/s1600/index.png&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;To send its credentials, the client has two options:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Via HTTP auth: &lt;span style=&quot;color: #444444;&quot;&gt;&lt;span style=&quot;font-family: Courier, monospace; font-size: x-small; line-height: 16px;&quot; class=&quot;typ&quot;&gt;Authorization&lt;/span&gt;&lt;span style=&quot;font-family: Courier, monospace; font-size: x-small; line-height: 16px;&quot; class=&quot;pun&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;font-family: Courier, monospace; font-size: x-small; line-height: 16px;&quot; class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Courier, monospace; font-size: x-small; line-height: 16px;&quot; class=&quot;typ&quot;&gt;Basic&lt;/span&gt;&lt;span style=&quot;font-family: Courier, monospace; font-size: x-small; line-height: 16px;&quot; class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Courier, monospace; font-size: x-small; line-height: 16px;&quot; class=&quot;typ&quot;&gt;QWxhZGRpbjpvcGVuIHNlc2FtZQ&lt;/span&gt;&lt;span style=&quot;font-family: Courier, monospace; font-size: x-small; line-height: 16px;&quot; class=&quot;pun&quot;&gt;==&lt;/span&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;Via URL: &lt;span style=&quot;background-color: white; color: #444444; font-family: Courier, monospace; font-size: x-small; line-height: 16px;&quot; class=&quot;typ&quot;&gt;/media/test@topics.buddycloud.org?auth=QWxhZGRpbjpvcGVuIHNlc2FtZQ&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #444444; font-family: Courier, monospace; font-size: x-small; line-height: 16px;&quot; class=&quot;pun&quot;&gt;==&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;In both ways, the client's JID and transaction id, are separated by a &lt;i&gt;;&lt;/i&gt; and are base 64 encoded.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This week, we hope to do the first deploy, to finally see the Media Server running in a production environment!&lt;/div&gt;</content>
		<author>
			<name>Rodrigo Duarte (noreply@blogger.com)</name>
			<uri>http://rodrigodsousa.blogspot.com/search/label/gsoc2012</uri>
		</author>
	</entry>

	<entry>
		<title>Ignite Realtime Blog: Smack 3.3 is released</title>
		<link rel="alternate" type="text/html" href="http://community.igniterealtime.org/blogs/ignite/2013/05/04/smack-33-is-released"/>
		<id>http://community.igniterealtime.org/blogs/ignite/2013/05/04/smack-33-is-released</id>
		<updated>2013-05-04T13:46:04+00:00</updated>
		<content type="html">&lt;div class=&quot;jive-rendered-content&quot;&gt;&lt;p&gt;The Ignite Realtime community is happy to announce the latest release of Smack (version 3.3).  It is now available for &lt;a href=&quot;http://www.igniterealtime.org/downloads/index.jsp#smack&quot; class=&quot;jive-link-external-small&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;download&lt;/a&gt;.  There have been a large number of issues addressed for this release, including new functionality with support for several more protocol extensions (XEP's) and many improvements on existing features.&lt;/p&gt;&lt;h4&gt;        New Features &lt;/h4&gt;&lt;ul&gt;&lt;li&gt;[&lt;a href=&quot;http://issues.igniterealtime.org/browse/SMACK-331&quot; class=&quot;jive-link-external-small&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;SMACK-331&lt;/a&gt;] -         Add support for XEP-0184: Message Delivery Receipts &lt;/li&gt;&lt;li&gt;[&lt;a href=&quot;http://issues.igniterealtime.org/browse/SMACK-345&quot; class=&quot;jive-link-external-small&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;SMACK-345&lt;/a&gt;] -         Inproved detection of last activity &lt;/li&gt;&lt;li&gt;[&lt;a href=&quot;http://issues.igniterealtime.org/browse/SMACK-361&quot; class=&quot;jive-link-external-small&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;SMACK-361&lt;/a&gt;] -         Add support for XEP-0115 Entity Capabilities &lt;/li&gt;&lt;li&gt;[&lt;a href=&quot;http://issues.igniterealtime.org/browse/SMACK-376&quot; class=&quot;jive-link-external-small&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;SMACK-376&lt;/a&gt;] -         Setting a custom trust manager to control certificates from outside &lt;/li&gt;&lt;li&gt;[&lt;a href=&quot;http://issues.igniterealtime.org/browse/SMACK-388&quot; class=&quot;jive-link-external-small&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;SMACK-388&lt;/a&gt;] -         XEP-199 XMPP Ping support &lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;height: 8pt; padding: 0px;&quot;&gt; &lt;/p&gt;&lt;p&gt;In addition to these, there have been many bugs fixed and a variety of other tasks done, the complete listing can be viewed &lt;a href=&quot;http://www.igniterealtime.org/builds/smack/docs/latest/changelog.html&quot; class=&quot;jive-link-external-small&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;here&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;</content>
		<author>
			<name>Ignite Realtime Blog (communityadmin@igniterealtime.org)</name>
			<uri>http://community.igniterealtime.org/blogs/ignite</uri>
		</author>
	</entry>

	<entry>
		<title>Fanout Blog: The case for a push CDN</title>
		<link rel="alternate" type="text/html" href="http://blog.fanout.io/2012/09/18/the-case-for-a-push-cdn/"/>
		<id>http://blog.fanout.io/?p=38</id>
		<updated>2013-05-03T19:47:54+00:00</updated>
		<content type="html">When I tell people about &lt;a href=&quot;http://fanout.io/&quot;&gt;Fanout.io&lt;/a&gt;, their reaction usually takes one of two forms:
&lt;ul&gt;
	&lt;li&gt;Sign me up!&lt;/li&gt;
	&lt;li&gt;Why would I use an external service for this? Push is easy. I can do it in 20 minutes with &amp;lt;&lt;em&gt;insert modern web framework&lt;/em&gt;&amp;gt;.&lt;/li&gt;
&lt;/ul&gt;
It is true that there are a bunch of software solutions that make pushing data in realtime easier, and if you're enthusiastic about maintaining your own servers then a cloud service may not be that interesting. It's important to recognize, though, that Fanout is about more than just making push easy. It's about making it &lt;em&gt;scalable&lt;/em&gt;.&lt;p&gt;...&lt;/p&gt;</content>
		<author>
			<name>justin</name>
			<uri>http://blog.fanout.io</uri>
		</author>
	</entry>

	<entry>
		<title>Tigase Blog: Tigase XMPP Server 5.2.0 - FTL - Beta1</title>
		<link rel="alternate" type="text/html" href="http://www.tigase.org/content/tigase-xmpp-server-520-ftl-beta1"/>
		<id>http://www.tigase.org/4044 at http://www.tigase.org</id>
		<updated>2013-05-01T20:42:44+00:00</updated>
		<content type="html">&lt;p&gt;Finally published! FTL because as soon as we made binaries available people started to download it before even I wrote an announcement. And FTL because, once again, we made so much performance improvements that we expect it to be faster than light. &lt;em&gt;From version 2.0 I mention about huge performance improvements. Each time I believe nothing more can be squeezed out of the code and then I find another place to improve.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This is probably our biggest and greatest release yet. With so many new elements, components and functions. Therefore, we are really happy to give this version out to your hands. As usually binary files are available on &lt;a href=&quot;https://projects.tigase.org/projects/tigase-server/files&quot; title=&quot;https://projects.tigase.org/projects/tigase-server/files&quot;&gt;the project tracking website&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Even though this is our first beta for the 5.2.0 it is already quite well tested and with next betas we expect a few more additions.&lt;/p&gt;
&lt;p&gt;Here is a list of major new additions:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://www.tigase.org/content/cl-conn-repo-class&quot; title=&quot;/content/cl-conn-repo-class&quot;&gt;Cluster auto-configuration&lt;/a&gt; with cluster mode active by default
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://projects.tigase.org/projects/tigase-http-api&quot; title=&quot;https://projects.tigase.org/projects/tigase-http-api&quot;&gt;HTTP API with REST&lt;/a&gt; as the Tigase server component
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.websocket.org&quot; title=&quot;http://www.websocket.org&quot;&gt;Websocket&lt;/a&gt; support as a Tigase server connection manager
&lt;/li&gt;
&lt;li&gt;OSGi support built-in to the core of the Tigase XMPP Server
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://projects.tigase.org/projects/message-archiving&quot; title=&quot;https://projects.tigase.org/projects/message-archiving&quot;&gt;Message Archiving Component&lt;/a&gt; - &lt;a href=&quot;http://xmpp.org/extensions/xep-0136.html&quot; title=&quot;http://xmpp.org/extensions/xep-0136.html&quot;&gt;XEP-0136&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://projects.tigase.org/projects/socks5&quot; title=&quot;https://projects.tigase.org/projects/socks5&quot;&gt;Socks5 Proxy Component&lt;/a&gt; with lots of interesting functions - &lt;a href=&quot;http://tools.ietf.org/html/rfc1928&quot; title=&quot;http://tools.ietf.org/html/rfc1928&quot;&gt;RFC 1928&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://projects.tigase.org/projects/stun&quot; title=&quot;https://projects.tigase.org/projects/stun&quot;&gt;STUN Server Component&lt;/a&gt; - &lt;a href=&quot;http://en.wikipedia.org/wiki/STUN&quot; title=&quot;http://en.wikipedia.org/wiki/STUN&quot;&gt;STUN&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.tigase.org/content/sasl-custom-mechanisms-and-configuration&quot; title=&quot;/content/sasl-custom-mechanisms-and-configuration&quot;&gt;New API for SASL&lt;/a&gt; extensions and custom SASL mechanisms
&lt;/li&gt;
&lt;li&gt;API changes in plugin/processors, old API still available although deprecated, new API way faster (FTL) and less resource consuming
&lt;/li&gt;
&lt;li&gt;Optimizations, lots of them, we expect this version to be significantly faster and use less resources
&lt;/li&gt;
&lt;li&gt;Some metrics names changed to avoid confusion whether this is a number of elements waiting in queue or number of packets already processed
&lt;/li&gt;
&lt;li&gt;Custom RosterAbstract implementation can be now plugged from a configuration file
&lt;/li&gt;
&lt;li&gt;See-other-host implementation improved, now the redirection can be sent to the client after successful login. Still most of XMPP clients do not support this part of RFC so it is optional.
&lt;/li&gt;
&lt;li&gt;Improved multi-threading support, Timer replaced with ScheduledExecutorService where appropriate to avoid Timer single-thread bottleneck.
&lt;/li&gt;
&lt;li&gt;Extended per-vhost configuration at run-time with new parameters: s2s secret, default filtering policy,
&lt;/li&gt;
&lt;li&gt;Changed the way Tigase delivers messages to bare JID - now more common practice, delivers to all active resources
&lt;/li&gt;
&lt;li&gt;TLS required - full implementation, now Tigase won't allow user authentication without TLS if TLS required is set
&lt;/li&gt;
&lt;li&gt;The server whole active configuration is dumped to a text file which can be reviewed and/or copied to init.properties with custom values.
&lt;/li&gt;
&lt;li&gt;Invisibility through the extension - XEP-0186
&lt;/li&gt;
&lt;li&gt;Improved IPv6 support
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.tigase.org/content/client-access-policy-file&quot; title=&quot;/content/client-access-policy-file&quot;&gt;Clientaccesspolicy.xml&lt;/a&gt; support added
&lt;/li&gt;
&lt;li&gt;Lots of s2s improvements and bug fixes
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Please give it a try and let us know what you think. Any problems report or suggestions are always welcomed.&lt;/p&gt;</content>
		<author>
			<name>kobit</name>
			<uri>http://www.tigase.org</uri>
		</author>
	</entry>

	<entry>
		<title>Jitsi News: Jitsi 2.2 released!</title>
		<link rel="alternate" type="text/html" href="https://jitsi.org/Main/News"/>
		<id>https://jitsi.org/Main/2013.04.30</id>
		<updated>2013-04-29T22:00:00+00:00</updated>
		<content type="html">&lt;p class=&quot;vspace&quot;&gt;Jitsi 2.2 is now available for &lt;a href=&quot;https://download.jitsi.org&quot; class=&quot;urllink&quot; rel=&quot;nofollow&quot;&gt;download&lt;/a&gt; here offering stability improvements and feature enhancements. In this release you will enjoy support for XMPP resources, support for Microsoft’s WASAPI audio system, significantly better audio quality over lossy networks such as Wi-Fi, improved conference call stability with Jitsi Videobridge (still a Work In Progress), better video calls and many other improvements and many sorted out problems of the video calls quality. We also now “push to talk” functionality, ability to set the video bit rate, improved window behavior and more readable history logging.
&lt;/p&gt;
&lt;p class=&quot;vspace&quot;&gt;Jitsi downloads are available for Mac OS X, Linux and Windows and are completely translated in Bulgarian, English, French, German, Italian, Spanish. Partial translations for 19 more languages are also included.
&lt;/p&gt;
&lt;p class=&quot;vspace&quot;&gt;Following is a list of the most important changes brought by this build:
&lt;/p&gt;
&lt;div class=&quot;vspace&quot;&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Adds an alternative to PortAudio using Windows Audio Session API (WASAPI) (Not yet but soon to become the default audio system on Windows).
&lt;/li&gt;&lt;li&gt;Adds the possibility to send message or call a specific contact resource over XMPP.
&lt;/li&gt;&lt;li&gt;Allows setting the video bit rate.
&lt;/li&gt;&lt;li&gt;Adds presence, avatars and phone types to the “Transfer Call” dialog.
&lt;/li&gt;&lt;li&gt;Fixes duplication of incoming messages and file transfer panels when show history in chats is enabled.
&lt;/li&gt;&lt;li&gt;Adds a new Jitter Buffer implementation that greatly improves audio in lossy networks such as Wi-Fi.
&lt;/li&gt;&lt;li&gt;Adds support for searching for contacts in Thunderbird address books.
&lt;/li&gt;&lt;li&gt;Adds organization name in LDAP and OS X Address Book search results.
&lt;/li&gt;&lt;li&gt;Detects video support in XMPP vCard-s (important for CUSAX deployments).
&lt;/li&gt;&lt;li&gt;Improves Jitsi Videobridge call stability (Work In Progress).
&lt;/li&gt;&lt;li&gt;Fixes false-alerts for chat window closing.
&lt;/li&gt;&lt;li&gt;Implements a way for users to disable call waiting via configuration.
&lt;/li&gt;&lt;li&gt;Fixes various problems with video calls.
&lt;/li&gt;&lt;li&gt;Adds “push to talk” functionality (quick unmute while pressing Ctrl+Shift+T).
&lt;/li&gt;&lt;li&gt;Prevents firewall prompts from popping up every time Jitsi is started on Mac OS X 10.6.
&lt;/li&gt;&lt;li&gt;Fixes copying of smileys, links and message headers in the chat history window (which wasn’t previously possible).
&lt;/li&gt;&lt;li&gt;Adds TLS client certificate login strategy for XMPP.
&lt;/li&gt;&lt;li&gt;Adds a minimal (configurable) duration for RTP DTMF tones.
&lt;/li&gt;&lt;li&gt;Adds retransmissions for 180 Ringing SIP responses over unreliable transports.
&lt;/li&gt;&lt;li&gt;Fixes NAPTR sorting by preference.
&lt;/li&gt;&lt;li&gt;Allows use of distinct (configurable) port ranges for audio and video streams.
&lt;/li&gt;&lt;li&gt;Improves incoming call window placement.
&lt;/li&gt;&lt;li&gt;Upgrades to latest ice4j version, for better WebRTC compatibility (Work In Progress).
&lt;/li&gt;&lt;li&gt;Makes conference related menu items available regardless of the currently active window.
&lt;/li&gt;&lt;li&gt;Fixes the event configuration file chooser to remember the last stored file location.
&lt;/li&gt;&lt;li&gt;Reverts to use of vanilla bouncy castle libs to address comments received during the Debian submission.
&lt;/li&gt;&lt;li&gt;Logs dates in all history files as ISO 8601 with time zone.
&lt;/li&gt;&lt;li&gt;Various other fixes and improvements.
&lt;/li&gt;&lt;/ul&gt;&lt;p class=&quot;vspace&quot;&gt;See the full commit log here: &lt;a href=&quot;http://goo.gl/AfKzq&quot; class=&quot;urllink&quot; rel=&quot;nofollow&quot;&gt;http://goo.gl/AfKzq&lt;/a&gt;
&lt;/p&gt;
&lt;p class=&quot;vspace&quot;&gt;Best regards from the Jitsi dev team!
&lt;/p&gt;
&lt;div class=&quot;vspace&quot;&gt;&lt;/div&gt;</content>
		<author>
			<name>Jitsi News</name>
			<uri>https://jitsi.org/Main/News?action=newsfeed</uri>
		</author>
	</entry>

	<entry>
		<title>Remko Tronçon: The Sublime Text Experiment</title>
		<link rel="alternate" type="text/html" href="http://el-tramo.be/blog/sublime-text-experiment/"/>
		<id>tag:el-tramo.be,2013-04-30:/blog/sublime-text-experiment/</id>
		<updated>2013-04-29T22:00:00+00:00</updated>
		<content type="html">&lt;p&gt;I’m not easily persuaded to try out a new editor, but since I heard so many
great things about &lt;a href=&quot;http://www.sublimetext.com&quot;&gt;Sublime Text&lt;/a&gt;, I decided to
give it a try. After all, it looked a lot better and smoother than my old and
rusty &lt;a href=&quot;http://www.vim.org&quot;&gt;Vim&lt;/a&gt;, and I’m a sucker for look &amp;amp; feel. So, I took &lt;a href=&quot;https://tutsplus.com/course/improve-workflow-in-sublime-text-2/&quot;&gt;the free courses on tuts+&lt;/a&gt;, and tried it out for a while
on my daily tasks. Here are my findings.&lt;/p&gt;




&lt;p&gt;Let’s start with the pros:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sublime is &lt;strong&gt;cross-platform&lt;/strong&gt;. I wouldn’t even consider using any editor that
  only works on one platform, so this one was a must.&lt;/li&gt;
&lt;li&gt;Not only does Sublime work on each platform, it &lt;strong&gt;looks and feels&lt;/strong&gt; &lt;em&gt;awesome&lt;/em&gt;
  on all of them. Very smooth, responsive, and appealing to the eye.&lt;/li&gt;
&lt;li&gt;One of the distinctive features is support for &lt;strong&gt;multiple cursors&lt;/strong&gt;: You can make the
  same change to different parts of the
text by simply selecting different parts, and starting to type, and you see the
  changes happening live. This is very
  handy for refactoring, such as renaming a variable.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;command palette&lt;/strong&gt; makes it very easy to do any operation you can’t be bothered
to remember the shortcut for. Simply open the command palette, type a few letters,
  and Sublime will use fuzzy searching to suggest the command/option. Almost as good
  as remembering a shortuct.&lt;/li&gt;
&lt;li&gt;Every operation and option is available from the intuitively laid out &lt;strong&gt;menu&lt;/strong&gt;.
Not that you use the menu a lot (or even at all, thanks to the command palette), but
  it’s great for looking around and learning all the things you can do with the editor.&lt;/li&gt;
&lt;li&gt;You can quickly open files and jump to specific symbols using the &lt;strong&gt;Go to anything&lt;/strong&gt;
  popup. I was already using this exclusively to open files on Vim through
  &lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=3736&quot;&gt;ctrlp&lt;/a&gt;, but Sublime
  adds support for symbols and lines to this interface as well, which can come in
  handy.&lt;/li&gt;
&lt;li&gt;You can trigger &lt;strong&gt;builds&lt;/strong&gt; of your project while editing files, see the results, and
  quickly cycle through build errors. This integration is very well done, much smoother
  than in Vim for example.&lt;/li&gt;
&lt;li&gt;You can use &lt;strong&gt;Vim commands&lt;/strong&gt; to move around and edit text, which is obviously
  nice if you’re used to those already, and means you can do lightning fast edits.&lt;/li&gt;
&lt;li&gt;Of course, there are lots of &lt;strong&gt;useful operations&lt;/strong&gt; on text, with &lt;strong&gt;sensible keybindings&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Sublime is &lt;strong&gt;extensible&lt;/strong&gt;, using a Python-based &lt;strong&gt;plugin system&lt;/strong&gt;. There seems to be
  a very large and dedicated community, writing plugins for it, which means you’ll
  most certainly find all the integrations and features you want on the web.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Unfortunately, there are also some cons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Although Sublime is cross-platform, it seems to not have been designed for the
user who actually &lt;em&gt;uses&lt;/em&gt; it on different platforms. For example, the key-bindings
  differ from platform to platform, more than merely &lt;em&gt;Cmd&lt;/em&gt; becoming &lt;em&gt;Ctrl&lt;/em&gt;.
  This is probably rooted in Sublime’s decision to use
  shortcuts that are native to the platform. Remembering different shortcuts for
  different platforms is a nuisance, and causes regular incorrectly typed
  shortcuts when switching a lot.&lt;/li&gt;
&lt;li&gt;Settings are stored in fixed, platform-specific locations. Again, this is because
  Sublime chose to integrate with the OS as much as possible. However, this makes
  it hard to store your settings in a central Git repository, and share it across
  different machines and OSes.&lt;/li&gt;
&lt;li&gt;Sublime uses JSON as settings format. Although that sounds sensible, it actually
  has a big disadvantage: each line of your settings needs to end with a comma, &lt;em&gt;except&lt;/em&gt;
  for the last line. This hit me almost every time I wanted to customize something.
  Another consequence of using JSON is that the settings file isn’t very powerful:
  since it’s basically just key/value pairs, you can’t do anything conditional
  (e.g. depending on which machine you are on), or source other files.&lt;/li&gt;
&lt;li&gt;There is no console version available. I regularly need to edit files on remote
  systems where I only have a terminal available. In that case, I need to switch back to
  another editor.&lt;/li&gt;
&lt;li&gt;And then the obvious one: Sublime is closed source, and not cheap. I don’t
  have anything against closed software per se, and I’d gladly pay the
  (relatively steep) price of the editor if I’m going to use it all day, every day.
  However, I have some practical problems: the systems I work on every day can’t run
  Sublime, since it is linked against older libraries than the ones I have available.
  Since I can’t recompile Sublime myself to link against the older libraries, it ends
  there. And then there’s the fact
  that I don’t like the idea of my editor’s life depending on one person’s focus and
  ability to avoid being hit by a bus. If the project dies, maybe someone will create
  a clone to support the current userbase, but I still consider it a risk.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;I only tried Sublime Text 2, but since these issues are pretty fundamental, I
don’t think they will have been addressed in the upcoming version. Since I had
an uneasy feeling about these things, and was regularly hitting the issues over and
over again, I finally decided to go back to Vim.  However, I think Sublime Text
is a great editor, and is probably the closest an editor will ever get to being
a Vim alternative I find worth considering.&lt;/p&gt;</content>
		<author>
			<name>Remko Tronçon</name>
			<uri>http://el-tramo.be/</uri>
		</author>
	</entry>

	<entry>
		<title>The XMPP Standards Foundation: 2013 Q1 Membership Voting is happening now!</title>
		<link rel="alternate" type="text/html" href="http://xmpp.org/2013/04/2013-q1-membership-voting-is-happening-now/"/>
		<id>http://xmpp.org/?p=2771</id>
		<updated>2013-04-25T07:45:03+00:00</updated>
		<content type="html">&lt;p&gt;Alex has started the membership voting process (big shout-out and thanks to Lance for getting the bot updated!) and would love it if all the current members chat with the &lt;a href=&quot;xmpp:memberbot@xmpp.org&quot;&gt;memberbot&lt;/a&gt; and vote on the &lt;a href=&quot;http://wiki.xmpp.org/web/Membership_Applications_Q1_2013&quot;&gt;2013 Q1 membership applications&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Proxy voting will continue until the close of business on May 1st with the meeting to follow on May 2nd.&lt;/p&gt;</content>
		<author>
			<name>bear</name>
			<uri>http://xmpp.org</uri>
		</author>
	</entry>

	<entry>
		<title>Tigase Blog: --roster-implementation</title>
		<link rel="alternate" type="text/html" href="http://www.tigase.org/content/roster-implementation"/>
		<id>http://www.tigase.org/4036 at http://www.tigase.org</id>
		<updated>2013-04-24T19:44:26+00:00</updated>
		<content type="html">&lt;div class=&quot;field field-type-text field-field-conf-prop-def-val&quot;&gt;
    &lt;div class=&quot;field-items&quot;&gt;
            &lt;div class=&quot;field-item odd&quot;&gt;
                      &lt;div class=&quot;field-label-inline-first&quot;&gt;
              Default value: &lt;/div&gt;
                    RosterFlat.class.getCanonicalName()        &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;field field-type-text field-field-conf-prop-example&quot;&gt;
    &lt;div class=&quot;field-items&quot;&gt;
            &lt;div class=&quot;field-item odd&quot;&gt;
                      &lt;div class=&quot;field-label-inline-first&quot;&gt;
              Example: &lt;/div&gt;
                    --roster-implementation=my.pack.CustomRosterImpl        &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;field field-type-text field-field-conf-prop-values&quot;&gt;
      &lt;div class=&quot;field-label&quot;&gt;Possible values: &lt;/div&gt;
    &lt;div class=&quot;field-items&quot;&gt;
            &lt;div class=&quot;field-item odd&quot;&gt;
                    Class extending tigase.xmpp.impl.roster.RosterAbstract        &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;field field-type-text field-field-conf-prop-description&quot;&gt;
      &lt;div class=&quot;field-label&quot;&gt;Description: &lt;/div&gt;
    &lt;div class=&quot;field-items&quot;&gt;
            &lt;div class=&quot;field-item odd&quot;&gt;
                    This property allows you to specify a different RosterAbstract implementation. This might be useful for a customized roster storage, or extended roster content or in some cases for some custom logic for certain roster elements.        &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;field field-type-text field-field-conf-prop-available-since&quot;&gt;
    &lt;div class=&quot;field-items&quot;&gt;
            &lt;div class=&quot;field-item odd&quot;&gt;
                      &lt;div class=&quot;field-label-inline-first&quot;&gt;
              Available since: &lt;/div&gt;
                    5.2.0        &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;field field-type-userreference field-field-feature-author&quot;&gt;
    &lt;div class=&quot;field-items&quot;&gt;
            &lt;div class=&quot;field-item odd&quot;&gt;
                      &lt;div class=&quot;field-label-inline-first&quot;&gt;
              Author: &lt;/div&gt;
                    &lt;a href=&quot;http://www.tigase.org/users/kobit&quot; title=&quot;View user profile.&quot;&gt;Artur Hefczyc&lt;/a&gt;        &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;field field-type-date field-field-implemented-on-date&quot;&gt;
    &lt;div class=&quot;field-items&quot;&gt;
            &lt;div class=&quot;field-item odd&quot;&gt;
                      &lt;div class=&quot;field-label-inline-first&quot;&gt;
              Date: &lt;/div&gt;
                    &lt;span class=&quot;date-display-single&quot;&gt;Wed, 2013-04-24&lt;/span&gt;        &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;field field-type-text field-field-conf-prop-product&quot;&gt;
    &lt;div class=&quot;field-items&quot;&gt;
            &lt;div class=&quot;field-item odd&quot;&gt;
                      &lt;div class=&quot;field-label-inline-first&quot;&gt;
              Product: &lt;/div&gt;
                    Tigase XMPP Server        &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>kobit</name>
			<uri>http://www.tigase.org</uri>
		</author>
	</entry>

	<entry>
		<title>buddycloud: Presenting at realtimeconf.eu</title>
		<link rel="alternate" type="text/html" href="http://blog.buddycloud.com/post/48707290770"/>
		<id>http://blog.buddycloud.com/post/48707290770</id>
		<updated>2013-04-23T18:40:10+00:00</updated>
		<content type="html">&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Presenting at &lt;a href=&quot;http://RealtimeConf.eu&quot;&gt;realtimeconf.eu&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>imaginator</name>
			<uri>http://blog.buddycloud.com/</uri>
		</author>
	</entry>

	<entry>
		<title>Peter Saint-Andre: A Point Reached</title>
		<link rel="alternate" type="text/html" href="http://stpeter.im/journal/1485.html"/>
		<id>tag:stpeter.im,1485</id>
		<updated>2013-04-23T00:00:00+00:00</updated>
		<content type="html">Just a quick note to say that I now consider my Epicurean dialogue on happiness to be finished, thus completing a journey of exploration that began five years ago when, thanks to my friend Manuel, I decided to start translating the ethical writings of Epicurus (although in fact I have been interested in Epicurus ever since I read and responded to Ray Shelton's paper &quot;Epicurus and Rand&quot; back in 1997).&lt;p&gt;...&lt;/p&gt;</content>
		<author>
			<name>Peter Saint-Andre</name>
			<uri>http://stpeter.im/journal/</uri>
		</author>
	</entry>

	<entry>
		<title>Fanout Blog: An HTTP reverse proxy for realtime</title>
		<link rel="alternate" type="text/html" href="http://blog.fanout.io/2013/04/09/an-http-reverse-proxy-for-realtime/"/>
		<id>http://blog.fanout.io/?p=258</id>
		<updated>2013-04-22T04:54:50+00:00</updated>
		<content type="html">&lt;a href=&quot;https://github.com/fanout/pushpin&quot;&gt;Pushpin&lt;/a&gt; makes it easy to create HTTP long-polling and streaming services using any web stack as the backend. It's compatible with any framework, whether Django, Rails, ASP, or even PHP. Pushpin works as a reverse proxy, sitting in front of your server application and managing all of the open client connections.

&lt;img src=&quot;http://blog.fanout.io/wp-content/uploads/2013/04/pushpin-diagram2.png&quot; alt=&quot;pushpin-diagram2&quot; width=&quot;464&quot; class=&quot;alignnone size-full wp-image-300&quot; height=&quot;224&quot; /&gt;

Communication between Pushpin and the backend server is done using conventional short-lived HTTP requests and responses. There is also a ZeroMQ interface for advanced users.

The approach is powerful for several reasons:
&lt;ul&gt;
	&lt;li&gt;The application logic can be written in the most natural way, using existing web frameworks.&lt;/li&gt;
	&lt;li&gt;Scaling is easy and also natural. If your bottleneck is the number of recipients you can push realtime updates to, then add more Pushpin instances.&lt;/li&gt;
	&lt;li&gt;It's highly versatile. You define the HTTP exchanges between the client and server. This makes it ideal for building APIs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;...&lt;/p&gt;</content>
		<author>
			<name>justin</name>
			<uri>http://blog.fanout.io</uri>
		</author>
	</entry>

	<entry>
		<title>Tigase Blog: Tigase XMPP Server 5.1.5 update while waiting for 5.2.0 version</title>
		<link rel="alternate" type="text/html" href="http://www.tigase.org/content/tigase-xmpp-server-515-update-while-waiting-520-version"/>
		<id>http://www.tigase.org/4029 at http://www.tigase.org</id>
		<updated>2013-04-19T00:37:03+00:00</updated>
		<content type="html">&lt;p&gt;We are working hard on preparing Tigase XMPP Server 5.2.0 release. It is very close as you can guess from &lt;a href=&quot;https://projects.tigase.org/projects/tigase-server/issues?query_id=16&quot;&gt;remaining tasks list&lt;/a&gt;. As you can see we are working on binary packages preparation and installer update. This is necessary as there is lots of new stuff coming to next version. An almost complete list of all changes in version 5.2.0 is on &lt;a href=&quot;https://projects.tigase.org/projects/tigase-server/issues?fixed_version_id=2&amp;amp;per_page=50&amp;amp;set_filter=1&amp;amp;status_id=%2A&quot;&gt;our roadmap page&lt;/a&gt;. Almost complete because there will be some new additions to the standard Tigase distribution which are developed as separate projects such as message archiving support (XEP-0136) and... a few surprises....&lt;/p&gt;
&lt;p&gt;In the meantime we are releasing 5.1.x update with a few bug fixes and corrections, such as presence update from just subscribed contact of the contact has multiple connections and a few other minor fixes. You can grab binary packages from our &lt;a href=&quot;https://projects.tigase.org/projects/tigase-server/files&quot;&gt;project files section&lt;/a&gt;.&lt;/p&gt;</content>
		<author>
			<name>kobit</name>
			<uri>http://www.tigase.org</uri>
		</author>
	</entry>

	<entry>
		<title>Jitsi News: Jitsi&amp;rsquo;s presentation at Kamailio World Conference</title>
		<link rel="alternate" type="text/html" href="https://jitsi.org/Main/News"/>
		<id>https://jitsi.org/Main/2013.04.17</id>
		<updated>2013-04-16T22:00:00+00:00</updated>
		<content type="html">&lt;div class=&quot;vspace&quot;&gt;&lt;/div&gt;&lt;table width=&quot;100%&quot; style=&quot;float: center;&quot; border=&quot;0&quot;&gt;
&lt;tbody&gt;&lt;tr&gt;&lt;td width=&quot;5%&quot; style=&quot;vertical-align: middle;&quot; valign=&quot;top&quot;&gt;
&lt;div&gt;&lt;a href=&quot;http://youtu.be/igZDCS5yosU&quot; class=&quot;urllink&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://img.youtube.com/vi/igZDCS5yosU/default.jpg&quot; alt=&quot;&quot; title=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;vertical-align: middle;&quot; valign=&quot;top&quot;&gt;
&lt;p&gt;Here’s the recording our friend Randy from VUC has made of the Jitsi’s presentation on Kamailio World.
&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;vspace&quot;&gt;&lt;/div&gt;</content>
		<author>
			<name>Jitsi News</name>
			<uri>https://jitsi.org/Main/News?action=newsfeed</uri>
		</author>
	</entry>

</feed>
