<div dir="ltr">This looks like a lot of items for a 3.0.0 - this feels more like a roadmap for a 3.x.<div><br></div><div>Why not break it down ? E.g. given the fact that for push, it would be nice to have GCM_3 in early, so, that could be released w/o &quot;waiting&quot; for stuff like offline, or store related work</div><div><br></div><div>-Matthias<br><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jul 14, 2015 at 5:17 PM, Summers Pittman <span dir="ltr">&lt;<a href="mailto:supittma@redhat.com" target="_blank">supittma@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Tue, Jul 14, 2015 at 10:08 AM, Daniel Passos <span dir="ltr">&lt;<a href="mailto:dpassos@redhat.com" target="_blank">dpassos@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><p style="margin:1.2em 0px!important">Hey Guys,</p>
<p style="margin:1.2em 0px!important">As you know Summers and I started work on AGDroid 3.0. Today we revisited what we want to this release. I hope you enjoy it</p>
<h2 style="margin:1.3em 0px 1em;padding:0px;font-weight:bold;font-size:1.4em;border-bottom:1px solid rgb(238,238,238)">GOALS</h2>
<ul style="margin:1.2em 0px;padding-left:2em">
<li style="margin:0.5em 0px">Remove Java 6 support</li>
<li style="margin:0.5em 0px">Move to $LATEST android-maven-plugin</li>
<li style="margin:0.5em 0px">GCM 3.0 + Push Tasks</li>
<li style="margin:0.5em 0px">Extra convenience tooling</li>
<li style="margin:0.5em 0px">Memeolist demo app</li>
<li style="margin:0.5em 0px">Update docs</li>
<li style="margin:0.5em 0px">oAuth2 improvements</li>
<li style="margin:0.5em 0px">Experimental Offline Module</li>
<li style="margin:0.5em 0px">Experimental Yubikey Neo support</li>
</ul>
<h2 style="margin:1.3em 0px 1em;padding:0px;font-weight:bold;font-size:1.4em;border-bottom:1px solid rgb(238,238,238)">Aerogear Android Push</h2>
<ul style="margin:1.2em 0px;padding-left:2em">
<li style="margin:0.5em 0px">GCM 3.0<ul style="margin:1.2em 0px;padding-left:2em;margin:0px;padding-left:1em">
<li style="margin:0.5em 0px">Instance ID<ul style="margin:1.2em 0px;padding-left:2em;margin:0px;padding-left:1em">
<li style="margin:0.5em 0px">This is a new lifecycle for keeping the registration ID in sync</li>
<li style="margin:0.5em 0px">Using new services and broadcast receivers or providing equavalent support</li>
</ul>
</li>
</ul>
</li>
<li style="margin:0.5em 0px">XMPP<ul style="margin:1.2em 0px;padding-left:2em;margin:0px;padding-left:1em">
<li style="margin:0.5em 0px">Using XMPP messaging for receiving messages and sending analytics updates</li>
<li style="margin:0.5em 0px">May be basis for more robust client side diagnostics and/or eventual messaging APIs</li>
</ul>
</li>
</ul>
<h2 style="margin:1.3em 0px 1em;padding:0px;font-weight:bold;font-size:1.4em;border-bottom:1px solid rgb(238,238,238)">AeroGear Android plugin (new)</h2>
<ul style="margin:1.2em 0px;padding-left:2em">
<li style="margin:0.5em 0px">Previously we shot this idea down because it adds work on developer which isn’t standard</li>
<li style="margin:0.5em 0px">Google is moving to including more plugins in Gradle so that isn’t a concern</li>
<li style="margin:0.5em 0px">Goals<ul style="margin:1.2em 0px;padding-left:2em;margin:0px;padding-left:1em">
<li style="margin:0.5em 0px">Linting push and authz<ul style="margin:1.2em 0px;padding-left:2em;margin:0px;padding-left:1em">
<li style="margin:0.5em 0px">Confirm services in manifest</li>
<li style="margin:0.5em 0px">Confirm appropriate licecycle on Message Listeners</li>
</ul>
</li>
<li style="margin:0.5em 0px">Annotation Processing<ul style="margin:1.2em 0px;padding-left:2em;margin:0px;padding-left:1em">
<li style="margin:0.5em 0px">Automate boring lifecycle tasks around Push (attaching/detaching listeners from activity)</li>
</ul>
</li>
<li style="margin:0.5em 0px">Manifest processing<ul style="margin:1.2em 0px;padding-left:2em;margin:0px;padding-left:1em">
<li style="margin:0.5em 0px">Inject Required services for push and authz if libraries are present</li>
<li style="margin:0.5em 0px">Automatically configure these services with values from keycloak.json and push-service.json</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 style="margin:1.3em 0px 1em;padding:0px;font-weight:bold;font-size:1.4em;border-bottom:1px solid rgb(238,238,238)">AeroGear Android Cookbook</h2>
<ul style="margin:1.2em 0px;padding-left:2em">
<li style="margin:0.5em 0px">Memeolist Demo App<ul style="margin:1.2em 0px;padding-left:2em;margin:0px;padding-left:1em">
<li style="margin:0.5em 0px">Show off Material design skills</li>
<li style="margin:0.5em 0px">Show off integration with other Red Hat/JBoss technologies</li>
<li style="margin:0.5em 0px">Increase profile of AeroGear inside of Red Hat</li>
<li style="margin:0.5em 0px">Dogfooding</li>
</ul>
</li>
</ul>
<h2 style="margin:1.3em 0px 1em;padding:0px;font-weight:bold;font-size:1.4em;border-bottom:1px solid rgb(238,238,238)">AeroGear Android Pipe</h2>
<ul style="margin:1.2em 0px;padding-left:2em">
<li style="margin:0.5em 0px">Logging support</li>
<li style="margin:0.5em 0px">Easier injection of HTTPProviders</li>
<li style="margin:0.5em 0px">Document adding custom headers under pipe</li>
</ul>
<h2 style="margin:1.3em 0px 1em;padding:0px;font-weight:bold;font-size:1.4em;border-bottom:1px solid rgb(238,238,238)">AeroGear Android Store</h2>
<ul style="margin:1.2em 0px;padding-left:2em">
<li style="margin:0.5em 0px">Decide between<ul style="margin:1.2em 0px;padding-left:2em;margin:0px;padding-left:1em">
<li style="margin:0.5em 0px">Async operation</li>
<li style="margin:0.5em 0px">Content Provider<ul style="margin:1.2em 0px;padding-left:2em;margin:0px;padding-left:1em">
<li style="margin:0.5em 0px">With the plugin we could also engage in automatic contract object generation</li>
<li style="margin:0.5em 0px">For an example of what I am thinking see <a href="https://github.com/secondsun/devnexus-android-2015/tree/master/devnexusclientlibrary/src/main/java/org/devnexus/vo/contract" target="_blank">Contracts</a> and <a href="https://github.com/secondsun/devnexus-android-2015/blob/master/devnexusclientlibrary/src/main/java/org/devnexus/sync/DevNexusContentProvider.java" target="_blank">ContentProvider</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 style="margin:1.3em 0px 1em;padding:0px;font-weight:bold;font-size:1.4em;border-bottom:1px solid rgb(238,238,238)">AeroGear Android Offline</h2>
<ul style="margin:1.2em 0px;padding-left:2em">
<li style="margin:0.5em 0px">Cache : Configurable storage mechanism<ul style="margin:1.2em 0px;padding-left:2em;margin:0px;padding-left:1em">
<li style="margin:0.5em 0px">Location : Where the CaceItem will be stored<ul style="margin:1.2em 0px;padding-left:2em;margin:0px;padding-left:1em">
<li style="margin:0.5em 0px">Memory : in Memory store.</li>
<li style="margin:0.5em 0px">OnDevice : the internal permanent storage of the device</li>
<li style="margin:0.5em 0px">Media : removable media based storage. SD Cards, USB Sticks, etc</li>
</ul>
</li>
<li style="margin:0.5em 0px">Eviction Policy : How long CacheItems can stay around<ul style="margin:1.2em 0px;padding-left:2em;margin:0px;padding-left:1em">
<li style="margin:0.5em 0px">Permanent : Cache items must be removed manually</li>
<li style="margin:0.5em 0px">LRU : When the cache is full the least recently accessed will be removed</li>
<li style="margin:0.5em 0px">Fifo : The oldest object in the cache will be removed.</li>
</ul>
</li>
<li style="margin:0.5em 0px">Size : The max number of items a cache may hold.  </li>
<li style="margin:0.5em 0px">Age : The max age of any item</li>
</ul>
</li>
</ul>
<h2 style="margin:1.3em 0px 1em;padding:0px;font-weight:bold;font-size:1.4em;border-bottom:1px solid rgb(238,238,238)">AeroGear Android Authz</h2>
<ul style="margin:1.2em 0px;padding-left:2em">
<li style="margin:0.5em 0px">Revisit oAuth2 opened jiras</li>
</ul>
<h2 style="margin:1.3em 0px 1em;padding:0px;font-weight:bold;font-size:1.4em;border-bottom:1px solid rgb(238,238,238)">AeroGear Android Security</h2>
<ul style="margin:1.2em 0px;padding-left:2em">
<li style="margin:0.5em 0px">Experimental <a href="https://www.yubico.com/products/yubikey-hardware/yubikey-neo/" target="_blank">Yubikey Neo</a> support</li>
</ul>
<p style="margin:1.2em 0px!important">PS: Jiras are comming soon</p></div></div></blockquote></div></div><div>PPS Feel free to yell at us with thoughts, ideas, comments, etc. </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>
<div title="MDH:PGRpdj48ZGl2PjxkaXY+PGJyPjwvZGl2PkhleSBHdXlzLDxicj48YnI+PC9kaXY+QXMgeW91IGtu
b3cgU3VtbWVycyBhbmQgSSBzdGFydGVkIHdvcmsgb24gQUdEcm9pZCAzLjAuIFRvZGF5IHdlIHJl
dmlzaXRlZCB3aGF0IHdlIHdhbnQgdG8gdGhpcyByZWxlYXNlLiBJIGhvcGUgeW91IGVuam95IGl0
PGJyPjwvZGl2PjxkaXY+PGRpdj48ZGl2PjxkaXY+PGJyPiMjIEdPQUxTPGJyPjxicj4qIFJlbW92
ZSBKYXZhIDYgc3VwcG9ydDxicj4qIE1vdmUgdG8gJExBVEVTVCBhbmRyb2lkLW1hdmVuLXBsdWdp
bjxicj4qIEdDTSAzLjAgKyBQdXNoIFRhc2tzPGJyPiogRXh0cmEgY29udmVuaWVuY2UgdG9vbGlu
Zzxicj4qIE1lbWVvbGlzdCBkZW1vIGFwcDxicj4qIFVwZGF0ZSBkb2NzPGJyPiogb0F1dGgyIGlt
cHJvdmVtZW50czxicj4qIEV4cGVyaW1lbnRhbCBPZmZsaW5lIE1vZHVsZTxicj4qIEV4cGVyaW1l
bnRhbCBZdWJpa2V5IE5lbyBzdXBwb3J0PGJyPjxicj4jIyBBZXJvZ2VhciBBbmRyb2lkIFB1c2g8
YnI+PGJyPiogR0NNIDMuMDxicj4mbmJzcDsmbmJzcDsgKiBJbnN0YW5jZSBJRDxicj4mbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKiBUaGlzIGlzIGEgbmV3IGxpZmVjeWNsZSBmb3Iga2Vl
cGluZyB0aGUgcmVnaXN0cmF0aW9uIElEIGluIHN5bmM8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7ICogVXNpbmcgbmV3IHNlcnZpY2VzIGFuZCBicm9hZGNhc3QgcmVjZWl2ZXJzIG9y
IHByb3ZpZGluZyBlcXVhdmFsZW50IHN1cHBvcnQ8YnI+KiBYTVBQPGJyPiZuYnNwOyZuYnNwOyAq
IFVzaW5nIFhNUFAgbWVzc2FnaW5nIGZvciByZWNlaXZpbmcgbWVzc2FnZXMgYW5kIHNlbmRpbmcg
YW5hbHl0aWNzIHVwZGF0ZXM8YnI+Jm5ic3A7Jm5ic3A7ICogTWF5IGJlIGJhc2lzIGZvciBtb3Jl
IHJvYnVzdCBjbGllbnQgc2lkZSBkaWFnbm9zdGljcyBhbmQvb3IgZXZlbnR1YWwgbWVzc2FnaW5n
IEFQSXM8YnI+PGJyPiMjIEFlcm9HZWFyIEFuZHJvaWQgcGx1Z2luIChuZXcpPGJyPjxicj4qIFBy
ZXZpb3VzbHkgd2Ugc2hvdCB0aGlzIGlkZWEgZG93biBiZWNhdXNlIGl0IGFkZHMgd29yayBvbiBk
ZXZlbG9wZXIgd2hpY2ggaXNuJ3Qgc3RhbmRhcmQ8YnI+KiBHb29nbGUgaXMgbW92aW5nIHRvIGlu
Y2x1ZGluZyBtb3JlIHBsdWdpbnMgaW4gR3JhZGxlIHNvIHRoYXQgaXNuJ3QgYSBjb25jZXJuPGJy
PiogR29hbHM8YnI+Jm5ic3A7Jm5ic3A7ICogTGludGluZyBwdXNoIGFuZCBhdXRoejxicj4mbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKiBDb25maXJtIHNlcnZpY2VzIGluIG1hbmlmZXN0
PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAqIENvbmZpcm0gYXBwcm9wcmlhdGUg
bGljZWN5Y2xlIG9uIE1lc3NhZ2UgTGlzdGVuZXJzPGJyPiZuYnNwOyZuYnNwOyAqIEFubm90YXRp
b24gUHJvY2Vzc2luZzxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKiBBdXRvbWF0
ZSBib3JpbmcgbGlmZWN5Y2xlIHRhc2tzIGFyb3VuZCBQdXNoIChhdHRhY2hpbmcvZGV0YWNoaW5n
IGxpc3RlbmVycyBmcm9tIGFjdGl2aXR5KTxicj4mbmJzcDsmbmJzcDsgKiBNYW5pZmVzdCBwcm9j
ZXNzaW5nPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAqIEluamVjdCBSZXF1aXJl
ZCBzZXJ2aWNlcyBmb3IgcHVzaCBhbmQgYXV0aHogaWYgbGlicmFyaWVzIGFyZSBwcmVzZW50PGJy
PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAqIEF1dG9tYXRpY2FsbHkgY29uZmlndXJl
IHRoZXNlIHNlcnZpY2VzIHdpdGggdmFsdWVzIGZyb20ga2V5Y2xvYWsuanNvbiBhbmQgcHVzaC1z
ZXJ2aWNlLmpzb248YnI+PGJyPiMjIEFlcm9HZWFyIEFuZHJvaWQgQ29va2Jvb2s8YnI+PGJyPiog
TWVtZW9saXN0IERlbW8gQXBwPGJyPiZuYnNwOyZuYnNwOyAqIFNob3cgb2ZmIE1hdGVyaWFsIGRl
c2lnbiBza2lsbHM8YnI+Jm5ic3A7Jm5ic3A7ICogU2hvdyBvZmYgaW50ZWdyYXRpb24gd2l0aCBv
dGhlciBSZWQgSGF0L0pCb3NzIHRlY2hub2xvZ2llczxicj4mbmJzcDsmbmJzcDsgKiBJbmNyZWFz
ZSBwcm9maWxlIG9mIEFlcm9HZWFyIGluc2lkZSBvZiBSZWQgSGF0PGJyPiZuYnNwOyZuYnNwOyAq
IERvZ2Zvb2Rpbmc8YnI+PGJyPiMjIEFlcm9HZWFyIEFuZHJvaWQgUGlwZTxicj4mbmJzcDs8YnI+
KiBMb2dnaW5nIHN1cHBvcnQ8YnI+KiBFYXNpZXIgaW5qZWN0aW9uIG9mIEhUVFBQcm92aWRlcnM8
YnI+KiBEb2N1bWVudCBhZGRpbmcgY3VzdG9tIGhlYWRlcnMgdW5kZXIgcGlwZTxicj48YnI+IyMg
QWVyb0dlYXIgQW5kcm9pZCBTdG9yZTxicj48YnI+KiBEZWNpZGUgYmV0d2Vlbjxicj4mbmJzcDsm
bmJzcDsgKiBBc3luYyBvcGVyYXRpb248YnI+Jm5ic3A7Jm5ic3A7ICogQ29udGVudCBQcm92aWRl
cjxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKiBXaXRoIHRoZSBwbHVnaW4gd2Ug
Y291bGQgYWxzbyBlbmdhZ2UgaW4gYXV0b21hdGljIGNvbnRyYWN0IG9iamVjdCBnZW5lcmF0aW9u
PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAqIEZvciBhbiBleGFtcGxlIG9mIHdo
YXQgSSBhbSB0aGlua2luZyBzZWUgW0NvbnRyYWN0c10oaHR0cHM6Ly9naXRodWIuY29tL3NlY29u
ZHN1bi9kZXZuZXh1cy1hbmRyb2lkLTIwMTUvdHJlZS9tYXN0ZXIvZGV2bmV4dXNjbGllbnRsaWJy
YXJ5L3NyYy9tYWluL2phdmEvb3JnL2Rldm5leHVzL3ZvL2NvbnRyYWN0KSBhbmQgW0NvbnRlbnRQ
cm92aWRlcl0oaHR0cHM6Ly9naXRodWIuY29tL3NlY29uZHN1bi9kZXZuZXh1cy1hbmRyb2lkLTIw
MTUvYmxvYi9tYXN0ZXIvZGV2bmV4dXNjbGllbnRsaWJyYXJ5L3NyYy9tYWluL2phdmEvb3JnL2Rl
dm5leHVzL3N5bmMvRGV2TmV4dXNDb250ZW50UHJvdmlkZXIuamF2YSk8YnI+PGJyPiMjIEFlcm9H
ZWFyIEFuZHJvaWQgT2ZmbGluZTxicj48YnI+KiBDYWNoZSA6IENvbmZpZ3VyYWJsZSBzdG9yYWdl
IG1lY2hhbmlzbTxicj4mbmJzcDsmbmJzcDsgKiBMb2NhdGlvbiA6IFdoZXJlIHRoZSBDYWNlSXRl
bSB3aWxsIGJlIHN0b3JlZDxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKiBNZW1v
cnkgOiBpbiBNZW1vcnkgc3RvcmUuPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAq
IE9uRGV2aWNlIDogdGhlIGludGVybmFsIHBlcm1hbmVudCBzdG9yYWdlIG9mIHRoZSBkZXZpY2U8
YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICogTWVkaWEgOiByZW1vdmFibGUgbWVk
aWEgYmFzZWQgc3RvcmFnZS4gU0QgQ2FyZHMsIFVTQiBTdGlja3MsIGV0Yzxicj4mbmJzcDsmbmJz
cDsgKiBFdmljdGlvbiBQb2xpY3kgOiBIb3cgbG9uZyBDYWNoZUl0ZW1zIGNhbiBzdGF5IGFyb3Vu
ZDxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKiBQZXJtYW5lbnQgOiBDYWNoZSBp
dGVtcyBtdXN0IGJlIHJlbW92ZWQgbWFudWFsbHk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7ICogTFJVIDogV2hlbiB0aGUgY2FjaGUgaXMgZnVsbCB0aGUgbGVhc3QgcmVjZW50bHkg
YWNjZXNzZWQgd2lsbCBiZSByZW1vdmVkPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyAqIEZpZm8gOiBUaGUgb2xkZXN0IG9iamVjdCBpbiB0aGUgY2FjaGUgd2lsbCBiZSByZW1vdmVk
Ljxicj4mbmJzcDsmbmJzcDsgKiBTaXplIDogVGhlIG1heCBudW1iZXIgb2YgaXRlbXMgYSBjYWNo
ZSBtYXkgaG9sZC4mbmJzcDsgPGJyPiZuYnNwOyZuYnNwOyAqIEFnZSA6IFRoZSBtYXggYWdlIG9m
IGFueSBpdGVtPGJyPjxicj4jIyBBZXJvR2VhciBBbmRyb2lkIEF1dGh6PGJyPjxicj4qIFJldmlz
aXQgb0F1dGgyIG9wZW5lZCBqaXJhczxicj48YnI+IyMgQWVyb0dlYXIgQW5kcm9pZCBTZWN1cml0
eTxicj48YnI+KiBFeHBlcmltZW50YWwgW1l1YmlrZXkgTmVvXShodHRwczovL3d3dy55dWJpY28u
Y29tL3Byb2R1Y3RzL3l1YmlrZXktaGFyZHdhcmUveXViaWtleS1uZW8vKSBzdXBwb3J0PGJyPjxi
cj5QUzogSmlyYXMgYXJlIGNvbW1pbmcgc29vbjxiciBjbGVhcj0iYWxsIj48YnI+PC9kaXY+PC9k
aXY+PC9kaXY+PGRpdj48ZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXY+PGRpdj48ZGl2PjwvZGl2
PjwvZGl2PjwvZGl2Pg==" style="min-height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0">​</div></div><span class="HOEnZb"><font color="#888888"><span><font color="#888888"><div><div><div><div>-- <br><div><div dir="ltr">-- Passos<br></div></div>
</div></div></div></div></font></span></font></span></div><span class="HOEnZb"><font color="#888888">
<br>_______________________________________________<br>
aerogear-dev mailing list<br>
<a href="mailto:aerogear-dev@lists.jboss.org" target="_blank">aerogear-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/aerogear-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a><br></font></span></blockquote></div><br></div></div>
<br>_______________________________________________<br>
aerogear-dev mailing list<br>
<a href="mailto:aerogear-dev@lists.jboss.org">aerogear-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/aerogear-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Matthias Wessendorf <br><br>blog: <a href="http://matthiaswessendorf.wordpress.com/" target="_blank">http://matthiaswessendorf.wordpress.com/</a><br>sessions: <a href="http://www.slideshare.net/mwessendorf" target="_blank">http://www.slideshare.net/mwessendorf</a><br>twitter: <a href="http://twitter.com/mwessendorf" target="_blank">http://twitter.com/mwessendorf</a></div>
</div>