tag:blogger.com,1999:blog-75301260267981914672024-02-19T13:39:01.180+00:00Simon's blogThe views of a Software Developer/Technical Evangelist.Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.comBlogger29125tag:blogger.com,1999:blog-7530126026798191467.post-80302293774119676032015-03-12T12:50:00.001+00:002015-03-12T12:50:13.438+00:00Eclipse Having a Slow Day? Speed it up in a Few Clicks!<div dir="ltr" style="text-align: left;" trbidi="on">
Eclipse is the market leading IDE of choice for Java developers. It’s a rich featured IDE which makes developing code in Java super simple. However, we’ve all at some point said or thought to ourselves, <i>“Wow, my Eclipse is slow today, what’s it doing?”</i>. To be honest, it might be working on a bunch of tasks that event the Eclipse foundation aren’t sure about, but some of which we can explain to you, and eliminate for you so that your Eclipse can run faster, just like when you first unwrapped it.<br />
<br />
Oh by the way, we’ve created an Eclipse plugin, available for free, which configures Eclipse automatically for you. It does everything we mention in this blog for you, and even tells you how much faster you’ve become! It's called <b>Optimizer for Eclipse</b> and you can <a href="http://zeroturnaround.com/free/optimizer-for-eclipse/?utm_source=devangelistrl">check it out here</a>. Oh and how about these awesome graphic that our design team did for us - Jetpack for Eclipse, Whoooosh!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.blogger.com/blogger.g?blogID=7530126026798191467" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy7weCMeUQHROSNiK4V91823Hm5XwpPebaa2WkH-hLtQgISO4Nephs4skn9pjiipzCKyM08JZk-GV_OyLJa62Vw7n6d4W5eOn7RK4yqhoPs7qExqGQO1wwq6I-lbPNqingt47dz7Wy0D0/s1600/O4E-email-banner-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy7weCMeUQHROSNiK4V91823Hm5XwpPebaa2WkH-hLtQgISO4Nephs4skn9pjiipzCKyM08JZk-GV_OyLJa62Vw7n6d4W5eOn7RK4yqhoPs7qExqGQO1wwq6I-lbPNqingt47dz7Wy0D0/s1600/O4E-email-banner-1.jpg" /></a><a href="https://www.blogger.com/blogger.g?blogID=7530126026798191467" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
<h3>
How can I fix it?</h3>
<div style="text-align: left;">
</div>
Here are the topics which are the typical culprits when working out what might be slow on your Eclipse environment. <br />
<ul style="text-align: left;">
<li>Insufficient memory allocation </li>
<li>Class verification overhead </li>
<li>Excessive indexes and history </li>
<li>Obsolete or slow JDK </li>
<li>Eclipse being out of date </li>
<li>Lengthy build and redeploy times </li>
</ul>
Each of these areas can afflict different amounts of pain to different developers, based on how long you’ve used the installation for, your type and number of projects. Let’s go through each one individually and show you how you can fix them. Remember, your milage may vary.
<br />
<h3>
Insufficient memory allocation</h3>
This might seem obvious, but Java applications are rarely tuned with reasonable Java memory settings from the outset and you’d be well advised to change yours to reduce constant heap expansion which really slows general startup and running down. Your settings will of course depend on your detailed environment, but here are some suggested settings which will give you a much more performant environment from the outset:<br />
<br />
<code>-server </code><br />
<code>-XX:PermSize=256m </code><br />
<code>-XX:MaxPermSize=256m </code><br />
<code>-XX:+UseParallelGC </code><br />
<code>-Xms512m </code><br />
<code>-Xmx1024m</code><br />
<br />
There’s also a <code>+UseParallelGC</code> flag used to dictate which garbage collector strategy to use. This strategy maximises the garbage collection pause, meaning the time between when garbage collection is invoked, while keeping the memory footprint low<br />
<br />
There’s no need to enter these in manually yourself, let the <b>free</b> Optimizer for Eclipse plugin do it for you!
<br />
<h3>
Class verification overhead</h3>
Class verification is where the JVM sifts through your class files when they’re loaded and verifies that class data is not corrupt or invalid. This is only really important if you’re manipulating byte code anyway. Plugins also go through the same checks and this can be a big overhead. We’re talking <b>10-20%</b> startup improvement. So how can you fix it? Well, you need to use the <code>-Xverify:none</code> option on your JVM, which disables class verification. Or just click the relevant button on the Optimizer for Eclipse plugin and let us do it for you!
<br />
<h3>
Excessive indexes and history</h3>
I remember being at school, sitting in my history class thinking... Wow, this is incredibly boring. Well, Eclipse history is just as boring, and it has the same effect too. It manages to make time feel longer than it actually is. Eclipse stores a bunch of info in indexes and history which build up over time. It stores them in two directories as follows:<br />
<br />
<code>{workspace path}/.metadata/.plugins/org.eclipse.jdt.core</code><br />
<br />
<code>{workspace path}/.metadata/.plugins/org.eclipse.core.resources/.history</code><br />
<br />
Eclipse spends a lot of time going through these files and if you have excessive build up in these directories, you could be experiencing a lot of churn around start up and general running. It’s important to clean up your history and indexes periodically. Optimizer for Eclipse will clear this for you and remind you when it thinks you need to give it a spring clean again.
<br />
<h3>
Obsolete or slow JDK</h3>
The latest version of Java available today is version 8. You know that right? Thought so, just checking. Big performance improvements are made in each version of Java when new versions are released and it just makes sense to upgrade, if possible. Of the available (non-beta) Java releases out today, the Oracle JDK looks to be the most performant and so is recommended for use with Eclipse.
<br />
<h3>
Eclipse being out of date</h3>
There are a number of reasons why being on a recent driver of Eclipse is important. Firstly, and least importantly, it’s super shiny and you’ll make all your friends and colleagues feel jealous and old fashioned when they realise their Eclipse version isn’t named after a popular chocolate bar. Secondly and more importantly, the Eclipse foundation do put a lot of work in to make Eclipse more performant, so you may as well make use of these enhancements in the newer drivers. Plugins tend to be written and updated for the more recent versions, so you’ll soon potentially find yourself in a poorly performing environment, and remember, not all plugin updates will even support a lot of the older versions of Eclipse. Obviously, if you’re running and stuck on a legacy plugin which you depend on, and it doesn’t support a newer version of Eclipse, this may not be an option for you, but this is quite rare.
<br />
<h3>
Lengthy build and redeploy times</h3>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.blogger.com/blogger.g?blogID=7530126026798191467" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
We of course know that one of the major pain points when developing applications in Java is having to build, compile, package, restart/redeploy, generate state, ZZzzzzz. And all this before you can even think about testing or seeing your code changes. Well, there’s no need to worry or grow old beyond your years as there is a solution. It wears a cape, and goes by the name of <a href="http://zeroturnaround.com/software/jrebel">JRebel</a>. A tool which has a deep integration with Java Classloaders, application servers and Java frameworks that allow you to instantly reload your code changes! You can learn more about the tool on the <a href="http://zeroturnaround.com/software/jrebel">JRebel product pages</a>, and either install directly through the marketplace, or via the Optimizer for Eclipse plugin. <i>(*Note* JRebel does of course work on all the other major IDEs too!)</i><br />
<br />
If you want to try out the <b>Optimizer for Eclipse</b> tool, which does much of what we’ve talked about automatically, oh and for free, <a href="http://zeroturnaround.com/free/optimizer-for-eclipse/?utm_source=devangelistrl">you can download the Eclipse plugin</a> and give it a go.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.blogger.com/blogger.g?blogID=7530126026798191467" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
<br />
Here's a video so you can see it in action.<br />
<br />
<iframe allowfullscreen="allowfullscreen" frameborder="0" height="364" src="https://player.vimeo.com/video/121659307" width="640"></iframe><br />
<br />
<br />
Originally posted on the RebelLabs blog.
</div>
Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.com0tag:blogger.com,1999:blog-7530126026798191467.post-4962291324818555042015-03-11T19:13:00.000+00:002015-03-11T19:13:37.036+00:00Announcing Optimizer for Eclipse - A Jetpack for Eclipse<div dir="ltr" style="text-align: left;" trbidi="on">
<iframe allowfullscreen="allowfullscreen" frameborder="0" height="364" src="https://player.vimeo.com/video/121659307" width="640"></iframe>
<br />
<br />
Hello, Simon here - your friendly developer tools aficionado and developer advocate.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.blogger.com/blogger.g?blogID=7530126026798191467" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
Today I am very excited to announce the release of <b><a href="http://zeroturnaround.com/free/optimizer-for-eclipse/?utm_source=devangelistan">Optimizer for Eclipse</a></b>. Within the Java ecosystem, Eclipse is still the most widely used IDE. Yet, at the same time, it’s still a pain point for developer productivity. At some point, you have either thought, heard someone else say it or said it yourself: <i>“Wow, my Eclipse is really slow today!”</i>. It has recently been our goal to fix this, allowing Java developers to enjoy coding in Eclipse once again.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1Mdm9LaNfjahCm26epFCYTzV-ecgAS9r-rFG3bjWvurKah5wx-1-IiIvDA0Y1RnhjilG4SnNQcm8EUGl52vFrgykW1Fq5O6yL6DTn34v9igrANiNLabzurRsj7rPuin5rCU0H9wXcK7s/s1600/O4E-email-banner-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1Mdm9LaNfjahCm26epFCYTzV-ecgAS9r-rFG3bjWvurKah5wx-1-IiIvDA0Y1RnhjilG4SnNQcm8EUGl52vFrgykW1Fq5O6yL6DTn34v9igrANiNLabzurRsj7rPuin5rCU0H9wXcK7s/s1600/O4E-email-banner-1.jpg" /></a></div>
<br />
<b>Optimizer for Eclipse</b> is a totally free Eclipse plugin that detects and fixes common Eclipse configuration issues. These can add up over time and slow your development environment down to a crawl. These issues include:<br />
<ul style="text-align: left;">
<li>Insufficient memory allocation</li>
<li>Class verification overhead</li>
<li>Excessive indexes and history</li>
<li>Obsolete or slow JDK</li>
<li>Eclipse being out of date</li>
<li>Lengthy build and redeploy times</li>
</ul>
<b>Optimizer for Eclipse</b> evaluates your environment by performing checks on each of these issues. You can then choose which items you wish to fix and allow the plugin to automatically speed up your Eclipse environment. Oh and did we mention it’s free? Yeah, it is - <b>totally free</b>!
We caught up with <b>Mike Milinkovich</b>, Executive Director of the Eclipse Foundation:
<br />
<blockquote>
<i>"We are delighted to have ZeroTurnaround contribute to the Eclipse ecosystem, bringing its robust Java knowledge to the community and making it easier for our users to get the most out of their Eclipse IDE experience with Optimizer for Eclipse"</i></blockquote>
Have fun and enjoy coding in Eclipse, again!
<i>Simon and the Optimizer for Eclipse team</i>
<br />
<hr />
<i><a href="http://zeroturnaround.com/free/optimizer-for-eclipse/?utm_source=devangelistan">Give it a go</a> and see how much you can speed up your Eclipse environment!</i><br />
<br />
<i>Originally posted on ZeroTurnaround blog </i> </div>
Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.com2tag:blogger.com,1999:blog-7530126026798191467.post-87336328299634069512013-10-09T12:32:00.001+01:002015-03-09T11:29:53.358+00:00vJUG: One small step for JUGs, one giant leap for JUG-kind<div dir="ltr" style="text-align: left;" trbidi="on">
<h2 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 17px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">What's the problem?</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span></b></h2>
<h2 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">I love community, networking and interactions with other geeks, that's why I married one! :) The greatest thing about Java User Groups (JUGs) isn't just the great content, but also the close knit community, the beers and chatting/networking with like-minded geeks talking tech and sharing ideas. I’m an active leader of the </span><a href="http://www.meetup.com/Londonjavacommunity/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">LJC</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> (London JUG) and speak at events as well</span></b><span style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> as organiser for</span></span><b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> the LJC Open Conference (Happening this Nov 23rd ;) ). I've actually considered moving into London for this community alone. I currently live 45 mins outside, and it takes me over 2 hours round trip to visit or attend a session. With a new(ish) job and family, this really isn't viable. But</span></b><span style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> it</span></span><b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> got me thinking… there must be hundreds of thousands of Java developers around the world who, just like me, don't have an accessible local Java community. There are likely many others who are close to a local community, but don't meet regularly, or maybe it isn't active at all. </span></b><span style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">So</span></span><b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, enough talk, let's see some action!</span></b></h2>
<h2 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 17px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">What's the solution?</span></b></h2>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSdhmpG9RVwbPp_ix2h0q5sL-BCSA1RVFLLv5K4dAMLRQyUuFb_StEuYmQwneudSLA5CAtdDDCFBHC4tyMpw3cHYmiRtwLCT5fjpmEkBmebasD_xxQJiCOHyo82ua0DBHhyphenhyphen77XKtdA3EI/s1600/Screen+Shot+2013-10-09+at+12.36.38.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSdhmpG9RVwbPp_ix2h0q5sL-BCSA1RVFLLv5K4dAMLRQyUuFb_StEuYmQwneudSLA5CAtdDDCFBHC4tyMpw3cHYmiRtwLCT5fjpmEkBmebasD_xxQJiCOHyo82ua0DBHhyphenhyphen77XKtdA3EI/s320/Screen+Shot+2013-10-09+at+12.36.38.png" height="54" width="320" /></a></div>
</div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<br />
<b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">I've created a new JUG, the </span><a href="http://www.meetup.com/virtualJUG/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">virtualJUG</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, that's applicable to everyone with an internet connection! It aims to plug the hole for people who either don't live near an active JUG, who want to interact and get some community networking. Well, it's open to people who do live near an active JUG too if they need a tech-top-up! You can join now and stay connect</span></b><span style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">ed</span></span><b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> with all the exciting sessions we have in the pipeline, by</span><a href="http://www.meetup.com/virtualJUG/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"> joining our meetup group right now</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">! Or see what other things we need right now at the bottom of this </span></b><span style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">blog!</span></span><b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span></b><span style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">O</span></span><b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">f course</span></b><span style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> the vJUG is</span></span><b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> entirely free to join and use.</span></b></div>
<h2 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 17px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">So where's the community?</span></b></h2>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Clearly local JUGs provide a community that the vJUG will never compete with and it's not in our interest to do so! We want to work *with* local JUGs to give their content a better outreach and be the platform through which, if they choose to stream sessions, can be pushed and advertised to the wider Java community. We're already working with the LJC (London JUG) to be the place they live stream their sessions from - cool!</span></b></div>
<h2 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 17px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Interaction! Interaction! Interaction!</span></b></h2>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">I'm a hater of a one way dull presentation whether it's being presented live or as an online webinar. So I intend to make sessions as interactive as possible! How? Here are some of my ideas:</span></b></div>
<b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Panel discussions</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> - multiple speakers with interactive discussions, possibly based on Q&A from the audience</span></b></div>
<b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;">
</b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Attendee driven sessions</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> - live polls to determine the direction of the session, or heavy Q&A sections</span></b></div>
<b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;">
</b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">IRC chat </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">- chat rooms live throughout the presentation, so attendees can agree, disagree, vent, ask questions and discuss what it happening without needing to stop the session to ask.</span></b></div>
<b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;">
</b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Anything else? </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">If you can think of other ideas, let me know!</span></b></div>
<b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;">
<br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></b><br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">What types of sessions we be looking to run?</span></b></div>
<b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;">
<br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></b><br />
<ul style="margin-bottom: 0pt; margin-top: 0pt;"><b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Presentations</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Live Demos</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Panel discussions</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Live Streams of JUG meetings</span></div>
</li>
</b></ul>
<b id="docs-internal-guid-50902f8c-9cf9-07f5-bed7-cd31a9d1f4d3" style="font-weight: normal;">
<br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Also by joining the community you'll get links via newsletters collating what we've been up to, what's going on outside the community and what is coming up, as well as which sessions have been most popular, so you can look them up again on Parleys or watch for the first time if you missed them! Essentially, we're your proactive calendar that throws content at you :)</span></div>
<h2 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 17px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Call to Action!</span></h2>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">What are you waiting for? </span><a href="http://www.meetup.com/virtualJUG/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Sign up now!!! </span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">But more importantly, please share this blog post far and wide so our community can grow and help others techies around the world. </span></div>
<br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">You own a JUG or community? Awesome, you can help too! Get your members to join up and ask them if they'd like to present at the vJUG! Make your community famous by reaching out, streaming to, or presenting at the vJUG!</span></div>
<br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">We're also looking into options that allow for feature rich video streaming for large numbers of attendees and chat environments, like IRC that outlive the webinar. Let us know if you have any recommendations or suggestions.</span></div>
<br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Our first sessions will be announced shortly on the </span><a href="http://www.meetup.com/virtualJUG/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">meetup site </span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">and on </span><a href="https://twitter.com/sjmaple" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">twitter</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">!</span></div>
<br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">You can contact me directly on twitter </span><a href="https://twitter.com/sjmaple" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">@sjmaple</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. This is also where I’ll initially be talking about the vJUG and letting you know what’s happening.</span></b></div>
Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.com2tag:blogger.com,1999:blog-7530126026798191467.post-73944291814587630112013-02-08T13:27:00.002+00:002013-02-08T14:01:09.051+00:00Shit you talk about while redeploying on a Friday...We must do everything we can to stop scenes like this happening again... You can avoid this from happening with <a href="http://zeroturnaround.com/software/jrebel/">JRebel.</a> <br />
<br />
<<b>Anton</b>> lol <a href="http://www.youtube.com/watch?v=kfVsfOSbJY0">http://www.youtube.com/watch?v=kfVsfOSbJY0</a><br />
<<b>Simon</b>> was a conclusion ever reached?<br />
<<b>Simon</b>> Did Rebecca Black ever say which seat she would sit in? The back seat or the front seat?<br />
<<b>Luke</b>> she kicks it in the front seat while sitting in the back seat, an impressive feat<br />
<<b>Simon</b>> I'm not even sure what that means but I'm impressed<br />
<<b>Kesh</b>> i think she is actually asking whether she should kick it in the front or back seat<br />
<<b>Kesh</b>> shes gotta make her mind up<br />
<<b>Kesh</b>> which seat she should taaaaaake<br />
<<b>Kesh</b>> its a coming of age tale.<br />
<<b>Luke</b>> truely the song of a generation<br />
<<b>Mike</b>> that deep kesh...<br />
<<b>Kesh</b>> We all know what happens in the back seat<br />
<<b>Sean</b>> yes, rebecca black kicks it there<br />
<<b>Mike</b>> obviously<br />
<<b>Erkki</b>> or she might kick in the front seat<br />
<<b>Greg</b>> She questions "which seat CAN I take?", not should I take. Who is stopping her from taking whatever seat she wants?<br />
<<b>Erkki</b>> the establishment<br />
<<b>Mike</b>> go back and refer to kesh's analysis...<br />
<<b>Simon</b>> whoa! I look away for a couple of minutes and look what you all get up to when unattended :)<br />
<<b>Simon</b>> So, the establishment is stopping her taking her preferred seat - I like it<br />
<<b>Mike</b>> BTW - in the video she chooses the back seat. Just saiyin'<br />
<<b>Ben</b>> Maybe there's a car seat in the back seat.<br />
<<b>Simon</b>> with 2 girl friends - work that one out @Kesh<br />
<<b>Aaron</b>> I'd actually like focus on another part of the song--the hip hop accompaniment and its function as a song within a song, sort of a meta-critique of the teenage experience. Let's focus our attention for a moment on the line "Fast lane--switching lanes!" which is clearly a metaphor for the fast paced unpredictability of the teenage girls life. The use of the car, and the act of speeding on the freeway as the vehicle (so to speak) for delivering the metaphor only enriches it, as the operation of a vehicle is one of the most universal coming of age milemarkers.<br />
<<b>Sean</b>> what about the male rapper who identifies himself as "being rebecca black" ?<br />
<<b>Aaron</b>> @seanroche It all just goes to the universality of the teenage experience that is at the heart of "Friday"<br />
<<b>Simon</b>> She's a genius<br />
<<b>Aaron</b>> Greg and I just had a really interesting discussion about the line and wording of "Gotta get down on Friday"<br />
<<b>Kesh</b>> it's not an option. rebecca must get down on friday<br />
<<b>Sean</b>> its all about living life in the fast lane and switching lanes. rebecca is trying out different styles and approaches to her young life; which one will she take?<br />
<<b>Aaron</b>> Well not only MUST she, but by not getting down she risks alienation from not only her peers, but her own sense of identity as a teenager<br />
<<b>Kesh</b>> it will all be revealed in my essay, being delivered Monday, titled Fast Lane: The Maturization of the Teenage Girl in America<br />
<<b>Sean</b>> "We gonna have fun, c'mon, c'mon, y'all" this symbolizes peer pressure which is an unfortunate part of any young teens life<br />
<<b>Aaron</b>> Well that's what's really striking about it. At its core, Friday is a song about the way a teenager (and possibly all of us) synthesize moments of peer pressure and position them in our own psyche as moments of authentic fun<br />
<<b>Simon</b>> You all have such great vision. What's your deep understanding of the line "Fun Fun, Think about Fun, You know what it is. I got this, you got this, my friend is by my right. AAAAAAaaaaaaa"<br />
<<b>Joonas</b>> There was a South Park episode about digging a deep point out of nothing, I think it applies here.<br />
<<b>Simon</b>> This bit - <a href="http://www.youtube.com/watch?feature=player_detailpage&v=kfVsfOSbJY0#t=75s">http://www.youtube.com/watch?feature=player_detailpage&v=kfVsfOSbJY0#t=75s</a><br />
<<b>Sean</b>> @simon - is that really her friend though? Or is she implying their relationship has no true substance ?<br />
<<b>Aaron</b>> I think "Fun, you know what it is" is one of the great moments of irony in Friday. On one hand you want to think that she is having fun in the car with her friends, but in reality she's reminding us to look beyond moments like this and to remind ourselves what "fun" really is. Maybe the pure fun we had as children, which becomes more and more abstracted and bastardized as we age<br />
<<b>Kesh</b><b></b>> that line, IMHO, is rebecca trying to reassure herself that it will all be ok. she says she's got this, you got this, but do any of us really get this? No, i dont think we do.<br />
<<b>Simon</b>> and AAAAAAaaaaaaa?<br />
<<b>Aaron</b>> A gutteral scream expressing frustration at the levels and layers of irony present in the teenage experience<br />
<<b>Sean</b>> @kesh - think allanis morisette - so talented yet so tortured<br />
<<b>Kesh</b>> as are all true artists<br />
<<b>Aaron</b>> Well, here is the great thing about Alanis, Roche<br />
<<b>Aaron</b>> She was actually able to see the view from outside her own ironic existence as a pop start trying to remain an authentic human. A view expressed in the song "Ironic." Which for my money is one of the great pop songs of the last 30 years.<br />
<<b>Sean</b>> she was a bitch , but still maintained her status as a lover.<br />
<<b>Aaron</b>> Well I think what she shows us is that it's possible to be both and still exist as a single vessel <br />
<<b>Simon</b>> Whoa, back to work, redeploy is done.<br />
<br />
Don't forget,<a href="http://zeroturnaround.com/software/jrebel/"> joining the rebellion</a> will help you and your friends avoid listening to or talking about Rebecca Black.Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.com0tag:blogger.com,1999:blog-7530126026798191467.post-23524419485019417912012-11-21T13:35:00.002+00:002012-11-21T13:36:59.576+00:00Joining the RebellionThe last few weeks have been awesome - Spending lots of time with the family and really enjoying my time off between jobs. This time off has made me ready for my new venture which started this morning. Today is the first day in my new role as a Technical evangelist for <a href="http://zeroturnaround.com/">ZeroTurnaround</a> - I've joined the rebellion. <br />
<br />
I wanted to join ZeroTurnaround as they looked like a really smart, fun, energetic outfit which produced some really cool products. I'll be learning up <a href="http://zeroturnaround.com/software/jrebel/">JRebel</a> and <a href="http://zeroturnaround.com/software/liverebel/">LiveRebel</a> and will soon be preaching all about their awesomeness :o)<br />
<br />
My work will be very community focused, so I'll continue to work with groups like the London Java Community, the Graduate Developer Community, as well as others. I'll be aiming to create technical content around the products and the product areas as well as continue to speak at conferences.<br />
<br />
As I learn more about the technology areas and products I'll share what I've learnt here and on the <a href="http://zeroturnaround.com/">ZeroTurnaround site</a>, so you can learn with me :o)<br />
<br />
Oh and ZeroTurnaround have *the* greatest business cards...<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEotRdkIXNqYMFE-CJHKTFBKG7ZtFczCMuDrGg-Q0Rqv64vzjKo_XJsLJi0q55rMj7WDHCaBq5d8JxcXnoeVjgCOFii9ixF0mT7dJoQXhOU7PJZh_IPQdh5_gc8zRMDZPgclmpI-w9uz4/s1600/photo.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEotRdkIXNqYMFE-CJHKTFBKG7ZtFczCMuDrGg-Q0Rqv64vzjKo_XJsLJi0q55rMj7WDHCaBq5d8JxcXnoeVjgCOFii9ixF0mT7dJoQXhOU7PJZh_IPQdh5_gc8zRMDZPgclmpI-w9uz4/s400/photo.JPG" width="298" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.com0tag:blogger.com,1999:blog-7530126026798191467.post-85178163003295000752012-11-05T10:37:00.001+00:002012-11-05T14:57:09.820+00:00LJC Open Conference 2012<span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); -webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875); font-family: '.Helvetica NeueUI'; font-size: 17px;"></span><br />
<div>
<span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); -webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); font-family: Arial, Helvetica, sans-serif;">On November 24th 2012, the LJC will be hosting it's annual open conference at IBM South Bank, Waterloo. If you have attended this event before you do not need to read any further, <a href="http://www.meetup.com/Londonjavacommunity/events/89353112/">go and sign up now</a> :) if you have not been attended an LJC Open Conference before, it's awesome! The day is scheduled as an unconference whereby sessions can be suggested in advance, but the timetable is created on the morning of the conference. We also have refreshments throughout the day, food, beer plus giveaways all paid for by our sponsors (tba soon). Here's a rough schedule of the day:</span></div>
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"><span class="Apple-style-span"></span></span><br />
<div>
<div style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); -webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969);">
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"><span class="Apple-style-span"><br /></span></span></div>
</div>
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"><span class="Apple-style-span">
</span><span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); -webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-text-size-adjust: 100%; color: #666666; line-height: 14px;"><div style="line-height: 1.5; margin-bottom: 6px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
8.30 am Sign-in hands over to security</div>
<div style="line-height: 1.5; margin-bottom: 6px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
9.30 am Brief introduction, discussing how day will work and organising the board</div>
<div style="line-height: 1.5; margin-bottom: 6px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
10.10 am Conference Keynote</div>
<div style="line-height: 1.5; margin-bottom: 6px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
Open conference Sessions</div>
<div style="line-height: 1.5; margin-bottom: 6px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
12.40 Lunch</div>
</span><span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); -webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-text-size-adjust: 100%; color: #666666; line-height: 18px;">Open conference </span><span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); -webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); -webkit-text-size-adjust: 100%; color: #666666; line-height: 14px;"><span class="Apple-style-span" style="line-height: 18px;">Sessions</span><div style="line-height: 1.5; margin-bottom: 6px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
5.30 pm Conference wrap up</div>
<div style="line-height: 1.5; margin-bottom: 6px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
5.30 pm+ Social event TBC</div>
</span></span><br />
<div>
<div>
<span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); -webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); font-family: Arial, Helvetica, sans-serif;"></span><br />
<div>
<span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); -webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969); font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"><span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); -webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969);">
</span>Sessions typcally include a wide range of topics, not just specifics of the Java language, Spring, Hibernate, Open Source, OSGi, etc, but also about tools and practices - eg. software craftsmanship, BDD, TDD, Kanban, Agile and other practices that enhance our world.</span><span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); -webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969);"></span><br />
<div>
</div>
<span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); -webkit-tap-highlight-color: rgba(26, 26, 26, 0.292969);">
<div>
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;">So a one day Java conference in London... Should cost quite a bit right? WRONG! £20 is all we ask per person, bargain. Oh, there are only 120 places and 50 have already gone... <a href="http://www.meetup.com/Londonjavacommunity/events/89353112/">Sign up now</a> and avoid disappointment!</span><br />
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;">Looking forward to meeting you/seeing you there!</span><br />
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;">Simon -- LJC Open Conference co-organiser.</span></div>
</span></div>
</div>
Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.com0tag:blogger.com,1999:blog-7530126026798191467.post-67229212355867799532012-10-26T13:27:00.001+01:002012-10-26T13:27:14.295+01:00Leaving big blue<br />
Yep, I'm calling it a day with one of the biggest and by far *the* most important company in the history of computing (and before that, tabulating!). So why leave? Well that's mostly between IBM and myself :o) But I really want a new challenge with a new company which have a very different dynamic to a large corporate. I will be letting you know about my future plans soon enough, but this post is all about IBM and me :o)<br />
<br />
I've worked at IBM for over 11 years, and I wanted to share my experiences with you. The Hursley site is a truly wonderful place to work, but the most important asset onsite is the people. IBM have built up a friendly, highly technical group of people, many of whom I consider my good friends which I will continue to meet up with beyond my career at IBM. The portfolio IBM produces in my opinion is second to none on the market, and I look forward to continue watching IBM perform well in the future, on the other side of the fence.<br />
<br />
So what am I doing? Well for now I'll say that I'll still be working as a technical evangelist, but for a very different company indeed. IBM has over 300,000 employees, whereas my new venture has < 100. Yes, it's going to be a big change and I'm looking forward to tackling the new challenges. I'm still going to be involved around the Java space and will be involved with the London Java User Group (London Java Community - LJC) more than ever. I'm sure there will be aspects I will miss, and I'm sure there will be aspects I will not miss ;o)<br />
<br />
I'm really excited about this new move and the prospects it brings and look forward to sharing this with you in more detail soon when the time is right. For now, thanks to everyone at IBM for making my time here amazing. Thanks for your support, from a technical, career and friendship point of view. I've met many great people, none more so than my wife, Liz! <br />
<br />
So long and thanks for all the fish.Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.com2tag:blogger.com,1999:blog-7530126026798191467.post-20343683329070205152012-09-12T18:19:00.000+01:002012-09-12T18:19:25.242+01:00WAS Liberty Profile has joined the RebellionAs <a href="http://zeroturnaround.com/jrebel/jrebel-5-0-1-released/">announced by Zero Turnaround</a>, the <a href="http://zeroturnaround.com/software/jrebel/download/">JRebel 5.0.1</a> release now supports the <a href="http://wasdev.net/">WebSphere Application Server 8.5 Liberty Profile</a> - Awesome! But what does this mean to the typical developer?<br />
<br />
Well, you'll now be able to perform more complex operations that can effectively be hotswapped into the Liberty Profile runtime and see your changes take effect at runtime without restart of the application server or application. The more complex operations include such things as adding and removing methods and fields as well as a <a href="http://zeroturnaround.com/software/jrebel/features/#headline">long list of others</a>.<br />
<br />
So what does this really mean to Liberty Profile devs? Well, for the most part, you don't need to worry about redeploying anymore! This is great news if you have large applications that take time to build, export and deploy, as now you can just hit 'Ctrl+S' and your updates will be used by the Liberty Profile environment (via some JRebel agent magic).<br />
<br />
Here's the setup on my mac:<br />
<br />
Eclipse IDE (Indigo)<br />
WebSphere Application Server developer tools (WDT)<br />
JRebel plugin (Just using a trial licence for now)<br />
WebSphere Liberty Profile 8.5<br />
JRebel agent jar<br />
<br />
Here's it working:<br />
<br />
<iframe allowfullscreen="allowfullscreen" frameborder="0" height="315" src="http://www.youtube.com/embed/5wub-5VEoV4" width="560"></iframe>
<br />
How cool was that! Imagine all those little changes you could now make and test in an instant, that you'd previously bundle up as one big update and spot a glaringly obvious mistake as soon as you deploy! Oh... is that just me? :o)<br />
<br />
Time to get cooler... (cranks the dial to 11) lets use remoting, a service which allows you to perform the same as above with a manual sync step but to a remote machine. Let's say oooooh a <a href="http://raspberrypi.org/">Raspberry Pi</a>! I chose a Raspberry Pi because i) it's a machine which wouldn't be able to (sensibly) run a big IDE like eclipse, ii) to keep up my reputation - Simon the Pi man! iii) Raspberry Pi's are cool!<br />
<br />
Here's it working:<br />
<br />
<br />
<iframe allowfullscreen="allowfullscreen" frameborder="0" height="315" src="http://www.youtube.com/embed/uK-m7AyQYPQ" width="560"></iframe>Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.com0tag:blogger.com,1999:blog-7530126026798191467.post-32231047633191821872012-06-27T08:57:00.001+01:002012-06-27T09:00:34.855+01:00Social area at JAX Conf - driven by the Liberty Profile and a Raspberry Punnet<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
This year, IBM will not only be the Gold sponsor at <a href="http://jaxconf.com/2012/">JAX</a>, it
will also be sponsoring and running the new Social Area at the
conference which will be a place for people to chill, have breakouts,
see and present demos, have interviews by the JAX enter and developer
works teams and also get a bunch of info around the conference from a
web front end which I'll be developing.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://jaxconf.com/2012/"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-2BsUmSVrAT9RWb2VmJZ5EpcRyDOyL7dsdBhn2GpRLjN0bY6iDMELmkUV6GpbRgMgO3CQsLh3vG3pzRHHRPEwRyEq4t97ot9EhubA7mLtsO0GM_z0iTnr8iUwiR4aGGyUuWw4x_2hEqE/s1600/JAXConf.gif" /></a></div>
<br />
The web front end will be powered by a mac mini as the load distributor, and a cluster of <a href="http://raspberrypi.org/">raspberry pis</a>, each running the <a href="http://wasdev.net/">Liberty Profile</a> as the application server our webapps will run on. At this point I should mention that IBM do not own all these Raspberry Pis, it owns one, just like the vast majority. We're borrowing two other personal Pis kindly on loan by Ross Pavitt and Kevin Turner, fellow IBMers - thanks guys! If you're attending JAX Conf in San Francisco and want your Pi to be part of the biggest Pi-experiment to around 1000 people, let me know, via a <a href="https://twitter.com/#%21/sjmaple">tweet</a>/comment or bring it along on the day and we'll connect it up and it can join the punnet and serve content to the whole conference.<br />
<br />
The other reason the mac mini will be in place is to monitor load and performance, and step in where necessary to bail out the punnet during busy times :) I want to take a photo of each device and make sure that when a user get's a webpage back, they see the physical device which served up the page, be it a Pi or a mac mini! The aim to to get pages viewable on mobiles, tablets and laptops.<br />
<br />
So, what will this social area web content provide? Here are my ideas so far:<br />
<ul>
<li>A tweet stream following the JAX Conf hash tag</li>
<li>A twitter word cloud, showing what's hot at the moment, one for the day and one for the last 30 mins</li>
<li>A mash up with Lanyrd for people to engage with feedback on sessions </li>
<li>Latest timetable info - what's on now and next</li>
<li>Breaking news/changes from the JAX Conf team</li>
<li>Info on Social area demos, interviews, breakouts, Q&As etc, as they happen</li>
</ul>
These are just some of my thoughts which I aim to implement over the next week and set up on the cluster. The reason for this post though is to get your feedback - what do you want to see up on the Social Area site? What have you found useful info in the past at conferences that you'd love to see here? Or do you think we've got a good set?<br />
<br />
Please let me know at <a href="https://twitter.com/#%21/sjmaple">@sjmaple</a> or comment on this post. Thanks for your feedback and look forward to see you there! Note: we may have some spare tickets to the event, which we'd look to reward feedback with! :o)<br />
<br />
If you want to attend the event, here's a code which will give you a great discount on ticket price:<br />
<br />
<div>
JAXIBM1<span class="Apple-tab-span" style="white-space: pre;"> </span>Get $50 off a 1 day pass</div>
<div>
JAXIBM2<span class="Apple-tab-span" style="white-space: pre;"> </span>Get $100 off a 2 day pass</div>
<div>
JAXIBM3<span class="Apple-tab-span" style="white-space: pre;"> </span>Get $200 off a 4 day pass</div>
<br />
<br />Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.com0tag:blogger.com,1999:blog-7530126026798191467.post-58217729554963488912012-06-03T06:19:00.000+01:002012-06-07T14:09:46.825+01:00How can a Pi control a house from 50 miles away?Easy! Here's my Pi recipe:<br />
<br />
<b>My Ingredients:</b><br />
1 <a href="http://www.raspberrypi.org/">Raspberry Pi</a><br />
1 IBM J9 JVM <br />
1 <a href="http://wasdev.net/">WebSphere Liberty Profile server</a><br />
1 <a href="https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=d5bedadd-e46f-4c97-af89-22d65ffee070">Really Small Message Broker (RSMB)</a><br />
1 <a href="http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.java.git/">Eclipse Paho client library</a><br />
1 Andy Stanford-Clark!<br />
<br />
<b>Architecture:</b><br />
<br />
Andy has a very pervasive house with many devices set up to both tweet and publish messages based on events which occur to those devices. Furthermore, some devices can be controlled by sending messages to topics which they are monitoring, such as a pond fountain, an outdoor light and even a heated towel rail! The messaging design used was to bridge from the RSMB on the Pi to the existing message broker Andy has set up to monitor and controll his devices. Any messages sent from or received by either broker will be mirrored by the other via the bridge. This makes the remaining design on the Pi beyond the RSMB easy, as we can consider everything is local, to the RSMB. Neat! The visual and interactive side will be taken care of by a web application on the Liberty Profile app server, which connects to the RSMB via an eclipse open source MQTT client project called Paho.<br />
<br />
<b>My Method:</b><br />
<br />
I already had a Debian install with both the OpenJDK and IBM J9 JVM installed with my Liberty Profile application server, which I used to run the snoop servlet that I wrote about in a <a href="http://devangelist.blogspot.co.uk/2012/04/liberty-pi-running-websphere-on.html">previous post</a>, and also for a <a href="http://livestre.am/1UdCr">cool dynamic development demo for the new Liberty Profile I ran at the IBM Impact conference in May 2012</a>. My first step was to install, configure and run the RSMB. It doesn't currently run on the ARM architecture, so I needed to build the source on the Pi and it then just worked out the box, easy. Next I needed to create a broker.cfg file which had info to pointed to Andy's existing broker, such as IP address and port number, and also describe which topics I wanted to bridge. This is simply a list of topics with my intended actions, such as 'in' to listen. That's all I needed to do with the RSMB. <br />
<br />
My web application itself is a jsp and servlet based webapp which automatically refreshes itself every 5 seconds to keep the dashboard up to date. It bundles the Paho client library which it uses to connect to the RSMB and subscribe to a number of topics which passes messages of interest to the dashboard. The webapp stores info it requires locally in memory for history graphs such as energy consumption. This data is sent to the <a href="https://developers.google.com/chart/image/docs/chart_wizard">Google chart facility</a> (why on earth are Google deprecating this cool graphing function? Maybe someone can fill me in via comments). The application server config just has the one feature included, the jsp-2.2 feature, as that's all we need in this environment! This keeps the application server runtime nimble and fast with a low memory footprint.<br />
<br />
<b>Results:</b><br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/rH_SmgmyVUo" width="560"></iframe><br />
<br />
<b>So what's next?</b><br />
<br />
I've got a couple of things I want to play with next, I quite fancy connecting the Pi up to my current cost meter at home and to my TV as well and display a channel which shows my energy usage. If you have any ideas of what you'd like to see, let me know :o)<br />
<br />
For more info check out:<br />
<br />
WebSphere Liberty Profile <a href="http://wasdev.net/">http://wasdev.net</a><br />
Raspberry Pi - <a href="http://raspberrypi.org/">http://raspberrypi.org</a><br />
Eclipse Paho - <a href="http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.java.git/">http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.java.git/</a><br />
RSMB - <a href="https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=d5bedadd-e46f-4c97-af89-22d65ffee070">https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=d5bedadd-e46f-4c97-af89-22d65ffee070</a><br />
MQTT - <a href="http://mqtt.org/">http://mqtt.org</a><br />
<br />Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.com16tag:blogger.com,1999:blog-7530126026798191467.post-7908325097776871152012-04-24T21:34:00.004+01:002012-04-25T14:08:10.499+01:00Liberty Pi - Running WebSphere on the Raspberry Pi<div style="text-align: center;">
<br /></div>
Firstly, this is the coolest thing I've done at IBM :o) Working with
two technologies that are really interesting, innovative and just fun to
play with! So how did this all start…<br />
<br />
A while back, I got in contact with the great folks at Raspberry Pi,
Eben and Liz Upton, and told them I wanted to run a proof of concept demo
which runs lightweight software on lightweight hardware. They were keen
to get involved and sent me one of their little gems to play with. The
reasons I wanted to run the new Liberty Profile on the Raspberry Pi was
because I saw a lot of similarities in the goal of providing a
lightweight solution, an offering which developers would love to get
their hands on, and sheer innovation and determination to deliver a real
top class deliverable. <br />
<br />
A Raspberry Pi is essentially a business card/credit card sized
computer. They're a charity which have wonderful intentions to encourage
programming among school children with a really affordable computer.
Here's what's on it:
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.raspberrypi.org/wp-content/uploads/2011/07/raspi_blue_white.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="text-align: center;">
<img border="0" height="247" src="http://www.raspberrypi.org/wp-content/uploads/2011/07/raspi_blue_white.png" width="320" /></div>
<br />
<br />
<br />
The new Liberty Profile, which is part of WebSphere Application Server V8.5 offering, due for release June 15th 2012, has been designed around developer needs. As a result its a lightweight offering of the full WebSphere App Server that is composable, very fast and reactive to a developers needs. A download and install from scratch for example would take little over 3 minutes. This Liberty Profile still contains the top class containers and services full WAS profiles have used over the years. <br />
<br />
To show these two technologies off, I wanted to show both the Liberty Profile running on an extremely small device, as well as the Raspberry Pi running substantial software, including a Debian OS, full JVM and Application Server.<br />
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Here's the demo in action:</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/cBV4tgLgDwg" width="420"></iframe>
</div>
<br />
This is my first pass at running an environment on the Raspberry Pi, so comments and suggestions about what I could try next would be very interesting. I've already got a bunch of ideas i'm planning on trying but would love to hear your thoughts.<br />
<br />
In this first pass, I decided to run with the recommended Linux distribution, Debian. The Liberty Profile allows you to use your choice of JVM, from a supported list. However, as this was on an ARM architecture, choices were slightly limited. This time I decided to go for the OpenJDK. Liberty was a straight forward download and unzip from WASdev.net.<br />
<br />
Things I noticed straight away: <br />
Where has all my memory gone?!? 256MB has turned into 126MB straight away! Digging a little further shows that an amount of this is taken up by the GPU, and there seem to be workarounds to better allocate the memory for what I want. <br />
Wow, the X Server takes up 30% of my remaining memory! In the future I'll be switching to a more minimal runlevel to make better use of the resources the Pi comes with.<br />
<br />
Some of my planned next steps are to play with the J9 JVM on the Pi, upgrade to the released levels of the Liberty Profile and use a more interesting application.<br />
<br />
For more information about the Liberty Profile check out the WAS development community at <a href="http://wasdev.net/">WASdev.net</a>. For more info on the Raspberry Pi, see <a href="http://raspberrypi.org/">raspberrypi.org</a>.Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.com8tag:blogger.com,1999:blog-7530126026798191467.post-44243484516580881632012-02-24T11:58:00.000+00:002012-02-24T11:58:14.814+00:00Why the Liberty Profile is like the Millenium Falcon!!!First of all, the Liberty profile can start in under 12 parsecs! (yes, yes, yes, that's a measure of distance, but what Han says goes, OK! Besides, he shot first ;o) )<br />
<br />
I was stunned to see this video of the millennium falcon and how it took 3 years to animate, brick by brick. Absolutely amazing job by Francisco Prieto. <br />
<br />
<iframe allowfullscreen="" frameborder="0" height="225" mozallowfullscreen="" src="http://player.vimeo.com/video/36768371?title=0&byline=0&portrait=0" webkitallowfullscreen="" width="400"></iframe><br />
<a href="http://vimeo.com/36768371">Lego Millennium Falcon Stop Motion Assembly 3d</a> from <a href="http://vimeo.com/user10435815">Francisco Prieto</a> on <a href="http://vimeo.com/">Vimeo</a>.<br />
<br />
The chap who worked on the Lego Millennium Falcon build, Francisco Prieto, is clearly an uber determined person, with dedication and attention to detail plainly on show. I've been a privileged developer in my time at IBM, having worked with some equally dedicated, determined and smart folks in the Hursley lab. None more so than the team who have created the Liberty profile for WebSphere, a truly awesome lightweight, componentised developer focused offering that I'm proud to say I'm working on. <br />
<br />
The new lightweight OSGi kernel it sits on provides the base for the liberty profile to enable all the words which people like to hear, such as consumable :o) Basically, using OSGi you're able to create your server runtime to be bespoke to your application requirements. If it doesn't use a particular aspect, such as JSPs, why load it into the runtime? This is the componentised aspect similar to the lego build above which allows you to construct your finished server, as you want with componentised building bricks.<br />
<br />
So what are we talking about here when we say lightweight and fast? On my macbook pro, here are the stats:<br />
<br />
Download size: 26MB (Yep, that's twenty-six Meg!)<br />
Size on disk: 31.2MB<br />
Memory footprint: 70.9MB<br />
Start up time: 1-2 seconds<br />
Total download, install and start time: < 3.5 minutes (that's 210 seconds!)<br />
<br />
For proof it only takes 210 seconds to fully install the tools, runtime, create and start a new server, check out this non stop video:<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/Hl_hqgd4jOU" width="560"></iframe><br />
<br />
I hope you're impressed with the changes that have been made to the WebSphere offering! Don't forget to check out our new WASdev community (<a href="http://www.wasdev.net/">www.wasdev.net</a>) around Liberty, and join in to let us know what you think. You can <a href="https://www.ibm.com/developerworks/mydeveloperworks/blogs/wasdev/entry/download?lang=en">download</a> the Beta now and have a play. For more info, check out our <a href="https://www.ibm.com/developerworks/mydeveloperworks/blogs/wasdev/entry/learn?lang=en">education pages</a>.Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.com0tag:blogger.com,1999:blog-7530126026798191467.post-21372386109867982892012-02-10T13:16:00.001+00:002012-02-10T13:20:35.879+00:00Monki Gras drove me to bloggingYes, it's been a while since my last blog post, I've been very busy creating a new site for developers around the new Liberty Profile, <a href="http://wasdev.net/">wasdev.net</a>. That's no excuse though! I don't think I've ever blogged about a conference I've not been involved with on this blog site or any others, however, <a href="http://monkigras.com/">Monki Gras</a> has changed all that...<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://redmonk.com/monkigras/wp/wp-content/uploads/2012/01/monki-gras-2012-banner.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="184" src="http://redmonk.com/monkigras/wp/wp-content/uploads/2012/01/monki-gras-2012-banner.jpg" width="640" /></a></div><br />
<br />
<br />
Monki Gras is the second conference the guys at RedMonk have hosted, after the success of <a href="http://monktoberfest.com/">Monktoberfest</a> last year. They're technical conferences (Beer themed!) for developers that really do focus on community, technology and developer relations (and beer!). I haven't seen or been to a conference that compares to the awesomeness of Monki Gras and can't wait to go to the next one!!! I'm really pleased IBM decided to sponsor this conference in it's push for developer relations. Let's take a deeper look into what was on offer.<br />
<br />
<b>Sessions</b><br />
<br />
The content for the conference was nothing short of amazing. The caliber of the speakers was excellent, ranging from the technical insights of lanyrd founder @simonw to the OS community experiences of Jenkins creator @kohsukekawa. My personal top three sessions were:<br />
<br />
at 3: Why most UX is shite - http://www.slideshare.net/leisa/why-most-ux-is-shite - Leisa Reichel @leisa<br />
Leisa gave a great overview of what needs to be clearly thought out to give users the best out of their potentially brief experience with your site/community/product. It wasn't a typical presentation about details required to make a UI pretty and usable, rather a back to basics trying to get people in the right mindset of what you need to be thinking about to then go on to create a great UI/UX. This is an area which I am quite passionate about learning and changing in my role to help with developer adoption of projects. Great presentation!<br />
<br />
at 2: Kitteh vs. Chikin: What Data Can Tell Us About Who We Are and Who We Want to Be. - http://www.slideshare.net/mattlemay/kitteh-vs-chikin-what-data-can-tell-us-about-who-we-are-and-who-we-want-to-be-monktoberfest-2011 - Matt LeMay @mattlemay<br />
A really entertaining presentation with some very interesting social stats contrasting what people share and what people click, including the now infamous kitteh/chikin analogy!<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglmGjMbR-9KRJIFzHM9BaxDH-c_7zbTLzaOSXniPMXux452X5xTliIu-Wz7fvkCdstmlUcPae1dsDPkM2Cih8nvM7zgVh0SkOA3r9Aejda5uAcNeaKQc6FL_BhOpM4xvN_VL1DLb5J8gw/s1600/kitteh.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="236" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglmGjMbR-9KRJIFzHM9BaxDH-c_7zbTLzaOSXniPMXux452X5xTliIu-Wz7fvkCdstmlUcPae1dsDPkM2Cih8nvM7zgVh0SkOA3r9Aejda5uAcNeaKQc6FL_BhOpM4xvN_VL1DLb5J8gw/s320/kitteh.tiff" width="320" /></a></div><br />
<br />
at 1: Creating a developer community - http://www.slideshare.net/kohsuke/building-developer-community - Kohsuke Kawaguchi, @kohsukekawa<br />
Kohsuke gave some great insight about what he learnt in creating the community for Jenkin, including how everyone starts as a visitor and it's the interactions with the community that turns the visitor to a user and a user into a developer. There are of course many pitfalls, including UX which prevent these transitions such as crappy download sites/pages, installation guides and getting started pages that are far too big. A really good session about lowering the barrier to entry for a community.<br />
<br />
<b>Lunch</b><br />
<br />
The attention to detail was really good throughout the conference, including great coffee (couldn't find a link - maybe someone could send me their details), great Japanese food, and amazing pastries! This may sound a bit silly, but trust me, it was epic.<br />
<br />
<b>Beer!</b><br />
<br />
The link between craft beer and craft software/development was rarely too far away during sessions. As a keen beer drinker :) I certainly appreciated what was on offer, although I didn't stay overnight in London, as I'm on baby alert, so had to stay relatively sober :)<br />
<br />
Well done to James Governor for what I understand is the first conference he has organised! Not a bad start, lets see if he can do better next time ;o) Hope to see you there!Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.com0tag:blogger.com,1999:blog-7530126026798191467.post-74151074553492305872011-10-07T18:39:00.000+01:002011-10-07T18:39:50.995+01:00Announcing the WAS V8.5 alphaThe year was 1911. While most were trying to understand how to create accounting machines and punch card readers, one man had a vision. He created a company with the sole intent of constructing a lightweight, fast, consumable application server that was so fast and easy to use, a developer could run it on even the slowest of punch card readers. "The server must start within 5 seconds" he exclaimed! "The server footprint cannot be bigger than 50 megabytes!" he mandated. While some of his more forward-thinking colleagues questioned how a production-ready server with such strong enterprise qualities of services could run in just 50 MB of space, others were puzzled by what an application server was and baffled by this talk of a "megabyte". They called him a dreamer and questioned whether this was even possible. "I want this application server technology to be available, even if it takes a hundred years!" he replied.<br />
<br />
The rest is a history that is very much left out of the IBM Centenary literature. However, WebSphere Application Server V8.5 Alpha provides all this and more, using the new Liberty profile. Want to know more? Why not take a look round this new development community, <b><a href="https://www.ibm.com/wasdev">WASdev</a></b>. You can <a href="https://www.ibm.com/developerworks/mydeveloperworks/blogs/wasdev/entry/download?lang=en"><b>download</b></a> the alpha server and tooling. We'd love you to let us know what you think on our <a href="https://www.ibm.com/developerworks/mydeveloperworks/blogs/wasdev/entry/participate?lang=en"><b>forums</b></a>, and to collaborate with us to help create a next generation development platform that works for you.Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.com0tag:blogger.com,1999:blog-7530126026798191467.post-75358089561682630332011-06-23T09:44:00.001+01:002011-06-23T09:46:45.096+01:00The link between WebSphere Application Server Community Edition and Apache GeronimoIn previous posts I've written on this blog, such as <a href="http://devangelist.blogspot.com/2011/03/get-osgi-samples-running-on-your.html">Get OSGi samples running on your machine in 10 minutes</a> and <a href="http://devangelist.blogspot.com/2011/04/osgi-bundle-lifecycles.html">OSGi Bundle Lifecycles</a> I've referred to Apache Geronimo as the light weight application server I've been using. Geronimo is an open source application server that consumes the <a href="http://aries.apache.org/">Apache Aries project</a>. However the food chain does not stop there. An IBM product called WebSphere Application Server Community Edition consumes the Geronimo project. So what can we infer from this food chain in the future? <br />
<br />
Well, Geronimo currently offers full support for the Java EE 6 and enterprise OSGi applications (via integration of Apache Aries). I asked <a href="https://www-304.ibm.com/connections/blogs/aim/date/201101?lang=en_us">Kevan Miller</a>, an IBMer who is the PMC Chair of Apache Geronimo and the WebSphere Application Server Community Edition Architect, to clarify the intent for the Community Edition product. Here's a slide Kevan often uses which carries a clear statement of WAS CE future intents.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiofQ_2-XXi2s7ezjpdI98WF5cczzrx__U8nDTn8AF2IcgqoqL9jtIYkp_KJlb1O3awhT251WgeODlJOAgAewOY_8xFwtFb5JCpZXzk6hJR6UakxO9yARtV81_xBmD4SQ1UxORtO_eFAao/s1600/slide.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiofQ_2-XXi2s7ezjpdI98WF5cczzrx__U8nDTn8AF2IcgqoqL9jtIYkp_KJlb1O3awhT251WgeODlJOAgAewOY_8xFwtFb5JCpZXzk6hJR6UakxO9yARtV81_xBmD4SQ1UxORtO_eFAao/s640/slide.PNG" width="640" /></a></div><br />
<br />
I'm looking forward to seeing these functions in WAS CE, particularly the Java EE 6 support and the new OSGi enterprise programming model to WAS CE, in the OSGi platform.<br />
<br />
IBM’s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM’s sole discretion. Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract. The development, release, and timing of any future features or functionality described for our products remains at our sole discretion.<br />
<div><br />
</div>Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.com0tag:blogger.com,1999:blog-7530126026798191467.post-29185259243894314252011-06-13T10:36:00.000+01:002011-06-13T10:36:41.171+01:00External Bundle RepositoriesAn external bundle repository is a location that can host a number of OSGi bundles and an xml file, which describes the bundles in the OSGi Bundle Repository. The xml file specifies the capabilities and requirements of a number of bundles together with their URLs. The bundles can live in the same location or different locations from the xml file.<br />
<br />
Apache Aries, WebSphere Application Server V7 + OSGi and SCA Feature Packs and WebSphere Application Server V8 all support external bundle repositories. However, a common frustration among those who use external bundle repositories is the creation of the repository. Emily Jiang, a member of our development team, recently developed a repository generation tool that's worth sharing (instructions can be found on the Apache Aries <a href="http://aries.apache.org/documentation/tools/repositoryGenerator.html">website</a>). The tool takes a list of URLs and generates a repository xml file describing the URLs. If the given URL is a local file directory, the tool will generate metadata for all valid bundles in that directory, which saves the user significant effort, as they do not need to explicitly list every bundle in the target directory. Subdirectories will be recursed for any bundles that exist higher in the directory structure.<br />
<br />
For more instruction about how to administer external bundle repositories, check out the docs for the WebSphere V8 beta infocenter: <a href="http://publib.boulder.ibm.com/infocenter/wasinfo/beta/index.jsp?topic=%2Fcom.ibm.websphere.osgi.express.doc%2Ftopics%2Fta_admin_obr.html">http://publib.boulder.ibm.com/infocenter/wasinfo/beta/index.jsp?topic=%2Fcom.ibm.websphere.osgi.express.doc%2Ftopics%2Fta_admin_obr.html</a><br />
<div><br />
</div>Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.com0tag:blogger.com,1999:blog-7530126026798191467.post-29013742531467683422011-05-18T15:47:00.000+01:002011-05-18T15:47:26.272+01:00New Enterprise OSGi YouTube video: Blueprint<span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family: inherit; line-height: 16px;">Blueprint provides a dependency injection framework for OSGi and was standardized by the OSGi Alliance in OSGi Compendium R4.2. It is designed to deal with the dynamic nature of OSGi, where services can become available and unavailable at any time.</span><br />
<span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family: inherit; line-height: 16px;"><br />
</span><br />
<span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; line-height: 16px;">A <a href="http://www.youtube.com/user/EnterpriseOSGi#p/u/6/ZWRASZEwNS8">new video</a> on the Enterprise OSGi YouTube channel gives a brief introduction to the Blueprint container. </span>Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.com0tag:blogger.com,1999:blog-7530126026798191467.post-22282137501387517812011-05-10T13:05:00.002+01:002011-05-10T13:08:34.401+01:00Contributing to the Enterprise OSGi YouTube channelI've uploaded a <a href="http://www.youtube.com/user/EnterpriseOSGi#p/u/6/q6E0fqWElrw">new video to the Enterprise OSGi channel</a>, contributed by @iocanel. The video demonstrates basic Karaf features.<br />
<br />
If you would like to contribute a video based around OSGi please contact me (@sjmaple/on this blog) and we can work to get it on the channel.Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.com0tag:blogger.com,1999:blog-7530126026798191467.post-75012174662695765402011-04-20T17:50:00.003+01:002011-04-20T22:35:22.577+01:00OSGi Bundle lifecyclesOne aspect of the OSGi model which distinguishes it from say Java EE, is the OSGi bundle lifecycle. During the last few OSGi sessions I have presented, the bundle lifecycle has always been of interest and has often been the source of many questions, so I thought I’d talk about it in a blog post :o). The easiest way of describing the model is to dive straight into the state diagram that describes the lifecycle. <br />
<div class="MsoNormal"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfPKZ7yROhFtW0a9NR5Ag7J797_vLytan-SmNDjFSPvsLk1x0L3N5QfjaVhjvuezLvZLrZ-DTcC7Mk0DhO1zH9shIhqH_k8BigRvU5nUkz2Xz0Tjj8g7EWI1CCZNUmvKB9R8C41yoVq_E/s1600/lifecycle.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="281" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfPKZ7yROhFtW0a9NR5Ag7J797_vLytan-SmNDjFSPvsLk1x0L3N5QfjaVhjvuezLvZLrZ-DTcC7Mk0DhO1zH9shIhqH_k8BigRvU5nUkz2Xz0Tjj8g7EWI1CCZNUmvKB9R8C41yoVq_E/s400/lifecycle.PNG" width="400" /></a></div><div class="MsoNormal"><br />
The diagram, as with any state transition diagram, shows the possible states an OSGi bundle can be in at any time within an OSGi framework, along with the possible transitions it could make to other states.</div><div class="MsoNormal"><br />
</div><div class="MsoNormal">There is one way into the state diagram (signified by the black blob at the top), and one end state (UNINSTALLED). These are the ways which a bundle enters and exits an OSGi framework.</div><div class="MsoNormal"><br />
</div><div class="MsoNormal">I’m going to use the Geronimo OSGi runtime that was created in an <a href="http://devangelist.blogspot.com/2011/03/get-osgi-samples-running-on-your.html">earlier blog post</a> to show a bundle going through the various lifecycle states (feel free to run on just the OSGi frameworks if you wish - although the commands will be subtly different). First, I’ll remove the bundles that were added in the last tutorial by running the following command from the <span style="font-size: small;"><span style="font-family: "Courier New",Courier,monospace;">/opt/geronimo/geronimo-tomcat7-javaee6-3.0-M1 </span>directory (alter the file locations to suit your dir structure).</span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal" style="font-family: "Courier New",Courier,monospace;"><span style="font-size: small;">./bin/deploy –u system –p manager undeploy org.apache.aries.samples.blog.jpa.eba</span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Right, we now have a clean deployment, so lets install a bundle out of the <a href="http://www.apache.org/dyn/closer.cgi/incubator/aries/org.apache.aries.samples.blog.jpa.eba-0.2-incubating.eba">aries blog sample</a>. Extract the bundles from the .eba file and install the biz bundle into the framework. Run the following command from within the Geronimo console:</div><br />
<div style="font-family: "Courier New",Courier,monospace;"><span style="font-size: small;">install file:///opt/geronimo/geronimo-tomcat7-javaee6-3.0-M1/org.apache.aries.samples.blog.biz-0.2-incubating.jar</span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">You should have been returned a bundle id. Type <span style="font-family: "Courier New",Courier,monospace;">list</span> and the biz bundle will now be the last in a long list of bundles. Notice it’s in INSTALLED state. We’ve reached the first state in the lifecycle diagram, above. If we try to resolve the bundle by running the <span style="font-family: "Courier New",Courier,monospace;">resolve</span> command, the bundle remains in the INSTALLED state as the current OSGi framework does not contain the required bundles to satisfy the biz bundle’s requirements. To check which dependencies the bundle is missing, try to start it by running <span style="font-family: "Courier New",Courier,monospace;">start <bundle id></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Lets now install the API bundle:</div><div class="MsoNormal"><br />
</div><div class="MsoNormal" style="font-family: "Courier New",Courier,monospace;">install file:///opt/geronimo/geronimo-tomcat7-javaee6-3.0-M1/org.apache.aries.samples.blog.api-0.2-incubating.jar</div><div class="MsoNormal"><br />
</div><div class="MsoNormal">If we view the list of bundles again we notice both our new bundles are in the INSTALLED state. However if we now try to resolve all bundles in the framework, by calling <span style="font-family: "Courier New",Courier,monospace; font-size: small;">resolve</span>. We notice that both bundles have now transitioned into the RESOLVED state. This means that the bundle dependencies from both bundles have been met by the existing bundles in the OSGi framework. </div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Install the final two bundles and resolve them:</div><div class="MsoNormal"><br />
</div><div class="MsoNormal" style="font-family: "Courier New",Courier,monospace;">install file:///opt/geronimo/geronimo-tomcat7-javaee6-3.0-M1/org.apache.aries.samples.blog.persistence.jpa-0.2-incubating.jar</div><div class="MsoNormal" style="font-family: "Courier New",Courier,monospace;"><br />
</div><div class="MsoNormal" style="font-family: "Courier New",Courier,monospace;">install file:///opt/geronimo/geronimo-tomcat7-javaee6-3.0-M1/org.apache.aries.samples.blog.web-0.2-incubating.jar</div><div class="MsoNormal"><br />
</div><div class="MsoNormal" style="font-family: "Courier New",Courier,monospace;">resolve</div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Next we can actually start the bundles, by running <span style="font-family: "Courier New",Courier,monospace;">start <bundle id></span> for each bundle in turn. Once all have been started, run the <span style="font-family: "Courier New",Courier,monospace;">list</span> command to ensure they are all in the ACTIVE state and then go to the <a href="http://localhost:8080/blog">blog sample webpage</a> to make sure the blog is running. You are also able to start a bundle from the installed state if it can resolve its dependencies. The framework will resolve the bundle first and then start it.</div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Right, so lets have a bit more of a play… lets stop a bundle and see what happens - First let’s stop the persistence bundle. We’d expect the server to get to the web content as the web bundle still exists, however it will likely fail much beyond that. Go to the <a href="http://localhost:8080/blog">webpage</a> again, and you should see an exception from the web bundle part of our application stating the <span style="font-family: "Courier New",Courier,monospace;">BloggingService</span> is unavailable. This is because the <span style="font-family: "Courier New",Courier,monospace;">BloggingService</span> requires another service that was provided by the persistence bundle and therefore no longer exists in the service registry. We should restart the persistence bundle and check the <a href="http://localhost:8080/blog">webpage </a>to ensure we're all working again.</div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Let’s now stop the API bundle, by calling<span style="font-family: "Courier New",Courier,monospace;"> stop <bundle id></span> and they try to access the <a href="http://localhost:8080/blog">webpage</a> again. Still working? OK, lets go a stage further and <span style="font-family: inherit;">uninstall</span> the API bundle, by calling <span style="font-family: "Courier New",Courier,monospace;">uninstall <bundle id></span>. Check the <a href="http://localhost:8080/blog" style="font-family: inherit;">webpage</a>… Still working? Good isn’t it :) This works because the consumer bundles that use the API bundle have previously cached the code it requires from it's dependencies, the API bundle. The API bundle does not register any services, so the other bundles will not miss them, meaning the app can continue to run without the API bundle existing in the environment until a refresh is called on the OSGi framework. The refresh wires up the new dependency map, refreshing the caches, which now will not include the API bundle. This test was designed to show that the dynamism of OSGi is in the services rather than the bundles. Yes, they are linked, without bundles there would be no services.</div><div class="MsoNormal"><br />
</div><div class="MsoNormal">We can also uninstall bundles that are in the ACTIVE state. Again, the framework will call stop on the bundle under the covers to get it into the RESOLVED state first and then uninstall the bundle. The bundle is then back to the black blob at the start of the lifecycle :o)</div>Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.com2tag:blogger.com,1999:blog-7530126026798191467.post-90063422121220160962011-04-05T11:38:00.000+01:002011-04-05T11:38:52.364+01:00Enforcing OSGi ModularityTom Watson is an IBMer based in the U.S. and a co-lead of the equinox project in eclipse. He has kindly put together a presentation for our EnterpriseOSGi YouTube channel on how OSGi uses modularity. Do go and take a look <a href="http://www.youtube.com/user/EnterpriseOSGi#p/u/5/oVcF-0P0IV4">here</a>.Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.com0tag:blogger.com,1999:blog-7530126026798191467.post-76025495143437629072011-03-31T18:36:00.000+01:002011-03-31T18:36:14.719+01:00Get OSGi samples running on your machine in 10 minutesI've seen a few blogs that show how to get Apache Geronimo up and running, followed by how to install the Apache Aries Blog sample to use the neat OSGi functionality. However, that's typically where it stops! So this post will hopefully be the end to end tutorial for a developer wanting to play with OSGi from scratch in about 10 minutes.<br />
<br />
Let's start from scratch... We're going to Install the Apache Aries Blog sample on Apache Geronimo. Not sure how many people already want to google 'Apache Aries' or 'Apache Geronimo', so I'll explain...<br />
<br />
<u>Apache Aries</u><br />
<br />
Apache Aries is a set of Java components that can be added to an existing OSGi framework, such as <a href="http://eclipse.org/equinox">equinox</a> or <a href="http://felix.apache.org/">felix</a>, to provide an OSGi developer with Enterprise functionality, which a typical EE developer would be used to, such as JNDI, JPA, Transactions etc. To read more on Apache Aries, visit <a href="http://aries.apache.org/">http://aries.apache.org</a><br />
<br />
<u>Apache Geronimo</u><br />
<br />
The Apache Geronimo project produces an application server runtime that uses other open source components to create a rich application environment. It provides application containers for Java EE applications and OSGi applications (via Apache Felix). One of the open source components it contains is Apache Aries. For more information about Geronimo, check out the project website <a href="http://geronimo.apache.org/">http://geronimo.apache.org</a>.<br />
<br />
So our picture of Geronimo so far is as follows:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7GBWVjRALH00PtLPtS6vp0ffxdQ3KmonTbeb-HsByIHEQg7qIrkb8lrnEa2Z7Qq5t4C6BCkKtvp_B94o8oYxiGkGGkKpo1w0AVpcJ88jn2HwI75qxelQJWjk35qbEGGdV_SRKSxjFsBo/s1600/geronimo.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7GBWVjRALH00PtLPtS6vp0ffxdQ3KmonTbeb-HsByIHEQg7qIrkb8lrnEa2Z7Qq5t4C6BCkKtvp_B94o8oYxiGkGGkKpo1w0AVpcJ88jn2HwI75qxelQJWjk35qbEGGdV_SRKSxjFsBo/s1600/geronimo.JPG" /> </a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: left;">Our OSGi bundles essentially run in the Apache Felix framework. However with the Apache Aries functionality that sits alongside the Felix framework, they are able to connect with some of the typical JEE functionality as well as use other OSGi application features.</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">You'll need a Java runtime installed on your machine (Make sure the JAVA_HOME and JRE_HOME system variables are set), but I assume you all mostly have this already. So start your stopwatches... Download Geronimo v3.0 M1, as this has the Apache Aries functionality, from <a href="http://geronimo.apache.org/apache-geronimo-v30-m1-release.html">http://geronimo.apache.org/apache-geronimo-v30-m1-release.html</a> you'll want one of the drivers from the "Non-Certified Web Container Releases" section. You can choose which web container you wish to use, I chose Tomcat. </div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">Once your download (65MB ish) is complete, gunzip and extract your tar to an appropriate location on linux or just unzip somewhere in windows. Your Geronimo server is ready to go! Simple as that (hopefully). To start your server, go to the "geronimo-tomcat7-javaee6-3.0-M1/bin" directory or equivalent and type "./geronimo run". (Ensure you have root privileges)</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">You should see this screen:</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFDAekatO9Py6GgdTSyQyzSroBSY4Sh40yTVc8lL4V6WT5tXcEwYyKBiozc1q9it-HLndKZNrbXIyDa1QTDeHEJnbWznoJ1bXcj4FaRUBJdNi5rarJkpjrh49SQaVKcl2PqOOvpHd01J4/s1600/Screenshot-root%2540royals%253A+-opt-geronimo-geronimo-tomcat7-javaee6-3.0-M1-bin-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="404" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFDAekatO9Py6GgdTSyQyzSroBSY4Sh40yTVc8lL4V6WT5tXcEwYyKBiozc1q9it-HLndKZNrbXIyDa1QTDeHEJnbWznoJ1bXcj4FaRUBJdNi5rarJkpjrh49SQaVKcl2PqOOvpHd01J4/s640/Screenshot-root%2540royals%253A+-opt-geronimo-geronimo-tomcat7-javaee6-3.0-M1-bin-1.png" width="640" /></a></div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">Don't get too excited yet though, as it processes a little more before you should start playing. Wait till you get to this screen:</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHSWUFcizfJYQzIuiHiTMAaDWiCa_v4hyTfBYuY4MX7cBlE4SKpZiET-1PWuPlCf1kqbHJG2gn0VKCE1mudQuQHkWbCiHome30rlR9HJPhq_M3Y7p3U-lpYlHXgOjQO2JK9gi4DxFqcko/s1600/Screenshot-root%2540royals%253A+-opt-geronimo-geronimo-tomcat7-javaee6-3.0-M1-bin.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="404" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHSWUFcizfJYQzIuiHiTMAaDWiCa_v4hyTfBYuY4MX7cBlE4SKpZiET-1PWuPlCf1kqbHJG2gn0VKCE1mudQuQHkWbCiHome30rlR9HJPhq_M3Y7p3U-lpYlHXgOjQO2JK9gi4DxFqcko/s640/Screenshot-root%2540royals%253A+-opt-geronimo-geronimo-tomcat7-javaee6-3.0-M1-bin.png" width="640" /></a></div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">Right, at this stage our Geronimo Application server is up and running as you can see from the last line of output. Hit enter to get a prompt back. We can see from this output that we have a few app modules installed including an EAR, a couple of RARs and some WAR files. Let's now install our own OSGi application.</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">We need to install a datasource for the application, so firstly, download a rar file that is used to install the datasource <a href="http://mirrors.ibiblio.org/pub/mirrors/maven2/org/tranql/tranql-connector-derby-embed-xa/1.6/tranql-connector-derby-embed-xa-1.6.rar">here</a>. This will be included in Geronimo in future versions. Next download the actual data source descriptor <a href="https://cwiki.apache.org/GMOxDOC30/apache-aries-sample-applications.data/aries-datasource.xml">here</a>. Once those files have been downloaded, put them in the root directory of your extracted Geronimo server. From a new command prompt, navigate to the geronimo rooot directory and run the following command, with the server running, to install the datasource:</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;"></div><pre class="code-java">./bin/deploy -u system -p manager deploy tranql-connector-derby-embed-xa-1.6.rar aries-datasource.xml</pre><pre class="code-java"></pre><div class="separator" style="clear: both; text-align: left;">We're now ready to install the application. Download the Apache Aries application binary from <a href="https://cwiki.apache.org/ARIES/downloads.html">https://cwiki.apache.org/ARIES/downloads.html</a>. I downloaded the Blog JPA app. Click the 'eba' link to download. With the .eba file in the root Geronimo directory, run the following command, again whilst the server is running:</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;"></div><div style="text-align: left;"><pre class="code-java">./bin/deploy -u system -p manager deploy org.apache.aries.samples.blog.jpa.eba-0.2-incubating.eba</pre></div><pre class="code-java"></pre><div class="separator" style="clear: both; text-align: left;">To view the blog sample, point your browser to <a href="http://localhost:8080/blog">http://localhost:8080/blog</a>. You should see the following:</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfxNvPemFo-ztEpSXJG4M2EsnJlMb65-kyoHFnwfsXDUhiFfOMnlH3TIayEU_a8TIBYb8dZN7nzzQnw6ArGELKZT6reQ2t7jyO8XAG4qjG6TFyn1CoyKTfc0YMLa_6ASj-Gj9esO22B2Q/s1600/Screenshot-Sample+Blog+-+Mozilla+Firefox%253A+IBM+Edition.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="328" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfxNvPemFo-ztEpSXJG4M2EsnJlMb65-kyoHFnwfsXDUhiFfOMnlH3TIayEU_a8TIBYb8dZN7nzzQnw6ArGELKZT6reQ2t7jyO8XAG4qjG6TFyn1CoyKTfc0YMLa_6ASj-Gj9esO22B2Q/s400/Screenshot-Sample+Blog+-+Mozilla+Firefox%253A+IBM+Edition.png" width="400" /></a></div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">Well, you've now got a running Geronimo server and Apache Aries Blog Sample running on your machine in (hopefully) about 10 minutes. Feel free to have a play around with this sample - It's not massively interesting but is fit for purpose :o) </div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">Lets now look under the hood in the runtime :o) From the Geronimo console, type 'list'. This returns the full list of bundles in the Geronimo framework, including system bundles. Quite a few, aren't there! At the end you'll see the blog bundles we just installed:</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimnM9FGhIy0Ios08otx0gbk9z-CtftKqn6F2-8aWkPl3HdIw907Q5Ed0d0BekCAPQ7pTR6oQUtPwUjEEM81eyMbl8In8XfY-cRY25wg0QEQcsyEiHEuTNDPySpazPVzugz1C9GkP_IN1I/s1600/Screenshot-root%2540royals%253A+-opt-geronimo-geronimo-tomcat7-javaee6-3.0-M1-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="404" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimnM9FGhIy0Ios08otx0gbk9z-CtftKqn6F2-8aWkPl3HdIw907Q5Ed0d0BekCAPQ7pTR6oQUtPwUjEEM81eyMbl8In8XfY-cRY25wg0QEQcsyEiHEuTNDPySpazPVzugz1C9GkP_IN1I/s640/Screenshot-root%2540royals%253A+-opt-geronimo-geronimo-tomcat7-javaee6-3.0-M1-2.png" width="640" /></a></div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">What we see above is a quite a bit of info on each bundle we have in the environment. Lets take the first bundle in the highlighted list and look at it in more detail. Important columns to mention are id, state and description columns. The first element is the bundle id. This is a unique number given to every bundle in the framework so that we can use the number in commands, like stopping and starting a bundle. The next element is the state of the bundle. 'Active' means the bundle has been started and can fully interact with other bundles. The description column at the end is how to visually see which bundle is which.</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;"></div><div class="separator" style="clear: both; text-align: left;">So, now you can play :o) hitting <tab> gets you a list of commands you can call from a geronimo prompt. Commands of interest from an OSGi perspective include headers, list, refresh, restart, start, stop, update, exports and imports. You can get more info about these commands by typing '--help' after the command, although they're all pretty straight forward.</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;"> </div>Given this is quite a long post already, I'm going to leave it there :o) Well done for those that got this far!! I'll follow up very soon with a blog post which really plays around with the bundles and pulls apart the blog sample.<br />
<br />
<br />
Please let me know how you got on (comment or tweet @sjmaple)Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.com0tag:blogger.com,1999:blog-7530126026798191467.post-83426809896116648112011-03-30T14:57:00.004+01:002011-03-30T15:13:58.935+01:00WebSphere User Group, Bedfont, UKLast week was the WebSphere User Group UK event held at Bedfont, UK. I helped to organise this with a group of other people on the WUG board. I'm pleased to say it was a great success and the sessions went down very well indeed among the 200-250 attendees<br />
<br />
If you'd like to see some of the foils, they will be uploaded <a href="http://www.websphereusergroup.org.uk/wug/downloads/31/">here </a>shortly.<br />
<br />
This year marked the 10th year of the UK WUG since Alan Chambers created the group back in 2001. We celebrated with an amazing cake, made for us by Cath at <a href="http://www.wishcakes.com/">www.wishcakes.com</a>. I know she did amazing cakes as she made our wedding cake!<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSppr00elbubXxdIQX3TKdLjPsgy0MzfsJJeBxCJPXBZ4b3tpT3tzGfRiRyGIoOVAHtc4AcQEVL5jdm9zEkdpMqjCfvYveP-2g2pjZGr4nQIstoJK5s8JW50TP3u9Qp73MveMUrdQ7FlQ/s1600/cake.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="236" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSppr00elbubXxdIQX3TKdLjPsgy0MzfsJJeBxCJPXBZ4b3tpT3tzGfRiRyGIoOVAHtc4AcQEVL5jdm9zEkdpMqjCfvYveP-2g2pjZGr4nQIstoJK5s8JW50TP3u9Qp73MveMUrdQ7FlQ/s320/cake.JPG" width="320" /></a></div><br />
I'm pleased to say that there were a good number of developers from Hursley attending, which allowed us to set up a helpdesk like stand where we had some great discussions with customers and we were able to show live demos on some of our new OSGi functionality in the <a href="https://www14.software.ibm.com/iwm/web/cc/earlyprograms/websphere/wsasoa/download.shtml">WAS v8.0 beta</a>.<br />
<br />
Feedback from our WUG members was very good. In general the <a href="http://www.websphereusergroup.org.uk/wug/meeting/31">timetable</a> and quality of sessions and speakers was Excellent/Very good on feedback forms. The day ended with a meet the experts panel with many great minds up on stage: (half the panel, pictured left to right - Andy Piper, Ian Robinson, Alasdair Nottingham, Leigh Williamson)<br />
<br />
<div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpfBWGMp5Hb9T0RPlwJw7TAtx_lebhsahUvOSTcgcsWfInx9g18ZclzsmnMqnMcFzywyYuYZAqJqa5LSgtW8wXNjaT7I0_TppJNRhgSeYWLOdChq3pyyZYLUDGRT9_9-vuMnTGQKy3Wco/s1600/meettheexperts.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="253" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpfBWGMp5Hb9T0RPlwJw7TAtx_lebhsahUvOSTcgcsWfInx9g18ZclzsmnMqnMcFzywyYuYZAqJqa5LSgtW8wXNjaT7I0_TppJNRhgSeYWLOdChq3pyyZYLUDGRT9_9-vuMnTGQKy3Wco/s320/meettheexperts.JPG" width="320" /></a></div><br />
<br />
If you're interested in WAS and haven't been to a WUG event before, I would strongly reccommend you attend. Meeting people and talking to others using WAS and IBMers between sessions are often as valuable as the sessions themselves! :o)Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.com1tag:blogger.com,1999:blog-7530126026798191467.post-40699518952646960142011-03-30T12:08:00.000+01:002011-03-30T12:08:17.621+01:00How OSGi can be dynamicA new video is now available at the Enterprise OSGi YouTube channel. In this new video, Valentin Mahrwald goes through the effects that removing a bundle in an OSGi environment can have in a dynamic OSGi framework.<br />
<br />
<br />
The new video can be seen <a href="http://www.youtube.com/user/EnterpriseOSGi?feature=mhsn#p/u/5/0SzIR-kLLow">here</a>Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.com0tag:blogger.com,1999:blog-7530126026798191467.post-35825570299931531752011-03-14T10:58:00.002+00:002011-03-14T11:11:07.748+00:00The Enterprise OSGi YouTube channel is a big hit!We've had some great responses from our new <a href="http://www.youtube.com/user/EnterpriseOSGi">Enterprise OSGi channel</a>. Notably the channel has had over 650 hits, and over 20 subscribers in under a week! I've still got a number of videos going through various stages of editing, some on WebSphere Application Server, some on the core OSGi technologies.<br />
<br />
Why not look at our <a href="http://www.youtube.com/user/EnterpriseOSGi#p/a/u/0/3vRmzqHiJBY">latest video</a> on the WAS v8.0 Beta, March refresh, which I <a href="http://devangelist.blogspot.com/2011/03/websphere-application-server-v80-beta.html">blogged about earlier today</a>.<br />
<br />
One of the responses I got was regarding video contributions from non-IBMers. I think this would be a great idea to build up an Enterprise OSGi community for us all to share knowledge and information through. If you would like to contribute to the channel, please get in contact with me, either via this blog or twitter @sjmaple and we can work on new content for the channel.<br />
<br />
Going forward, it'd be good to make the channel more technology focused rather than product based. (I'll put up the already recorded and edited WAS videos, which are already in the pipeline). Videos should be around 5 minutes in length and could include concepts, best practices or experiences of Enterprise OSGi.<br />
<br />
Thanks for your support, and I look forward to working with you to make this channel a success!Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.com1tag:blogger.com,1999:blog-7530126026798191467.post-82533415517858188282011-03-14T10:19:00.000+00:002011-03-14T10:19:39.346+00:00WebSphere Application Server v8.0 Beta, March refreshIBM have released a WAS v8.0 Beta refresh which includes some great new OSGi Applications functionality, including: In-place application update, a feature that allows administrators to manage and migrate their OSGi bundles at runtime, without application restart. Application extensions allow administrators to extend their applications at runtime with a Composite Bundle Archive (CBA), again with no application restart. There are also performance monitoring, security, session management, servlet 3.0 support for OSGi applications/components.<br />
<br />
To download the WAS v8.0 Beta and get playing with all the new features, visit the download site here -><br />
<a href="https://www14.software.ibm.com/iwm/web/cc/earlyprograms/websphere/wsasoa/download.shtml">https://www14.software.ibm.com/iwm/web/cc/earlyprograms/websphere/wsasoa/download.shtml</a>Simon Maplehttp://www.blogger.com/profile/01598225687431093637noreply@blogger.com0