tag:blogger.com,1999:blog-6374173041877848992016-10-29T07:35:01.218+00:00James Strachan's BlogRandom ramblings on Open Source, integration and other malarkeyJames Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.comBlogger134125tag:blogger.com,1999:blog-637417304187784899.post-91543904930236006812014-11-24T10:53:00.002+00:002014-11-24T10:53:12.395+00:00More blog posts now coming on Medium...I've started posting new blog posts on my <a href="https://medium.com/@jstrachan">medium account</a> instead as its got a much nicer writing experience and looks much neater. e.g.<br /><br /><ul><li><a href="https://medium.com/@jstrachan/fabric8-v2-docker-kubernetes-openshift-v3-and-jube-oh-my-4aadddf2037">Fabric8 V2, Docker, Kubernetes &amp; OpenShift V3 and Jube! Oh My!</a></li><li><a href="https://medium.com/@jstrachan/how-to-get-started-with-fabric8-on-kubernetes-22cf024e9b0a">How to get started with Fabric8 on Kubernetes</a></li></ul><br /><br />So please follow me on<a href="https://medium.com/@jstrachan">&nbsp;https://medium.com/@jstrachan</a> or on twitter (<a href="https://twitter.com/jstrachan">@jstrachan</a>). Feedback always appreciated. Cheers!James Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.com0tag:blogger.com,1999:blog-637417304187784899.post-78678599848295331002014-05-08T10:51:00.001+00:002014-05-08T10:51:31.269+00:00Micro Services the easy way with Fabric8<a href="http://martinfowler.com/articles/microservices.html">Micro Services</a> have received a <a href="http://davidmorgantini.blogspot.co.uk/2013/08/micro-services-what-are-micro-services.html">lot</a> of <a href="http://highscalability.com/blog/2014/4/8/microservices-not-a-free-lunch.html">discussion</a>&nbsp;of late. While its easy to argue the exact meaning of the term; its hard to deny there's a clear movement in the Java ecosystem towards micro services: using smaller, lighter weight and isolated micro service processes instead of putting all your code into monolithic application servers with approaches like <a href="https://dropwizard.github.io/dropwizard/">DropWizard</a>, <a href="http://projects.spring.io/spring-boot/">Spring Boot</a> and <a href="http://vertx.io/">Vert.x</a>. There are lots of <a href="http://fabric8.io/#/site/book/doc/index.md?chapter=microServices_md">benefits</a> of the micro services approach; particularly considering DevOps and the cloud.<br /><h3>Fabric8 is poly app server</h3>On the <a href="http://fabric8.io/">fabric8</a> project we're very application server agnostic; there are lots of pros and cons with using different application servers. The ideal choice often comes down to your requirements and your team's knowledge and history. Folks tend to prefer to stick with the application servers they know and love (or that their operations folks are happy managing) rather than switching; as all application servers require time to learn.<br /><br />OSGi is very flexible, modular and standards based; but the modularity has a cost in terms of learning and development time. (OSGi is kinda <i>marmite</i> technology; you tend to either love it or hate it ;). Servlet engines like Tomcat are really simple; but with very limited modularity. Then for those that love JEE there's WildFly and TomEE.<br /><br />In the fabric8 project we initially started supporting OSGi for managing things like <a href="https://www.jboss.org/products/fuse.html">JBoss Fuse</a>, <a href="http://karaf.apache.org/">Apache Karaf,</a> and <a href="http://servicemix.apache.org/">Apache ServiceMix</a>. If you use version&nbsp;1.0.x of fabric8 (which is included in JBoss Fuse 6.1) then OSGi is the only application server model supported.<br /><br />However in 1.1.x we're working hard on support for <a href="http://tomcat.apache.org/">Apache Tomcat,</a>&nbsp;<a href="http://tomee.apache.org/">Apache TomEE</a> and <a href="http://www.wildfly.org/">WildFly</a>&nbsp;as first class citizens in fabric8; so you can pick whichever application server model you and your team prefer; including using a mixture of container types for different services.<br /><h3>Fabric8 1.1.0.Beta5 now supports Java Containers</h3>I'm personally really excited about the new <a href="http://fabric8.io/#/site/book/doc/index.md?chapter=javaContainer_md">Java Container</a> capability which is now available in <a href="http://fabric8.io/#/site/book/doc/index.md?chapter=getStarted_md">version 1.1.0.Beta5 or later of fabric8</a>&nbsp;which lets you easily provision and manage&nbsp;<a href="http://fabric8.io/#/site/book/doc/index.md?chapter=microServices_md">java based Micro Services</a>.<br /><br />A Java Container is an alternative to using an application server; its literally using the java process using a classpath and main you specify. So there's no mandated application server or libraries.<br /><br />With pretty much all application servers you're gonna hit class loader issues at some point; with the Java Container in fabric8; its a simple flat class loader that you fully control. Simples! If things work in maven and your tests; they work in the Java Container (*); since its the same classpath - a flat list of jars.<br /><blockquote class="tr_bq"><i>* provided you don't include duplicate classes in different jars, where the order of the jars in the classpath can cause issues but thats easy to check for in your build).</i></blockquote>The easiest, simplest thing that could possibly work as an application developer is just using a simple flat class loader. i.e. using the java process on the command line like this:<br /><blockquote class="tr_bq"><span style="font-family: Courier New, Courier, monospace;">java -cp "lib/*" $MAINCLASS</span></blockquote>This then means that each micro service is a separate isolated container (operating system process) with its own class path so its easy to monitor and perform incremental upgrades of dependencies without affecting other containers; this makes version upgrades a breeze.<br /><br />However the problem with micro services is managing the deployment of all these java processes; starting them, stopping them, managing them, having nice tooling to view whats happening and performing <a href="http://fabric8.io/#/site/book/doc/index.md?chapter=rollingUpgrade_md">rolling upgrades</a> of changes. Thats where fabric8 comes to help! The easiest way to see is via a demo...<br /><h3>Demo</h3>Here's a <a href="https://vimeo.com/jbossdeveloper/review/94501138/a454729b62">screencast</a> I just recorded to show how easy it is to work with any Java project which has a maven build and a Java main function (a static main(String[] args) function to bootstrap the Java code. I use an off the shelf Apache Camel and Spring example; but really any Java project with an executable jar or main class would do.<br /><br /><iframe allowfullscreen="" frameborder="0" height="281" mozallowfullscreen="" src="//player.vimeo.com/video/94501138" webkitallowfullscreen="" width="500"></iframe> <br />For more background on how to use this and how all this works check the documentation on the <a href="http://fabric8.io/#/site/book/doc/index.md?chapter=javaContainer_md">Java Container</a>&nbsp;and&nbsp;<a href="http://fabric8.io/#/site/book/doc/index.md?chapter=microServices_md">Micro Services in Fabric8</a><u>.</u><br /><br />Please <a href="http://fabric8.io/#/site/book/doc/index.md?chapter=getStarted_md">take it for a spin</a> and <a href="http://fabric8.io/#/site/doc/community.html">tell us how you get on</a>. We love <a href="http://fabric8.io/#/site/doc/community.html">feedback</a> and <a href="http://fabric8.io/#/site/Contributing.md">contributions</a>!<br /><br />James Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.com3tag:blogger.com,1999:blog-637417304187784899.post-59717851489310263332014-02-08T11:01:00.001+00:002014-02-08T11:01:48.293+00:00Fabric8, JBoss Fuse and Apache Karaf versionsThis question came up on twitter and it wasn't a quick answer so thought I'd answer here.<br /><br />So right now <a href="http://fabric8.io/">fabric8</a> is aligned with the <a href="http://www.jboss.org/products/fuse">JBoss Fuse</a> 6.1 release thats coming out soon which is based on Apache Karaf 2.3.x (along with Apache Camel 2.12.x and&nbsp;Apache&nbsp;ActiveMQ 5.9.x).<br /><br />We've lots of production customers on Fuse 6.0; so are not yet ready to take a major update of Karaf (3.x) which has lots of major changes in it and we've not yet put it through our QA process. (3.0.0 hasn't been out 2 months yet so its still pretty new).<br /><br />As soon as the JBoss Fuse 6.1 release is out, fabric8 will move to support Karaf, <a href="http://tomcat.apache.org/">Tomcat</a>, <a href="http://wildfly.org/">WildFly</a> containers (hopefully <a href="http://vertx.io/">vertx</a> and <a href="http://www.eclipse.org/jetty/">jetty</a> too) along with stand alone JVMs like <a href="http://dropwizard.codahale.com/">DropWizard</a> and <a href="http://projects.spring.io/spring-boot/">Spring Boot</a> - in addition to its current support for <a href="http://fabric8.io/#/site/book/doc/index.md?chapter=processManager_md">managed processes</a>, <a href="https://www.openshift.com/quickstarts/jboss-fuse-61-early-access">OpenShift</a> and jclouds.<br /><br />We've migrated fabric8 to be completely based on Declarative Services and moved away from OSGi blueprint; as its leaner, meaner, avoids dynamic proxies and is easier to deal the asynchronous modular nature of OSGi as things are dynamically added and removed. An added benefit is the use of <a href="http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html">Felix DS annotations</a> lets us auto-generate nice stand alone OSGi tooling and fabric8 based fabric-aware tooling in <a href="http://hawt.io/">hawtio</a> for all of the services in fabric8).<br /><br />Ideally it'd be good to migrate fabric8 straight to Karaf 4.x (or whatever it ends up being called) thats based on pure Declarative Services; as it'd make the OSGi based distribution of fabric8 leaner &amp; meaner. But we'll see in a couple of months how things are looking in Karaf-land.<br /><br />We're very excited about fabric8 being completely poly-container; so we can use fabric8 to provision and manage&nbsp;Karaf,&nbsp;Tomcat, Wildfly &amp; vertx containers; stand alone JVMs along with working great with docker, OpenShift and jclouds - all with a lovely&nbsp;<a href="http://hawt.io/">hawtio</a>&nbsp;console for everything! Its going to totally rock! :)James Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.com5tag:blogger.com,1999:blog-637417304187784899.post-11689799538437556602013-12-04T08:38:00.002+00:002013-12-04T09:14:30.426+00:00Demo of Fuse 6.1 with Apache Camel and hawtio on OpenShiftHere's a <a href="http://vimeo.com/80625940">screencast</a> showing how to get started using <a href="http://www.jboss.org/products/fuse">JBoss Fuse</a> 6.1 Early Access release on <a href="https://www.openshift.com/">OpenShift</a> for creating integration solutions based on <a href="http://camel.apache.org/">Apache Camel</a> in the hybrid cloud (via <a href="https://www.openshift.com/products/online">OpenShift Online</a> for the public cloud or <a href="https://www.openshift.com/products/enterprise">OpenShift Enterprise</a> for on premise, or a combination of both).<br /><div><br /></div><iframe allowfullscreen="" frameborder="0" height="281" mozallowfullscreen="" src="//player.vimeo.com/video/80625940" webkitallowfullscreen="" width="500"></iframe> <br /><a href="http://vimeo.com/80625940">JBoss Fuse 6.1 Early Access</a> from <a href="http://vimeo.com/jbossdeveloper">JBoss Developer</a> on <a href="https://vimeo.com/">Vimeo</a>.<br /><br />Watch it on <a href="http://vimeo.com/80625940">vimeo for the HD version</a>.<br /><br />The screencast shows how to create and deploy EIP flows; change them, make rolling upgrades and visualise whats happening all from your web browser via the Fuse Console; which is implemented completely using the open source project <a href="http://hawt.io/">hawtio</a>.<br /><br />If you want to try it out for yourself (everyone gets 3 free gears on OpenShift online!), try this <a href="https://www.openshift.com/quickstarts/jboss-fuse-61-early-access">quickstart</a> or see the <a href="https://github.com/jboss-fuse/fuse-openshift-cartridge/blob/master/README.md">more detailed instructions</a>.<br /><br />I hope to create many more videos soon; showing many other aspects of Fuse on OpenShift (like creating A-MQ topologies, getting insight into whats really happening via <a href="http://elasticsearch.org/">ElasticSearch</a> and the API registry support among others). Until then, enjoy! Feedback always appreciated.James Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.com2tag:blogger.com,1999:blog-637417304187784899.post-35117092218426762142013-11-20T18:09:00.000+00:002013-11-21T10:54:19.184+00:00happy 1st birthday hawtio! Welcome to hawtio 1.2.0!Its exactly a year ago today I hacked the first commit of <a href="http://hawt.io/">hawtio</a>, the lightweight and modular HTML5 console for Java thats <a href="http://www.youtube.com/watch?v=YNSxNsr4wmA">hawt</a>. &nbsp;As Claus <a href="http://www.davsclaus.com/2013/11/happy-birthday-hawtio-1-year-old-today.html">just said</a>, Happy Birthday hawtio!<br /><br />Its been an amazing ride, its hard to believe its been just a year! A huge thanks to the hawtio team and everyone who's helped turn hawtio into a truly amazing console.<br /><br />hawtio's really growing up fast and getting more awesome by the day. It constantly surprises me the awesomeness the hawtio team keep on adding.<br /><br /><h3>Highlights of the year</h3>The highlights of the year for me are:<br /><br /><ul><li><a href="http://hawt.io/plugins/index.html">lots and lots of plugins</a> are now available for working with JVMs, JMX, logging and many frameworks like Apache Camel, Apache ActiveMQ, Infinispan, ElasticSearch and OSGi</li><li><a href="http://activemq.apache.org/activemq-590-release.html">Apache ActiveMQ 5.9.x</a>&nbsp;or later now ships with hawtio inside</li><li><a href="http://camel.apache.org/">Apache Camel</a> folks have effectively deprecated the old camel console in favour of hawtio</li><li><a href="http://www.jboss.org/products/amq">JBoss A-MQ</a> and <a href="http://www.jboss.org/products/fuse">JBoss Fuse</a> 6.1 is coming with hawtio as the default Fuse Management Console</li><li>hawtio works great stand alone or in most containers now like Apache Karaf, Apache Tomcat, Jetty and Widfly</li></ul><div>Pretty much all aspects of the console is pretty awesome already; here's a few edited highlights:</div><div><ul><li>in Camel we can visualise real time visualisations of running Camel routes inside a JVM, see the metrics update in real time, visually design camel routes, and trace or debug running routes</li><li>in ActiveMQ we can see all the queues, topics and metrics; create queues/topics, browse queues, on 5.9.x we can resend DLQ messages, move messages from a queue to another queue, delete messages, send messages and see destination consumer/producer diagrams. When using Fuse 6.1 we can <a href="http://macstrac.blogspot.co.uk/2013/10/a-sneak-peek-at-whats-coming-in-jboss.html">visually design clustered broker topologies</a> (e.g. for geographic store and forward networks).</li><li>in OSGi there is support for all main aspects; from viewing bundles, features, Config Admin, declarative services, viewing services, packages, dependency graphs, diagnosing class loading issues, navigating from bundle to maven metadata to source/javadoc, to using the Karaf shell from a browser.</li><li>when using JBoss Fuse 6.1 then hawtio becomes a full featured UI for <a href="http://macstrac.blogspot.co.uk/2013/10/a-sneak-peek-at-whats-coming-in-jboss.html">working with many containers in a fabric</a>; creating containers, editing profiles, looking inside runtimes, browsing logs etc.</li></ul><div>One of my personal favourite features: when using the insight-log library from Fuse (or when using Fuse), the <a href="http://hawt.io/plugins/logs/">log plugin</a> links all log statements and methods in each stack trace to the <i>exact</i> <i>line</i> of source code that generated the log statement or exception! Thats <i>hawt</i>!&nbsp;</div><div><br /></div><div>Or being able to search maven repositories and view versions, source or javadoc from inside the browser. Also the interactive developer help is pretty cute; so you can play around with all of hawtio's angularjs directives in the browser ;)<br /><br /></div><h3>Getting Started</h3><div>I don't think you truly understand how awesome hawtio is until you start using it really. So <a href="http://hawt.io/getstarted/index.html">get started today</a>!</div></div><div><br /></div><div>We <a href="http://hawt.io/contributing/index.html">love contributions</a> so please dive in and help; even if its just ideas for how to make things even more awesome.&nbsp;</div><div><br /></div><div>hawtio is built on <a href="http://angularjs.org/">AngularJS</a>; I've used many different UI and web frameworks over the years (most of them TBH) and I really can't recommend AngularJS highly enough. So if you fancy learning&nbsp;AngularJS,&nbsp;why not try hacking a new <a href="http://hawt.io/plugins/index.html">plugin</a> or adding some functionality to an existing plugin you like? There's <a href="https://github.com/hawtio/hawtio/issues?state=open">lots of ideas already</a> if you're not sure what to do.<br /><br />Check out the <a href="http://hawt.io/developers/index.html">developer guide</a> for more details on getting started and <a href="http://hawt.io/building/index.html">building the code</a>.<br /><br /></div><h3>hawtio 1.2.0 released!</h3><div>To celebrate hawtio's first birthday we've just released 1.2.0 today! It should be sync'd to maven central in the next hour or two.&nbsp;</div><div><br /></div><div>There are <a href="https://github.com/hawtio/hawtio/issues?milestone=4&amp;state=closed">407 issues fixed in this release</a> (most of them new features or improvements I might add!)</div><div><br /></div><div>So what are you waiting for?&nbsp;<a href="http://hawt.io/getstarted/index.html">Go get it while its hawt</a>!</div><div><br /></div><div>Don't cha wish your console was <a href="http://www.youtube.com/watch?v=YNSxNsr4wmA">hawt</a> like hawtio?</div>James Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.com0tag:blogger.com,1999:blog-637417304187784899.post-32385451565004165552013-10-10T10:59:00.004+00:002013-10-10T11:01:32.591+00:00a sneak peek at whats coming in JBoss Fuse 6.1I'm really excited about the forthcoming <a href="http://www.jboss.org/products/fuse">Fuse</a> 6.1 release as there's a ton of awesome new features which I've really wanted for some time and some really&nbsp;<i>hawt</i> tooling :).<br /><br />So here's a quick sneak peek, focussing mostly on the new version of the Fuse Management Console (which is now implemented by <a href="http://hawt.io/">hawtio</a>&nbsp;open source project).<br /><br /><h3>A-MQ</h3>First let me show you the <a href="http://www.jboss.org/products/amq">A-MQ</a> topology view which lets you view and create topologies of <a href="http://activemq.apache.org/">Apache ActiveMQ</a> brokers in your fabric.<br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-E8Je5Q2iB2k/UlZ8Yjng2SI/AAAAAAAAByQ/Ogjsm9ZMpkw/s1600/broker-topoloigy-4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="303" src="http://1.bp.blogspot.com/-E8Je5Q2iB2k/UlZ8Yjng2SI/AAAAAAAAByQ/Ogjsm9ZMpkw/s320/broker-topoloigy-4.jpg" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"></div><br /><div class="separator" style="clear: both; text-align: center;"></div>The green background is used to show the master broker (see the top row, the green master is on the left, the grey background container on the right is the slave). If in doubt, hover over the containers and the tooltip tells you whats going on or click on things to dive into the detail views.<br /><br />For containers which are inactive, the green play icon becomes an orange stopped icon (or you see the provisioning icons as containers startup, download, provision etc). This view is real time so you can watch containers startup (which can take a little while if you're using small gears on OpenShift ;).<br /><br />If you click on the connect icon inside each container box, it takes you straight inside that broker; so you can view the destinations &amp; see all the detailed metrics etc.<br /><br />Incidentally the numbers in green badges next to the profile names show the number of containers running versus the required target number (like the new profile screen shows - see example below - the Target (requirements) versus Count (actual) columns). Again the tooltip gives a detailed explanation if you're unsure<br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-IaZ7zg6xXB8/UlZ8X7V4lAI/AAAAAAAAByM/x3E6PUaNwrI/s1600/profiles-2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="303" src="http://3.bp.blogspot.com/-IaZ7zg6xXB8/UlZ8X7V4lAI/AAAAAAAAByM/x3E6PUaNwrI/s320/profiles-2.jpg" width="320" /></a></div><br /><br /><span id="goog_820903194"></span><span id="goog_820903195"></span><br />e.g. if you create a new broker config for a replicated broker; it by default creates a requirement for 3 containers to run for that profile (broker configuration); then you'd get a red icon until enough containers are running - and clicking the red badge takes you to the create containers page.<br /><br />On OpenShift we've an auto-scaler, so as you add a new broker configuration, the containers would spin up immediately once the configuration is saved and you can watch them visually spin up (cool eh!).<br /><div><br /></div>To setup your own broker topology click the + Broker button to add new broker configurations (Stand Alone, Master / Slave, N + 1 or Replicated) and define the groups of brokers.<br /><br /><div>When using Fabric you can put brokers into groups (or 'regions'). A group is just a name (or a path "us/east" if folks prefer); its just a String which is used to look in the right bit of ZooKeeper to find the brokers to connect to. So it can be a tree; though usually folks requirements are simple enough to just have either 1 global region; or have, say, 3 for different geo locations.</div><div><br /></div><div>We can have a bunch of brokers in different groups, say, us-east, us-west, emea and messaging clients can then just use the right group name to connect to the right group of brokers. We use groups too for defining store/forward networks between groups. e.g. the us-east brokers may need to also store/forward with us-west brokers; they typically don't care which broker they connect to - but just need to connect to a broker within the right group.&nbsp;</div><div><br /></div><div>We can then create Fabric profiles for clients which are location specific. e.g. if you've a 'cheese' application (some web service or web app or whatnot) that needs to connect to A-MQ; we can have a cheese-us-east profile; which the only thing that profile does is it inherits from 'cheese' and just specifies the A-MQ group name of "us-east' to connect to.</div><div><br /></div><div>Longer term we hope to align the broker groups with OpenShift's DNS/applications; so folks not using Fabric at all can just have the regions mapped to DNS names; e.g. "broker-us-east-foo.rhcloud.com" would be the host name to connect to an A-MQ broker and under the covers it does the DNS / haproxy crack to connect you to the right broker - without requiring any magic on the client side (other than knowing the right DNS/host name for the right group).<br /><br /></div><h3>Dashboards</h3><div>Also new in 6.1 is profile specific dashboards; so you can create custom dashboards for any profile which is based on the services running in that exact profile (i.e. a specific group of containers); then any container you connect to via the Fuse Management Console you get a nice easy view of the right things you want to see for that kind of profile.&nbsp;</div><div><br /></div><div>e.g. here's the default real time dashboard:</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-kwN9YUi_J18/UlZ8ZLCvALI/AAAAAAAAByc/gSz2JfzV8og/s1600/welcome-dashboard-2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="207" src="http://4.bp.blogspot.com/-kwN9YUi_J18/UlZ8ZLCvALI/AAAAAAAAByc/gSz2JfzV8og/s320/welcome-dashboard-2.jpg" width="320" /></a></div><div><br /></div><div>you can resize, move and add/edit/delete views in the usual way. Pretty much any UI in Fuse Management Console (which includes all the <a href="http://hawt.io/plugins/index.html">hawtio plugins</a>) can be used as a rectangle on the dashboard; so you could add camel route metrics, log file searches or whatever).</div><div><br /></div><div>Dashboards are then versioned and stored with all the other configuration. Which brings me to the configuration side...</div><div><br /></div><h3>Configuration gets git hawtness</h3><div><a href="http://fuse.fusesource.org/fabric/">Fuse Fabric</a> is designed to make it really easy to manage large clusters of containers in a simple way; so you can group containers into <i>profiles</i>. Then you can configure the profile &amp; choose the exact deployment artefacts once and all the containers are updated immediately. You can use profile inheritance so you can configure groups of containers differently; e.g. use regional changes to some configuration values; increase the RAM/cache/disk usage settings on bigger boxes etc.</div><div><br /></div><div>Finally you can <i>version</i> your profiles; so that rather than changes to a profile becoming immediate on all containers; you can create a new version; edit the profiles - then perform a <i>rolling upgrade</i>; choose which containers to upgrade, try them for a while, if things look good, roll more containers to the new version - or rollback if things go bad.</div><div><br /></div><div>In Fuse 6.1 we have support for working with the configuration using the <a href="http://git-scm.com/">git</a> source control system and its associated tools. This means that all changes to configuration, deployment units, dashboards, the wiki, camel routes and broker topologies all has a nice audit log of who changed what when; its easy to use all the available git tools to do diffs and revert changes, merge between branches/repos etc.&nbsp;</div><div><br /></div><div>This means the configuration can work nicely with <i>Continuous Integration</i> and <i>Continuous Deployment</i> systems (e.g. using <a href="https://code.google.com/p/gerrit/">gerrit</a> and <a href="http://jenkins-ci.org/">jenkins</a>). e.g. define all your profiles and configuration in development; then through Continuous Integration and Continuous Deployment builds and code review systems like gerrit, merge changes from development -&gt; integration test -&gt; soak test -&gt; production etc.<br /><br /></div><h3>Using git with Fuse 6.1</h3><div>If you view any container's page like below and click on the <i>URLs</i> tab:</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-pcdXkRec5v4/UlaCwFH-9YI/AAAAAAAAByo/H59NcBmKQpo/s1600/container.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="133" src="http://4.bp.blogspot.com/-pcdXkRec5v4/UlaCwFH-9YI/AAAAAAAAByo/H59NcBmKQpo/s320/container.png" width="320" /></a></div><div><br /></div><div>it shows the git url; so just do a git clone of that; then checkout the branch for the version you want to work with. (In 6.1 of Fuse, a <i>version</i>&nbsp;maps to the name of a branch in git).</div><blockquote class="tr_bq"><span style="font-family: Courier New, Courier, monospace;">git clone http://localhost:8181/git/fabric<br />cd fabric<br />git checkout -t origin/1.0<br />ls -al fabric/profiles</span></blockquote><div>you can then hack on the profile data using any editor you like (they are just folders of config files) then commit and git push to make the changes active! Or make your own branches and so forth.</div><div><br /></div><div>Whats really cool is that the wiki (where you can document all your applications and profiles) is versioned in the same git repository as your dashboards and configuration. So if you add a new version of a service in a new version of a profile; the dashboard can be updated to show new metrics; then whatever version is running you see the right wiki, documentation and dashboard for the exact version!<br /><br /></div><h3>Camel editor and debugger included</h3><div>Last but not least; 6.1 includes web based editing, viewing (with real time metrics and debugging of camel routes. The camel routes can be versioned in profiles; so you can do rolling upgrades of your camel routes with all changes audited and browsable in a git repository.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-A_e_ufue3zw/UlZ8Xh0BIiI/AAAAAAAAByI/7V94gGQ9ZZM/s1600/camel-2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="303" src="http://3.bp.blogspot.com/-A_e_ufue3zw/UlZ8Xh0BIiI/AAAAAAAAByI/7V94gGQ9ZZM/s320/camel-2.jpg" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><h3>Summary</h3><div>No blogging for months and then I write a huge post, sorry! :)&nbsp;</div><div><br /></div><div>If the above was too long just think, Fuse 6.1 has an awesome improved web console (based on the&nbsp;<a href="http://hawt.io/">hawtio</a>&nbsp;open source project)&nbsp;and lets you work with all the configuration in git so all changes are audited and you can easily combine Fuse 6.1 with any git, Continuous Integration or Continuous Deployment tooling for all your provisioning &amp; configuration data.</div><div><br /></div><div>There's lots more 6.1; I'll have to try blog more often ;)</div><div><br /></div>James Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.com5tag:blogger.com,1999:blog-637417304187784899.post-38588550481440377542013-06-13T13:04:00.001+00:002013-06-17T07:28:08.242+00:00introducing the Apache Camel based open source iPaaSI've had a blast at CamelOne and Red Hat Summit in Boston; thanks for all the great speakers and feedback!<br /><br />I demo'd our new <a href="http://camel.apache.org/">Apache Camel</a> based <a href="http://www.gartner.com/it-glossary/information-platform-as-a-service-ipaas/">iPaaS</a> (i.e. our Camel Cloud or Fuse integration appliance). Here's a quick demo video of what I presented at my CamelOne keynote along with <a href="http://www.slideshare.net/strachaj/camel-one2013-presentationkeynote">the slides</a>.<br /><br />If you don't mind working on the bleeding edge here are the <a href="https://github.com/jboss-fuse/fuse/blob/master/readme.md">instructions for building and running it</a>, though we'll have the public stable early access release soon.<br /><br /><iframe allowfullscreen="" frameborder="0" height="356" marginheight="0" marginwidth="0" mozallowfullscreen="" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/22918475" style="border-width: 1px 1px 0; border: 1px solid #CCC; margin-bottom: 5px;" webkitallowfullscreen="" width="427"> </iframe> <br /><div style="margin-bottom: 5px;"><strong> <a href="http://www.slideshare.net/strachaj/camel-one2013-presentationkeynote" target="_blank" title="CamelOne Keynote: introducing the Apache Camel based open source iPaaS">CamelOne Keynote: introducing the Apache Camel based open source iPaaS</a> </strong> from <strong><a href="http://www.slideshare.net/strachaj" target="_blank">strachaj</a></strong> </div><br /><iframe src="http://player.vimeo.com/video/68442425" width="427" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe> <p><a href="http://vimeo.com/68442425">Camel in the cloud demo from CamelOne 2013</a> from <a href="http://vimeo.com/jbossdeveloper">JBoss Developer</a> on <a href="http://vimeo.com">Vimeo</a>.</p>James Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.com2tag:blogger.com,1999:blog-637417304187784899.post-84835399130085748872012-10-17T18:33:00.001+00:002012-10-18T08:37:14.422+00:00Fuse IDE 3.0 beta and questions I missed from the webinarI just gave a <a href="http://www.redhat.com/promo/jboss_integration_week/">webinar</a>&nbsp;as part of the <a href="http://www.redhat.com/promo/jboss_integration_week/">Red Hat Integration and BPM Week</a> on how <a href="http://fusesource.com/products/fuse-ide/">Fuse IDE</a> makes integration easy. If you missed it there should be an <a href="http://www.redhat.com/promo/jboss_integration_week/">archive up tomorrow</a>. There were a few questions I didn't get chance to answer (as usual I rambled and ran out of time ;-), so here they are...<br /><br />Firstly you can download the <a href="http://repo.fusesource.com/beta/rcp/3.0.54/">3.0 beta here</a> (you'll need your fusesource login) or the <a href="http://repo.fusesource.com/beta/3.0.x/">update site is here</a>. If you'd rather stick with the stable GA version get it from the <a href="http://www.redhat.com/fusesource/downloads/">download page</a><br /><br /><b>Questions:</b><br /><blockquote class="tr_bq">Does it have eclipse plugin? Can I get the same features using eclipse plugin? </blockquote>Yes; use the <a href="http://repo.fusesource.com/beta/3.0.x/">update site</a> to install the eclipse plugins for Fuse IDE into your eclipse; please use Indigo (3.7.x) and it works OK in JBoss 5.0.0.GA or vanilla eclipse java / jee. Doesn't yet support Juno though. Its easier to download the <a href="http://repo.fusesource.com/beta/rcp/3.0.54/">full RCP release</a> though :)<br /><blockquote class="tr_bq">what is the difference between fuseide and redhat developer?&nbsp;</blockquote>Fuse IDE was developed by FuseSource before the acquisition by Red Hat; so we'll be integrating them together into the Red Hat developer tools (JBoss Tools etc). Luckily there's a great fit between them with little overlap really! :)<br /><blockquote class="tr_bq">Does Fuse support monitoring and managing message flow when services running in Cluster (say JBoss AS 7.x cluster) </blockquote>Yes, any JVM which has a fairly recent Camel inside should work fine provided you can connect to it over JMX. The message tracing is only supported so far in the Fuse distribution of Camel (it should be back ported to the Apache distro soon). The newer the Camel version the better! :)<br /><blockquote class="tr_bq">Is the source for the examples downloadable from anywhere to have a play with?</blockquote>Yes. The easiest thing is to create the project inside Fuse IDE (New -&gt; Fuse Project -&gt; ...) and all the source code is included in the generated project; then you can just play immediately.<br /><br />Where this code comes from to get included inside Fuse IDE is all over the place :) Mostly either the <a href="https://github.com/apache/camel/tree/trunk/tooling/archetypes">Apache Camel project's archetypes</a> or the <a href="https://github.com/fusesource/fuse/tree/master/tooling/examples">Fuse projects examples</a>&nbsp;- so its easier to create the various projects and look inside the generated source.<br /><blockquote class="tr_bq">Nice! Current state of JBoss integration? When do I get to use all these goodies -- Eclipse/JBossTools w SwitchYard (esp SCA editor) and Fuse (esp Camel EIP editor) together -- + your runtime tooling on JBAS7.1 / CDI / SwitchYard deployments? </blockquote>You should be able to use JBoss tooling and Fuse IDE together right now; unfortunately Fuse IDE isn't yet compatible with the SwitchYard SCA tooling (due to Graphiti dependencies); which hopefully we can fix soon - but Fuse IDE works with JBoss Tools and already includes the Drools / jBPM tooling too.<br /><br />You should be able to use Fuse IDE today with JBoss Tools and AS 7.1; the more recent Camel version the better :). As an aside, the next Camel release should have awesome CDI support!<br /><blockquote class="tr_bq">Please comment on using IDE (JMX explorer) in a QA fabric. </blockquote>So the <a href="http://fuse.fusesource.org/fabric/index.html">Fuse Fabric</a> tooling in Fuse IDE is really intended for developers; though you could have a Fuse Fabric for development, testing, QA, load testing, performance testing, user acceptance testing or production etc. So long as you don't mind developers tinkering with endpoints &amp; routes; using developer tooling in QA is OK :)<br /><br />Though <a href="http://fusesource.com/products/fuse-management-console/">Fuse Management Console</a> is really intended for more locked down operation based environments; Fuse IDE is focussed on developers really.<br /><br /><blockquote class="tr_bq">What is roadmap for ide with merger?&nbsp;</blockquote><div>Immediately we need to improve the integration between the two sets of tooling to ensure they work very cleanly together &amp; allow SwitchYard tooling to be installed with Fuse IDE. Longer term I'd personally like to see tighter integration with Fuse IDE / Camel tooling with Drools rules &amp; jBpm but the road map has not yet been completed; we'll publish it when its ready.</div><div><blockquote class="tr_bq">Does Fuse support monitoring and managing message flow when services running in Cluster (say JBoss AS 7.x cluster)&nbsp;</blockquote></div><div>Yes. The Fuse IDE demo I showed focusses on looking inside 1 JVM at a time and all the stats are available on a per JVM basis along with the visualisation of running routes etc. If you want to see a consolidated view of multiple JVMs, then I'd advise you watch <a href="http://www.redhat.com/promo/jboss_integration_week/abstracts.html#fabric">Stan's talk on Fuse Fabric, Fuse Management Console and Fuse HQ</a> which shows how to use Fuse Fabric profiles to aggregate statistics together into unified metrics (which you can then fire alerts on etc).</div><div><br /></div><div><br /></div><div>Thanks again for all your questions! Sorry there were too many to answer in the webinar. Feedback always appreciated! Enjoy the Camel ride :)<br /><br /><br /><b>Update</b>: I should have mentioned if you want to use the beta, which uses the Early Access distros of Fuse, you unfortunately need to hack your ~/.m2/settings.xml file to reference our EA repo&nbsp;<span style="font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: x-small; line-height: 18.899999618530273px;"><a href="http://repo.fusesource.com/nexus/content/groups/ea/">http://repo.fusesource.com/nexus/content/groups/ea/</a></span><br /><span style="font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: x-small; line-height: 18.899999618530273px;"><br /></span><span style="font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: x-small; line-height: 18.899999618530273px;">e.g. here's how your <a href="https://gist.github.com/3908223">~/.m2/settings.xml could look</a></span><br /><br />This step will be go away in next months GA release - sorry about that! :)<br /><span style="font-family: Trebuchet MS, Verdana, Arial, sans-serif; font-size: x-small;"><span style="line-height: 18.899999618530273px;"><br /></span></span><br /></div>James Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.com3tag:blogger.com,1999:blog-637417304187784899.post-78009464661430138362012-06-27T20:23:00.002+00:002012-06-27T20:23:48.853+00:00Fuse team acquired by Red Hat!<br /><br />I am <a href="http://www.redhat.com/">Red Hat</a>! :) The <a href="http://fusesource.com/community/apache-committers-and-fuse/">Fuse team</a>&nbsp;<a href="http://fusesource.com/redhat/#press">has been acquired</a> by <a href="http://www.redhat.com/">Red Hat</a> into its JBoss middleware group. This immediately makes us the #1 open source integration and messaging stack (among other things!) providing a distributed ESB &amp; messaging system together with integrated data transformation, rules engine (BRMS), CEP, BPM &amp; registry - with full linux, storage, data services, CDI, web app &amp; JEE support too - all in a highly modular architecture; use the smallest &amp; simplest thing you need to get your job done.<br /><br />Our technology &amp; communities already overlap (e.g. <a href="http://camel.apache.org/">Apache Camel</a> &amp; <a href="http://cxf.apache.org/">Apache CXF</a> usage) &amp; already fit together pretty cleanly but over the next few years we'll be creating even better integration &amp; tooling with the <a href="http://jboss.org/">JBoss</a> team; and where it makes sense to do so we'll consolidate things together so we've a single modular open source stack for every integration &amp; messaging need either on premise or in the cloud, thats lightweight and easy to use.<br /><br />There's a ton of work to do but we're all really excited! I'm particularly looking forward to working with all the great folks at Red Hat, our awesome customers &amp; the various vibrant open source communities to make an even better open source integration &amp; messaging stack with great tooling &amp; cloud support. Expect lots of cool stuff&nbsp;soon! The future's very bright - and its red &amp; wears a hat ;)<br /><br />James Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.com2tag:blogger.com,1999:blog-637417304187784899.post-91157545965784448802011-11-14T22:17:00.001+00:002011-11-14T22:17:15.281+00:00Scalate 1.5.3 Released<div class='posterous_autopost'><p style="margin-bottom: 0px; color: rgb(102, 102, 102); font-family: Arial, Verdana, Helvetica, sans-serif; font-size: medium;">The <a href="http://scalate.fusesource.org/" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Scalate team</a> is pleased to announce the availability of Scalate 1.5.3</p> <p style="margin-bottom: 0px; color: rgb(102, 102, 102); font-family: Arial, Verdana, Helvetica, sans-serif; font-size: medium;">Scalate is a <a href="http://www.scala-lang.org/" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Scala 2.9.1</a> based <a href="http://en.wikipedia.org/wiki/Template_engine_(web)" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">template engine</a> which can be used stand alone, with servlets or web frameworks like <a href="http://scalate.fusesource.org/documentation/jog.html" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">JAXRS</a>, <a href="http://scalate.fusesource.org/documentation/lift.html" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Lift</a> or <a href="http://github.com/pk11/play-scalate" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Play</a> or in integration frameworks like <a href="http://camel.apache.org/scalate.html" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Apache Camel</a>.</p> <p style="margin-bottom: 0px; color: rgb(102, 102, 102); font-family: Arial, Verdana, Helvetica, sans-serif; font-size: medium;">The following template languages are supported through the same common API:</p><ul style="color: rgb(102, 102, 102); font-family: Arial, Verdana, Helvetica, sans-serif; font-size: medium;"> <li><a href="http://scalate.fusesource.org/documentation/ssp-reference.html#syntax" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Ssp</a> which is like a Scala version of <a href="http://velocity.apache.org/" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Velocity</a>, JSP or Erb from Rails</li> <li><a href="http://scalate.fusesource.org/documentation/scaml-reference.html" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Scaml</a> which is a Scala dialect of <a href="http://haml-lang.com/" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Haml</a> for very DRY markup along with the <a href="http://scalate.fusesource.org/documentation/jade.html" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Jade</a> syntax</li> <li><a href="http://scalate.fusesource.org/documentation/mustache.html" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Mustache</a> which is a Scala dialect of <a href="http://mustache.github.com/" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Mustache</a> for logic-less templates which also work inside the browser using <a href="http://github.com/janl/mustache.js" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">mustache.js</a></li> </ul><p style="margin-bottom: 0px; color: rgb(102, 102, 102); font-family: Arial, Verdana, Helvetica, sans-serif; font-size: medium;">All expressions inside <a href="http://scalate.fusesource.org/documentation/ssp-reference.html#syntax" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Ssp</a>, <a href="http://scalate.fusesource.org/documentation/scaml-reference.html" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Scaml</a> and <a href="http://scalate.fusesource.org/documentation/jade.html" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Jade</a> benefit from the full power and expressiveness of Scala plus they are typesafe and checked at edit/compile time to ensure you don&#39;t leave any mistakes in your templates.</p> <p style="margin-bottom: 0px; color: rgb(102, 102, 102); font-family: Arial, Verdana, Helvetica, sans-serif; font-size: medium;"><strong>Scalate 1.5.3 Highlights</strong></p><ul style="color: rgb(102, 102, 102); font-family: Arial, Verdana, Helvetica, sans-serif; font-size: medium;"> <li>Scalate now uses the <a href="https://groups.google.com/d/msg/scalate/3mrkmrXK7vs/7nBh96DPT4YJ" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Scala Presentation Compiler</a> to boost performance of template compilation 3-10X</li> <li>Support for compiling stand alone CoffeeScript files on the server, CoffeeScript filters and various CoffeeScript related bug fixes</li><li>A <a href="http://www.assembla.com/spaces/scalate/tickets/129" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">pure Java API</a> to working with Scalate</li> </ul><p style="margin-bottom: 0px; color: rgb(102, 102, 102); font-family: Arial, Verdana, Helvetica, sans-serif; font-size: medium;">For more detail see the <a href="http://www.assembla.com/spaces/scalate/milestones/531621-1-5-3" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Full Change Log</a></p> <p style="margin-bottom: 0px; color: rgb(102, 102, 102); font-family: Arial, Verdana, Helvetica, sans-serif; font-size: medium;"><a href="http://scalate.fusesource.org/community.html" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Feedback</a> is always welcome!</p> <p style="font-size: 10px;"> <a href="http://posterous.com">Posted via email</a> from <a href="http://implicit.ly/scalate-153-released">implicit.ly</a> </p> </div>James Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.com1tag:blogger.com,1999:blog-637417304187784899.post-8685953743473215102011-09-10T07:28:00.001+00:002011-09-10T07:28:14.056+00:00Scalate 1.5.2 Released<div class='posterous_autopost'><div style="border-collapse: collapse; color: rgb(68, 68, 68); font-family: arial, sans-serif; font-size: 13px;"><p style="margin-bottom: 0px; color: rgb(102, 102, 102); font-family: Arial, Verdana, Helvetica, sans-serif; font-size: medium;"> The <a href="http://scalate.fusesource.org/" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Scalate team</a> is pleased to announce the availability of Scalate 1.5.2</p><p style="margin-bottom: 0px; color: rgb(102, 102, 102); font-family: Arial, Verdana, Helvetica, sans-serif; font-size: medium;"> Scalate is a <a href="http://www.scala-lang.org/" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Scala 2.9.1</a> based <a href="http://en.wikipedia.org/wiki/Template_engine_(web)" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">template engine</a> which can be used stand alone, with servlets or web frameworks like <a href="http://scalate.fusesource.org/documentation/jog.html" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">JAXRS</a>, <a href="http://scalate.fusesource.org/documentation/lift.html" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Lift</a> or <a href="http://github.com/pk11/play-scalate" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Play</a> or in integration frameworks like <a href="http://camel.apache.org/scalate.html" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Apache Camel</a>.</p> <p style="margin-bottom: 0px; color: rgb(102, 102, 102); font-family: Arial, Verdana, Helvetica, sans-serif; font-size: medium;">The following template languages are supported through the same common API:</p><ul style="color: rgb(102, 102, 102); font-family: Arial, Verdana, Helvetica, sans-serif; font-size: medium;"> <li style="margin-left: 15px;"><a href="http://scalate.fusesource.org/documentation/ssp-reference.html#syntax" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Ssp</a> which is like a Scala version of <a href="http://velocity.apache.org/" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Velocity</a>, JSP or Erb from Rails</li> <li style="margin-left: 15px;"><a href="http://scalate.fusesource.org/documentation/scaml-reference.html" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Scaml</a> which is a Scala dialect of <a href="http://haml-lang.com/" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Haml</a> for very DRY markup along with the </li> <li style="margin-left: 15px;"><a href="http://scalate.fusesource.org/documentation/jade.html" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Jade</a> for even more DRY Scaml</li> <li style="margin-left: 15px;"><a href="http://scalate.fusesource.org/documentation/mustache.html" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Mustache</a> which is a Scala dialect of <a href="http://mustache.github.com/" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Mustache</a> for logic-less templates which also work inside the browser using <a href="http://github.com/janl/mustache.js" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">mustache.js</a></li> </ul><p style="margin-bottom: 0px; color: rgb(102, 102, 102); font-family: Arial, Verdana, Helvetica, sans-serif; font-size: medium;">All expressions inside <a href="http://scalate.fusesource.org/documentation/ssp-reference.html#syntax" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Ssp</a>, <a href="http://scalate.fusesource.org/documentation/scaml-reference.html" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Scaml</a> and <a href="http://scalate.fusesource.org/documentation/jade.html" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Jade</a> benefit from the full power and expressiveness of Scala plus they are typesafe and checked at edit/compile time to ensure you don&#39;t leave any mistakes in your templates.</p> <p style="margin-bottom: 0px; color: rgb(102, 102, 102); font-family: Arial, Verdana, Helvetica, sans-serif; font-size: medium;"><strong>Scalate 1.5.2 Highlights</strong></p><ul style="color: rgb(102, 102, 102); font-family: Arial, Verdana, Helvetica, sans-serif; font-size: medium;"> <li style="margin-left: 15px;">Server side compilation of CoffeeScript in the <a href="http://scalate.fusesource.org/documentation/jade-syntax.html#filters" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">:coffeescript filter</a> - many thanks for the <a href="https://github.com/scalate/scalate/pull/6" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">patch</a> Dag!</li> <li style="margin-left: 15px;">Provide a Scala 2.8.1 distribution of Scalate (version <strong>1.5.2-scala_2.8.1</strong>) for easier <a href="http://www.playframework.org/" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Play</a> integration and working with other Scala 2.8.x projects.</li> <li style="margin-left: 15px;">Minor improvements in the use of the ScalaCompiler to make it easier to support <a href="http://lifty.github.com/" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Lifty</a> as a plugin inside <a href="https://github.com/harrah/xsbt/wiki" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">SBT</a> - thanks for the help and welcome to the team <a href="https://github.com/mads379" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Mads</a></li> <li style="margin-left: 15px;">Fixed <a href="http://scalate.assembla.com/spaces/scalate/tickets/260" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">#260</a> : Scalate distro does not include all the jars required for textile support</li> </ul><p style="margin-bottom: 0px; color: rgb(102, 102, 102); font-family: Arial, Verdana, Helvetica, sans-serif; font-size: medium;">For more detail see the <a href="http://www.assembla.com/spaces/scalate/milestones/529481-1-5-2" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Full Change Log</a></p> <p style="margin-bottom: 0px; color: rgb(102, 102, 102); font-family: Arial, Verdana, Helvetica, sans-serif; font-size: medium;"><a href="http://scalate.fusesource.org/community.html" target="_blank" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Feedback</a> is always welcome!</p> </div> <p style="font-size: 10px;"> <a href="http://posterous.com">Posted via email</a> from <a href="http://implicit.ly/scalate-152-released">implicit.ly</a> </p> </div>James Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.com0tag:blogger.com,1999:blog-637417304187784899.post-9356043895288908942011-06-17T16:20:00.000+00:002011-06-17T16:20:44.339+00:00CamelOne and Scala eXchange were awesome!Its been a busy few weeks lately! 3 weeks ago we had <a href="http://fusesource.com/camelone2011/">CamelOne</a> which was a really great conference; one of the best I've been to for a while. Great talks &amp; conversations - loads of energy around the <a href="http://camel.apache.org/">Apache Camel</a> community.&nbsp;I'm already looking forward to the next one! We should have the various presentations from it online.<br /><br />I got the chance to demo the new beta of&nbsp;<a href="http://fusesource.com/products/fuse-ide-camel/">Fuse IDE</a>&nbsp;which is coming out soon; its packed with some really awesome features for working with <a href="http://activemq.apache.org/">ActiveMQ</a>, <a href="http://camel.apache.org/">Camel</a> and <a href="http://servicemix.apache.org/home.html">ServiceMix</a>. We're hard at work getting that ready...<br /><br />Then yesterday I had the pleasure of giving the day 2 keynote at <a href="http://skillsmatter.com/event/scala/scala-exchange-2011">Scala eXchange</a> in London. I had heaps of fun, met loads of the Scala folks I've only met online before (including <a href="http://twitter.com/#!/odersky">Martin</a>, finally!) &amp; even managed to get a few laughs in my talk (mostly at JSPs expense I think :). It was a very similar conference to CamelOne in many ways; heaps of fun, loads of energy &amp; passion around and lots of fun was had by all.<br /><br />My keynote was on the <a href="http://scalate.fusesource.org/">Scalate</a> template engine; there's <a href="https://wiki.scala-lang.org/display/SW/Scala+Exchange+2011+Resources#ScalaExchange2011Resources-Keynote%3AIntroducingScalate%2CTheScalaTemplateEngine">details</a> here or go straight to the <a href="http://www.slideshare.net/strachaj/introducing-scalate-the-scala-template-engine">slides</a> or <a href="http://skillsmatter.com/podcast/scala/talk-by-james-strachan">video</a>. The samples I used in the talk are in <a href="https://github.com/scalate/scalate/tree/master/samples/scalate-example/src/main/webapp">github</a>.James Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.com0tag:blogger.com,1999:blog-637417304187784899.post-58018127712469386462011-05-20T11:59:00.001+00:002011-05-20T12:02:24.372+00:00CamelOne, Fuse IDE, Fuse Fabric, oh my...I've been way too busy to blog for a while; will try to do better going forward.<br /><br />A little while ago we released the GA version of&nbsp;<a href="http://fusesource.com/products/fuse-ide-camel/">Fuse IDE</a>; folks seem to really like it. If you use <a href="http://camel.apache.org/">Apache Camel</a> I highly recommend you try it out - also check out <a href="http://janstey.blogspot.com/">Jon's</a> recent <a href="http://java.dzone.com/articles/open-source-integration-apache">article</a> on it.<br /><span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"></span><br /><div><a href="http://fusesource.com/products/fuse-ide-camel/" title="Fuse IDE"><br /><img alt="" border="0" id="BLOGGER_PHOTO_ID_5608414440701305298" src="http://4.bp.blogspot.com/-0EdYpQTJZPM/TdUXOBssIdI/AAAAAAAAAIc/v7mVjYsWRb4/s320/figure4.png" style="border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; display: block; height: 219px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: center; width: 320px;" /></a></div><div><div style="color: black; font-family: Times; font-size: medium; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><br /></div><div style="color: black; font-family: Times; font-size: medium; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">Since then we've been working hard on a bunch of cool new features for it; we'll be releasing the 1.2 beta next month &amp; its gonna rock even more :). I'm hoping to demo some of the newer features of Fuse IDE in my keynote at next weeks <a href="http://camelone.com/">CamelOne</a> conference.</div><div style="color: black; font-family: Times; font-size: medium; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><br /></div><div style="color: black; font-family: Times; font-size: medium; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">In parallel we've been working hard on <a href="http://fabric.fusesource.org/">Fuse Fabric</a>, open source software for weaving your application containers into an easy to configure, provision and manage system. Have a browse of the <a href="http://fabric.fusesource.org/documentation/user-guide.html">user guide</a> if you want to know more.</div></div><div><br /></div><div>Hopefully see you in Washington DC at&nbsp;<span class="Apple-style-span" style="color: black; font-family: Times; font-size: small; line-height: normal;"><a href="http://camelone.com/">CamelOne</a></span><span class="Apple-style-span" style="color: black; font-family: Times; font-size: small; line-height: normal;">&nbsp;next week?</span></div>James Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.com2tag:blogger.com,1999:blog-637417304187784899.post-15692755527720877112011-03-04T12:05:00.001+00:002011-03-04T12:07:04.913+00:00speaking at QCon, TSSJS, CamelOne, Scala eXchange, oh myI've a fairly busy speaking time coming up in the next couple of months. Here's my current schedule...<br /><ul><li><a href="http://qconlondon.com/">Q<span id="goog_1446132782"></span>Con London</a><span id="goog_1446132783"></span>, Wednesday 9th March @ 15:35 I'll be presenting "<a href="http://qconlondon.com/london-2011/presentation/Take+a+Ride+on+Camel">Take a Ride on Camel</a>"</li><li><a href="http://javasymposium.techtarget.com/">TSSJS Vegas</a>, &nbsp;Thursday 17th March @ 10:00 "<a href="http://javasymposium.techtarget.com/html/architecture.html#CIbsenCamel">Apache Camel: Tales from the Leading Camel Experts</a>" along with <a href="http://davsclaus.blogspot.com/">Claus Ibsen</a>. I think I'm gonna be on the <a href="http://javasymposium.techtarget.com/html/language.html#PanelJVM">Other languages on the JVM panel</a>&nbsp;at 3:55pm which sounds fun too</li><li><a href="http://camelone.eventbrite.com/">CamelOne</a>&nbsp;in DC, May 24th not exactly sure yet when I'll be speaking but expect a talk or two and a demo of <a href="http://fusesource.com/fuse/camel-beta/">Fuse IDE</a>&nbsp;at least :). I'll also be trying to get my copy of <a href="http://www.enterpriseintegrationpatterns.com/">Enterprise Integration Patterns</a> and <a href="http://www.manning.com/ibsen/">Camel in Action</a> signed by the authors - you're most welcome to try too! :)</li><li><a href="http://skillsmatter.com/event/scala/scala-exchange-2011">Skillsmatter Scala eXchange</a> in London Wed 15th-16th June.</li></ul><div>More details of other <a href="http://fusesource.com/">FuseSource</a> folks speaking <a href="http://fusesource.com/resources/news/">here</a>. If you're going to be at any of these conferences it'd be good to meet up and say hi!</div>James Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.com2tag:blogger.com,1999:blog-637417304187784899.post-35478863640587717772011-02-10T12:32:00.001+00:002011-02-10T12:32:25.383+00:00Scalate 1.4.0 Released<div class='posterous_autopost'><p style="margin-bottom: 0px;">The <a href="http://scalate.fusesource.org/" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Scalate team</a> is pleased to announce the availability of Scalate 1.4.0</p> <p style="margin-bottom: 0px;">Scalate is a <a href="http://www.scala-lang.org/" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Scala 2.8.1</a> based <a href="http://en.wikipedia.org/wiki/Template_engine_(web)" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">template engine</a> which can be used stand alone, with servlets or web frameworks like <a href="http://scalate.fusesource.org/documentation/jog.html" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">JAXRS</a>, <a href="http://scalate.fusesource.org/documentation/lift.html" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Lift</a> or <a href="http://github.com/pk11/play-scalate" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Play</a> or in integration frameworks like <a href="http://camel.apache.org/scalate.html" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Apache Camel</a>.</p> <p style="margin-bottom: 0px;">The following template languages are supported through the same common API:</p><ul><li><a href="http://scalate.fusesource.org/documentation/ssp-reference.html#syntax" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Ssp</a> which is like a Scala version of <a href="http://velocity.apache.org/" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Velocity</a>, JSP or Erb from Rails</li> <li><a href="http://scalate.fusesource.org/documentation/scaml-reference.html" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Scaml</a> which is a Scala dialect of <a href="http://haml-lang.com/" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Haml</a> for very DRY markup along with the <a href="http://scalate.fusesource.org/documentation/jade.html" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Jade</a> syntax</li> <li><a href="http://scalate.fusesource.org/documentation/mustache.html" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Mustache</a> which is a Scala dialect of <a href="http://mustache.github.com/" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Mustache</a> for logic-less templates which also work inside the browser using <a href="http://github.com/janl/mustache.js" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">mustache.js</a></li> </ul><p style="margin-bottom: 0px;">All expressions inside <a href="http://scalate.fusesource.org/documentation/ssp-reference.html#syntax" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Ssp</a>, <a href="http://scalate.fusesource.org/documentation/scaml-reference.html" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Scaml</a> and <a href="http://scalate.fusesource.org/documentation/jade.html" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Jade</a> benefit from the full power and expressiveness of Scala plus they are typesafe and checked at edit/compile time to ensure you don&#39;t leave any mistakes in your templates.</p> <p style="margin-bottom: 0px;"><strong>Scalate 1.4.0 Highlights</strong></p><ul><li>Upgraded to Scala 2.8.1</li><li><a href="http://www.assembla.com/spaces/scalate/tickets/211" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Added</a> new SBT plugins for precompiling templates and <a href="http://scalate.fusesource.org/documentation/siteGen.html" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">site generation</a></li> <li><a href="http://scalate.fusesource.org/documentation/siteGen.html" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Site generation</a> is <a href="http://www.assembla.com/spaces/scalate/tickets/196" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">now</a> available in the <a href="http://scalate.fusesource.org/documentation/tool.html" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">scalate command line tool and shell</a> and it also<a href="http://www.assembla.com/spaces/scalate/tickets/195" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">now</a> supports a simpler directory layout.</li> <li>Added pygmentize, css, and cdata filters</li><li>Added <a href="http://textile.thresholdstate.com/" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Textile</a> support and filters</li><li><a href="http://scalate.fusesource.org/documentation/mustache.html" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Mustache</a> can <a href="http://www.assembla.com/spaces/scalate/tickets/122" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">now</a> be used for creating layouts and refer to parts of the generated template by <a href="http://scalate.fusesource.org/documentation/mustache.html#Layouts" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">navigating the <strong>html</strong> section</a>.</li> <li><a href="http://scalate.fusesource.org/documentation/mustache.html" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Mustache</a> <a href="http://www.assembla.com/spaces/scalate/tickets/198" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">automatically</a> <a href="http://www.assembla.com/spaces/scalate/tickets/197" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">unwraps Option</a> types.</li> <li>Improved OSGi support</li></ul><p style="margin-bottom: 0px;">For more detail see the <a href="http://www.assembla.com/spaces/scalate/milestones/315531-1-4" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Full Change Log</a></p> <p style="margin-bottom: 0px;"><a href="http://scalate.fusesource.org/community.html" style="color: rgb(153, 0, 0); font-weight: bold; text-decoration: none;">Feedback</a> is always welcome!</p> <p style="font-size: 10px;"> <a href="http://posterous.com">Posted via email</a> from <a href="http://implicit.ly/scalate-140-released">implicit.ly</a> </p> </div>James Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.com0tag:blogger.com,1999:blog-637417304187784899.post-65723073599298670542011-01-28T17:45:00.001+00:002011-01-28T19:40:27.656+00:00Wanna try our Apache Camel developer tools for Enterprise Integration Patterns?When I first created&nbsp;<a href="http://camel.apache.org/">Apache Camel</a>&nbsp;one of my design goals was to let folks describe the&nbsp;<a href="http://camel.apache.org/enterprise-integration-patterns.html">Enterprise Integration Patterns</a>&nbsp;as easily as possible using concise and declarative domain specific languages instead of reams of confusing opaque bean configurations. &nbsp;So whichever the developer prefers, a DSL in&nbsp;<a href="http://camel.apache.org/dsl.html">Java</a>, <a href="http://www.blogger.com/"><span id="goog_267959950"></span>XML<span id="goog_267959951"></span></a>, <a href="http://camel.apache.org/scala-dsl.html">Scala</a>, <a href="http://camel.apache.org/groovy.html">Groovy</a>, <a href="http://camel.apache.org/ruby.html">Ruby</a> etc. It was always part of the plan to actually have a visual domain specific language too and we've finally created one.<br /><br />We're just starting the public beta of <a href="http://fusesource.com/fuse/camel-beta/">Fuse IDE for Camel</a>, our <a href="http://eclipse.org/">Eclipse</a> tool suite that lets you visually create, edit and configure <a href="http://camel.apache.org/enterprise-integration-patterns.html">Enterprise Integration Patterns</a>&nbsp;easily using <a href="http://camel.apache.org/">Apache Camel</a>&nbsp;and its huge selection of <a href="http://camel.apache.org/enterprise-integration-patterns.html">patterns</a> and <a href="http://camel.apache.org/components.html">components</a>.<br /><br />If you use&nbsp;<a href="http://camel.apache.org/">Apache Camel</a>&nbsp;or have always meant to give it a try then please&nbsp;<a href="http://fusesource.com/docs/developer/camel/beta/install_guide/index.html">install it</a>, take it for a spin and see what you think. We'd love to <a href="http://fusesource.com/forums/forum.jspa?forumID=13">hear your feedback</a> on the tool &amp; how we can improve it!<br /><br />We've lots of things planned for the tool; this is just the beginning...James Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.com0tag:blogger.com,1999:blog-637417304187784899.post-80292920961178446592010-12-13T10:03:00.000+00:002010-12-13T10:03:04.319+00:00Camel in Action is complete!Just in time for Christmas, my fellow <a href="http://fusesource.com/">FuseSource</a> colleages <a href="http://davsclaus.blogspot.com/">Claus</a> and <a href="http://janstey.blogspot.com/">Jon</a> have finished their excellent book, <a href="http://manning.com/CamelinAction">Camel in Action</a>. Congratulations guys!<br /><br />Its a great read &amp; highly recommended if you have integration problems you want to solve with the best of breed open source solutions.<br /><br />There's more <a href="http://davsclaus.blogspot.com/2010/12/camel-in-action-is-done.html">history and background in Claus's post</a> or to quote from Jon's <a href="http://janstey.blogspot.com/2010/12/camel-in-action-is-complete.html">post</a>...<br /><br /><br /><blockquote><a href="http://www.manning.com/ibsen/" style="line-height: 18px;"><span class="Apple-style-span" style="color: #223344; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: x-small;"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5548701747034496994" src="http://2.bp.blogspot.com/_JZEz3zQ95mA/TQDy1zSUn-I/AAAAAAAAAHI/qnElOBOavVo/s200/cia-small.jpg" style="border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(187, 187, 187); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(187, 187, 187); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(187, 187, 187); border-top-style: solid; border-top-width: 1px; cursor: pointer; float: left; height: 200px; margin-bottom: 10px; margin-left: 0px; margin-right: 10px; margin-top: 0px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; width: 165px;" /></span></a></blockquote><blockquote><br /></blockquote><blockquote>So we did it.&nbsp;<a href="http://manning.com/CamelinAction">Camel in Action</a>&nbsp;is headed to the press! Time for beers and all that, but first a little blog post :)</blockquote><blockquote><br /></blockquote><blockquote><span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;"><div>I had to actually search through my mail to find out when I started on this project. Turns out I got involved mid September 2009 which puts the time in about 15 months.&nbsp;<a href="http://davsclaus.blogspot.com/" style="color: #445566;">Claus</a>&nbsp;started before that so his month count is higher - poor guy ;) So it was a pretty big chunk of time for both of us but not too bad for a technical book I'm told.</div><div><br /></div><div>We set out to create something that the growing&nbsp;<a href="http://camel.apache.org/" style="color: #445566;">Apache Camel</a>community needed badly - a great reference for newbies and experts alike. I'd like to think we accomplished that goal. Seems the early access readers agree too.</div><div><br /></div><div>Thanks to all who were involved in producing this book. We had tons of very helpful reviewers,&nbsp;<a href="http://www.manning.com/" style="color: #445566;">Manning</a>&nbsp;staff, and even multiple foreword writers - there were a lot of people involved in creating this other than&nbsp;<a href="http://davsclaus.blogspot.com/" style="color: #445566;">Claus</a>&nbsp;or myself. Of course, we officially thanked the folks involved in the acknowledgements section so be sure to look there if you helped out :)</div><div><br /></div><div>I have yet to see anything other than a PDF copy of the book (which should be released tomorrow) so I'm really looking forward to when the print copies start showing up in 10 days!</div><div><br /></div><div>Also, feel free to use the "camel50" code for 50% off when ordering through&nbsp;<a href="http://manning.com/CamelinAction" style="color: #445566;">http://manning.com/CamelinAction</a></div></span></blockquote><div style="color: #333333; font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px;">Festive beers to both of you! :)&nbsp;</div>James Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.com0tag:blogger.com,1999:blog-637417304187784899.post-71213822813283196552010-10-26T12:29:00.000+00:002010-10-26T12:29:14.327+00:00Scala is awesome!I got caught unawares by Debbie from <a href="http://fusesource.com/">FuseSource</a> with her video camera and she managed to get me rambling about programming languages and what I thought of Scala.<br /><br />The sound is a bit quiet you might need to turn it up when Debbie's not talking :)<br /><br />Here's the <a href="http://www.youtube.com/watch?v=seBjpuP124Q">video</a> or try it embedded below:<br /><br /><br /><object height="250" width="400"><param name="movie" value="http://www.youtube.com/v/seBjpuP124Q?fs=1&amp;hl=en_GB"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/seBjpuP124Q?fs=1&amp;hl=en_GB" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="250"></embed></object>James Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.com4tag:blogger.com,1999:blog-637417304187784899.post-70523352390497094162010-10-25T15:04:00.000+00:002010-10-25T15:04:59.760+00:00FuseSource has launched!Rob has <a href="http://rajdavies.blogspot.com/2010/10/fusesource-has-launched.html">explained the background</a>&nbsp;along with Larry's&nbsp;<a href="http://www.masshightech.com/stories/2010/10/25/daily2-Progress-Software-spins-out-open-source-focused-FuseSource.html?ana=twt">interview</a>&nbsp;and Dana's&nbsp;<a href="http://briefingsdirect.blogspot.com/2010/10/fusesource-gains-new-autonomy-to-focus.html">podcast</a>&nbsp;much better than I could have.<br /><br />From a personal perspective I'm really excited about the future of FuseSource; we're growing fast, have some amazing customers &amp; a great team including the folks who created <a href="http://activemq.apache.org/">Apache ActiveMQ</a>, <a href="http://camel.apache.org/">Apache Camel</a> and <a href="http://servicemix.apache.org/">Apache ServiceMix</a> and now we have autonomy so we can stay nimble &amp; fast like a startup while we innovate and iterate to help our customers solve their integration problems with open source; all the while having the security of being backed by a large company. This is gonna be fun! :)James Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.com1tag:blogger.com,1999:blog-637417304187784899.post-30212046509519556722010-10-08T10:42:00.002+00:002010-10-25T14:47:00.340+00:00Scalate 1.3 Released<div class="posterous_autopost"><br /><div style="color: #666666; font-family: Arial, Verdana, Helvetica, sans-serif; margin-bottom: 0px; padding-left: 10px;">The&nbsp;<a href="http://scalate.fusesource.org/" style="color: #990000; font-weight: bold; text-decoration: none;">Scalate team</a>&nbsp;is pleased to announce the availability of Scalate 1.3.</div><div style="color: #666666; font-family: Arial, Verdana, Helvetica, sans-serif; margin-bottom: 0px; padding-left: 10px;">Scalate is a&nbsp;<a href="http://www.scala-lang.org/" style="color: #990000; font-weight: bold; text-decoration: none;">Scala 2.8</a>&nbsp;based&nbsp;<a href="http://en.wikipedia.org/wiki/Template_engine_(web)" style="color: #990000; font-weight: bold; text-decoration: none;">template engine</a>&nbsp;which can be used stand alone, with servlets or web frameworks like&nbsp;<a href="http://scalate.fusesource.org/documentation/jog.html" style="color: #990000; font-weight: bold; text-decoration: none;">JAXRS</a>,&nbsp;<a href="http://scalate.fusesource.org/documentation/lift.html" style="color: #990000; font-weight: bold; text-decoration: none;">Lift</a>&nbsp;or&nbsp;<a href="http://github.com/pk11/play-scalate" style="color: #990000; font-weight: bold; text-decoration: none;">Play</a>&nbsp;or in integration frameworks like&nbsp;<a href="http://camel.apache.org/scalate.html" style="color: #990000; font-weight: bold; text-decoration: none;">Apache Camel</a>.</div><div style="color: #666666; font-family: Arial, Verdana, Helvetica, sans-serif; margin-bottom: 0px; padding-left: 10px;">The following template languages are supported through the same common API:</div><ul style="color: #666666; font-family: Arial, Verdana, Helvetica, sans-serif;"><li><a href="http://scalate.fusesource.org/documentation/ssp-reference.html#syntax" style="color: #990000; font-weight: bold; text-decoration: none;">Ssp</a>&nbsp;which is like a Scala version of&nbsp;<a href="http://velocity.apache.org/" style="color: #990000; font-weight: bold; text-decoration: none;">Velocity</a>, JSP or Erb from Rails</li><li><a href="http://scalate.fusesource.org/documentation/scaml-reference.html" style="color: #990000; font-weight: bold; text-decoration: none;">Scaml</a>&nbsp;which is a Scala dialect of&nbsp;<a href="http://haml-lang.com/" style="color: #990000; font-weight: bold; text-decoration: none;">Haml</a>&nbsp;for very DRY markup along with the<a href="http://scalate.fusesource.org/documentation/scaml-reference.html#jade" style="color: #990000; font-weight: bold; text-decoration: none;">Jade</a>&nbsp;syntax</li><li><a href="http://scalate.fusesource.org/documentation/mustache.html" style="color: #990000; font-weight: bold; text-decoration: none;">Mustache</a>&nbsp;which is a Scala dialect of&nbsp;<a href="http://mustache.github.com/" style="color: #990000; font-weight: bold; text-decoration: none;">Mustache</a>&nbsp;for logic-less templates which also work inside the browser using&nbsp;<a href="http://github.com/janl/mustache.js" style="color: #990000; font-weight: bold; text-decoration: none;">mustache.js</a></li></ul><div style="color: #666666; font-family: Arial, Verdana, Helvetica, sans-serif; margin-bottom: 0px; padding-left: 10px;">All expressions inside&nbsp;<a href="http://scalate.fusesource.org/documentation/ssp-reference.html#syntax" style="color: #990000; font-weight: bold; text-decoration: none;">Ssp</a>,&nbsp;<a href="http://scalate.fusesource.org/documentation/scaml-reference.html" style="color: #990000; font-weight: bold; text-decoration: none;">Scaml</a>&nbsp;and&nbsp;<a href="http://scalate.fusesource.org/documentation/scaml-reference.html#jade" style="color: #990000; font-weight: bold; text-decoration: none;">Jade</a>&nbsp;benefit from the full power and expressiveness of Scala plus they are typesafe and checked at edit/compile time to ensure you don't leave any mistakes in your templates.</div><div style="color: #666666; font-family: Arial, Verdana, Helvetica, sans-serif; margin-bottom: 0px; padding-left: 10px;"><strong>Scalate 1.3 Highlights</strong></div><ul style="color: #666666; font-family: Arial, Verdana, Helvetica, sans-serif;"><li><a href="http://scalate.fusesource.org/documentation/scaml-reference.html#jade" style="color: #990000; font-weight: bold; text-decoration: none;">Jade</a>&nbsp;template syntax is now supported which is a dialect of&nbsp;<a href="http://haml-lang.com/" style="color: #990000; font-weight: bold; text-decoration: none;">Haml</a>&nbsp;or&nbsp;<a href="http://scalate.fusesource.org/documentation/scaml-reference.html" style="color: #990000; font-weight: bold; text-decoration: none;">Scaml</a></li><li>New&nbsp;<a href="http://scalate.fusesource.org/documentation/user-guide.html#using_scalate_as_servlet_filter_in_your_web_application" style="color: #990000; font-weight: bold; text-decoration: none;">Servlet Filter</a>&nbsp;which allows more flexible mapping of templates in a web application. For example you can have the request&nbsp;<em>/foo.xml</em>&nbsp;automatically bound to&nbsp;<em>/foo.xml.ssp</em>&nbsp;if the template exists letting you easily implement views without requiring a controller or routing in your MVC layer.</li><li><a href="http://scalate.fusesource.org/documentation/jspConvert.html" style="color: #990000; font-weight: bold; text-decoration: none;">JSP Converter</a>&nbsp;helps you migrate your existing JSP web application across to Scalate</li><li><a href="http://scalate.fusesource.org/documentation/htmlConvert.html" style="color: #990000; font-weight: bold; text-decoration: none;">HTML Converter</a>&nbsp;lets you migrate your existing HTML files easily to&nbsp;<a href="http://scalate.fusesource.org/documentation/scaml-reference.html" style="color: #990000; font-weight: bold; text-decoration: none;">Scaml</a>&nbsp;or<a href="http://scalate.fusesource.org/documentation/scaml-reference.html#jade" style="color: #990000; font-weight: bold; text-decoration: none;">Jade</a>&nbsp;for extra DRY markup</li><li><a href="http://scalate.fusesource.org/documentation/user-guide.html#dry" style="color: #990000; font-weight: bold; text-decoration: none;">DRY template imports, values and logic</a>&nbsp;thanks to Scalate Package objects which allow imports, values and methods to be shared across some or all of your templates to reduce noise inside your templates.</li><li><a href="http://scalate.fusesource.org/documentation/siteGen.html" style="color: #990000; font-weight: bold; text-decoration: none;">Site Generator</a>&nbsp;lets you generate static or dynamic websites using templates and/or wiki markup together with exporting wiki content from Confluence wikis to migrate to using git/svn as your wiki content repository. You can also use&nbsp;<a href="http://scalate.fusesource.org/documentation/siteGen.html#bootstrapping" style="color: #990000; font-weight: bold; text-decoration: none;">a common bootstrap approach</a>&nbsp;now across both static website generation and web applications - such as to configure wiki macros in a canonical way. We now eat our own dog food and generate this site using Scalate.</li><li>More filters and pipelines supported such as confluence as well as the existing markdown which are particularly useful for website generation (static or semi-static).</li><li>The&nbsp;<a href="http://scalate.fusesource.org/documentation/tool.html" style="color: #990000; font-weight: bold; text-decoration: none;">Scalate Tool</a>&nbsp;now comes with a full interactive shell with full tab completion to make it easier to use the tool either for ad hoc or interactive shell use.</li></ul><div style="color: #666666; font-family: Arial, Verdana, Helvetica, sans-serif; margin-bottom: 0px; padding-left: 10px;">For more detail see the&nbsp;<a href="http://scalate.assembla.com/spaces/scalate/milestones/208429-1-3" style="color: #990000; font-weight: bold; text-decoration: none;">Full Change Log</a></div><div style="color: #666666; font-family: Arial, Verdana, Helvetica, sans-serif; margin-bottom: 0px; padding-left: 10px;"><a href="http://scalate.fusesource.org/community.html" style="color: #990000; font-weight: bold; text-decoration: none;">Feedback</a>&nbsp;is always welcome!</div></div>James Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.com0tag:blogger.com,1999:blog-637417304187784899.post-22324040051305796242010-07-30T13:52:00.001+00:002010-07-30T13:52:29.686+00:00Scalate 1.2 Released<div class='posterous_autopost'><p>The <a href="http://scalate.fusesource.org/">Scalate team</a> is pleased to announce the availability of Scalate 1.2.</p> <p>Scalate is a <a href="http://www.scala-lang.org/">Scala 2.8</a> based <a href="http://en.wikipedia.org/wiki/Template_engine_%28web%29">template engine</a> which can be used stand alone, with servlets or web frameworks like <a href="http://scalate.fusesource.org/documentation/jog.html">JAXRS</a>, <a href="http://scalate.fusesource.org/versions/snapshot/blog/%28<a href="http://scalate.fusesource.org/documentation/lift.html">http://scalate.fusesource.org/documentation/lift.html</a>">Lift</a> or <a href="http://github.com/pk11/play-scalate">Play</a> or in integration frameworks like <a href="http://camel.apache.org/scalate.html">Apache Camel</a>.</p> <p>The following template languages are supported through the same common API:</p> <ul><li><a href="http://scalate.fusesource.org/documentation/ssp-reference.html#syntax">Ssp</a> which is like a Scala version of <a href="http://velocity.apache.org/">Velocity</a>, JSP or Erb from Rails</li><li><a href="http://scalate.fusesource.org/documentation/scaml-reference.html">Scaml</a> which is a Scala dialect of <a href="http://haml-lang.com/">Haml</a> for very DRY markup</li> <li><a href="http://scalate.fusesource.org/documentation/mustache.html">Mustache</a> which is a Scala dialect of <a href="http://mustache.github.com/">Mustache</a> for logic-less templates which also work inside the browser using <a href="http://github.com/janl/mustache.js">mustache.js</a></li> </ul> <p>All expressions inside <a href="http://scalate.fusesource.org/documentation/ssp-reference.html#syntax">Ssp</a> and <a href="http://scalate.fusesource.org/documentation/scaml-reference.html">Scaml</a> benefit from the full power and expressiveness of Scala plus they are typesafe and checked at edit/compile time to ensure you don’t leave any mistakes in your templates.</p> <p><b>Scalate 1.2 Highlights</b></p> <ul><li>Scalate now supports the <a href="http://scalate.fusesource.org/documentation/mustache.html">Mustache</a> template language which is a Scala dialect of <a href="http://mustache.github.com/">Mustache</a> for logic-less templates which also work inside the browser using <a href="http://github.com/janl/mustache.js">mustache.js</a>. Support for Mustache uses the same common Scalate API so it works with all the existing Scalate adapters such as servlets, <a href="http://scalate.fusesource.org/documentation/jog.html">JAXRS</a>, <a href="http://scalate.fusesource.org/versions/snapshot/blog/%28<a href="http://scalate.fusesource.org/documentation/lift.html">http://scalate.fusesource.org/documentation/lift.html</a>">Lift</a> or <a href="http://github.com/pk11/play-scalate">Play</a> and <a href="http://camel.apache.org/scalate.html">Apache Camel</a></li> <li>Scalate is <a href="http://scalate.assembla.com/spaces/scalate/tickets/70">now built</a> on top of <a href="http://www.scala-lang.org/node/7009">Scala 2.8.0 final release</a></li><li><a href="http://scalate.fusesource.org/documentation/scuery.html">Scuery</a> for jQuery style transformation of HTML or XHTML using CSS3 selectors</li> <li>the <a href="http://scalate.fusesource.org/documentation/console.html">console</a> can be more easily reused in your application <a href="http://scalate.assembla.com/spaces/scalate/tickets/105">without using WAR overlays</a> and templates can be loaded via the classloader to help make more modular web applications without relying on WAR overlays</li> <li><a href="http://scalate.assembla.com/spaces/scalate/tickets/94">improvements</a> in associating different template languages to files/URIs/strings/streams in a more flexible API</li><li><a href="http://scalate.assembla.com/spaces/scalate/tickets/108">various</a> <a href="http://scalate.assembla.com/spaces/scalate/tickets/109">improvements</a> in the accuracy of the mapping of scala compiler errors to positions in the template source file which are then shown and linked in the <a href="http://scalate.fusesource.org/documentation/console.html">console</a></li></ul> <p>For more detail see the <a href="http://scalate.assembla.com/spaces/scalate/milestones/191841-1-2">Full Change Log</a></p> <p><a href="http://scalate.fusesource.org/community.html">Feedback</a> is always welcome!</p> <p style="font-size: 10px;"> <a href="http://posterous.com">Posted via email</a> from <a href="http://implicit.ly/scalate-12-released">implicit.ly</a> </p> </div>James Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.com0tag:blogger.com,1999:blog-637417304187784899.post-91654708203172627002010-05-20T14:57:00.003+00:002010-05-20T15:05:09.067+00:00FUSE Community Day in Frankfurt May 25th<span class="Apple-style-span" style="font-family: 'Trebuchet MS', Verdana, Arial, sans-serif; font-size: 13px; color: rgb(51, 51, 51); line-height: 18px; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; font-size: small; "><span class="Apple-style-span" style="font-size: 11px; "><span class="Apple-style-span" style="font-family: Times; "><span class="Apple-style-span" style="font-size: medium; ">Along with <a href="http://davsclaus.blogspot.com/">Claus</a>, <a href="http://rajdavies.blogspot.com/">Rob</a> and others, I'll be speaking at the next <a href="http://form.fusesource.com/forms/registergermany2010" style="color: rgb(34, 51, 68); ">FUSE community da</a>y. If you're in the area please do pop along and say hi.</span></span></span></span><br /><br />It will be held on May 25th 2010 in Frankfurt, Germany. We start at 9:00 am and have a full packed day with great speakers.<br />At 4:30 pm its time for <i>"evaluation"</i> where you can join us for a drink and a <i>"one-on-one"</i> chat with the many great minds at <a href="http://fusesource.com/" style="color: rgb(34, 51, 68); ">FUSE</a> and network/mingle with the other participants.<br /><br />You can see the agenda which is listed on the <a href="http://form.fusesource.com/forms/registergermany2010" style="color: rgb(34, 51, 68); ">FUSE site</a>.<br /><blockquote style="margin-top: 0.75em; margin-right: 0px; margin-bottom: 0.75em; margin-left: 0px; border-top-width: 1px; border-right-width: 0px; border-bottom-width: 1px; border-left-width: 0px; border-top-style: dotted; border-right-style: dotted; border-bottom-style: dotted; border-left-style: dotted; border-top-color: rgb(187, 187, 187); border-right-color: rgb(187, 187, 187); border-bottom-color: rgb(187, 187, 187); border-left-color: rgb(187, 187, 187); padding-top: 5px; padding-right: 15px; padding-bottom: 5px; padding-left: 15px; color: rgb(85, 136, 102); line-height: 1.3em; ">Get the latest news on Apache ServiceMix, ActiveMQ, CXF, Camel.</blockquote><blockquote style="margin-top: 0.75em; margin-right: 0px; margin-bottom: 0.75em; margin-left: 0px; border-top-width: 1px; border-right-width: 0px; border-bottom-width: 1px; border-left-width: 0px; border-top-style: dotted; border-right-style: dotted; border-bottom-style: dotted; border-left-style: dotted; border-top-color: rgb(187, 187, 187); border-right-color: rgb(187, 187, 187); border-bottom-color: rgb(187, 187, 187); border-left-color: rgb(187, 187, 187); padding-top: 5px; padding-right: 15px; padding-bottom: 5px; padding-left: 15px; color: rgb(85, 136, 102); line-height: 1.3em; ">Hear from committers, founders like Rob Davies, James Strachan and Claus Ibsen and users who have successfully implemented Apache in projects.</blockquote><blockquote style="margin-top: 0.75em; margin-right: 0px; margin-bottom: 0.75em; margin-left: 0px; border-top-width: 1px; border-right-width: 0px; border-bottom-width: 1px; border-left-width: 0px; border-top-style: dotted; border-right-style: dotted; border-bottom-style: dotted; border-left-style: dotted; border-top-color: rgb(187, 187, 187); border-right-color: rgb(187, 187, 187); border-bottom-color: rgb(187, 187, 187); border-left-color: rgb(187, 187, 187); padding-top: 5px; padding-right: 15px; padding-bottom: 5px; padding-left: 15px; color: rgb(85, 136, 102); line-height: 1.3em; ">Meet and network with peers at this free educational community day.</blockquote><br /><b>Date</b><br />25th of May<br /><br /><b>Time</b><br />9:00AM to 4:30PM<br /><br /><b>Location</b><br /><a href="http://www.radissonblu.com/hotel-frankfurt" style="color: rgb(68, 85, 102); ">Radisson Blu Hotel</a>, Franklinstrasse 65, 60486 Frankfurt am Main<br /><br /><b>Who Should Attend</b><br />Developers, architects, engineers and IT managers<br /><br /><b>How to register</b><br />Use this <a href="http://form.fusesource.com/forms/registergermany2010" style="color: rgb(34, 51, 68); ">link</a></span>James Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.com3tag:blogger.com,1999:blog-637417304187784899.post-79357993900370279872010-04-28T17:04:00.001+00:002010-04-28T17:04:28.437+00:00Scalate 1.1 Released<div class='posterous_autopost'><p>The <a href="http://scalate.fusesource.org/">Scalate team</a> is pleased to announce the availability of Scalate 1.1.</p> <p>Scalate is a <a href="http://www.scala-lang.org/">Scala 2.8</a> based <a href="http://en.wikipedia.org/wiki/Template_engine_%28web%29">template engine</a> which can be used stand alone, with servlets, in JAXRS, with the <a href="http://github.com/pk11/play-scalate">Play Framework</a> or in <a href="http://camel.apache.org/scalate.html">Apache Camel</a>. (Work on lift integration is <a href="https://liftweb.assembla.com/spaces/liftweb/tickets/475">in progress</a>).</p> <p>All expressions inside Scalate benefit from the full power of Scala plus they are typesafe and checked at edit/compile time to ensure you don’t leave any mistakes in your templates.</p> <p>Two template languages are currently supported:</p> <ul><li><a href="http://scalate.fusesource.org/documentation/ssp-reference.html#syntax">Ssp</a> which is like a Scala version of <a href="http://velocity.apache.org/">Velocity</a>, JSP or Erb from Rails</li><li><a href="http://scalate.fusesource.org/documentation/scaml-reference.html">Scaml</a> which is a Scala dialect of <a href="http://haml-lang.com/">Haml</a> for very DRY markup</li></ul> <p><strong>Scalate 1.1 Highlights</strong></p> <ul><li><a href="http://scalate.fusesource.org/documentation/ssp-reference.html#syntax">Ssp</a> now supports <a href="http://scalate.fusesource.org/documentation/ssp-reference.html#velocity_style_directives">Velocity style directives</a> for more concise looping and branching.</li><li>new <a href="http://scalate.fusesource.org/blog/releases/documentation/tool.html">Scalate Tool</a> for creating new projects with Scalate more easily</li><li>improved API for working with templates from different sources (file, URL, Source, String etc) via the helper methods on <a href="http://scalate.fusesource.org/maven/1.2-SNAPSHOT/scalate-core/scaladocs/org/fusesource/scalate/TemplateSource$.html">TemplateSource object</a> and methods on <a href="http://scalate.fusesource.org/maven/1.2-SNAPSHOT/scalate-core/scaladocs/org/fusesource/scalate/TemplateEngine.html">TemplateEngine</a> which take a <a href="http://scalate.fusesource.org/maven/1.2-SNAPSHOT/scalate-core/scaladocs/org/fusesource/scalate/TemplateSource.html">TemplateSource</a></li><li>easier to configure whitespace handling via the <strong>escapeMarkup</strong> property on <a href="http://scalate.fusesource.org/maven/1.2-SNAPSHOT/scalate-core/scaladocs/org/fusesource/scalate/TemplateEngine.html">TemplateEngine</a> and <a href="http://scalate.fusesource.org/maven/1.2-SNAPSHOT/scalate-core/scaladocs/org/fusesource/scalate/RenderContext.html">RenderContext</a> so its easy to configure markup escaping for an entire project or enable/disable it within templates.</li></ul> <p>For more detail see the <a href="http://scalate.assembla.com/spaces/scalate/milestones/191837-1-1">Full Change Log</a></p> <p><a href="http://scalate.fusesource.org/community.html">Feedback</a> is always welcome!</p> <p style="font-size: 10px;"> <a href="http://posterous.com">Posted via email</a> from <a href="http://implicit.ly/scalate-11-released-0">implicit.ly</a> </p> </div>James Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.com0tag:blogger.com,1999:blog-637417304187784899.post-48025078132323183552010-04-06T19:09:00.001+00:002010-04-06T19:09:07.224+00:00Scalate 1.0 Released<div class='posterous_autopost'><p>The <a href="http://scalate.fusesource.org/">Scalate team</a> is pleased to <a href="http://scalate.fusesource.org/blog/releases/2010/04/release-1-0.html">announce</a> the availability of Scalate 1.0.</p> <p><a href="http://scalate.fusesource.org/">Scalate</a> is a <a href="http://www.scala-lang.org/">Scala 2.8</a> based template engine which can be used stand alone, with servlets, in JAXRS, with the <a href="http://github.com/pk11/play-scalate">Play Framework</a> or in <a href="http://camel.apache.org/scalate.html">Apache Camel</a>. (Work on lift integration is in progress).</p> <p>All expressions inside Scalate benefit from the full power of Scala plus they are typesafe and checked at edit/compile time to ensure you don’t leave any mistakes in your templates.</p> <p>Two template languages are currently supported:</p> <ul><li><a href="http://scalate.fusesource.org/documentation/ssp-reference.html#syntax">Ssp</a> which is like a Scala version of JSP or Erb from Rails</li><li><a href="http://scalate.fusesource.org/documentation/scaml-reference.html">Scaml</a> which is a Scala dialect of <a href="http://haml-lang.com/">Haml</a> for very DRY markup</li></ul> <p>Further information:</p> <ul><li><a href="http://scalate.assembla.com/spaces/scalate/milestones/191839-1-0">Change Log</a></li><li><a href="http://scalate.fusesource.org/community.html">Community</a></li><li><a href="http://scalate.fusesource.org/documentation/">Documentation</a></li><li><a href="http://scalate.fusesource.org/download.html">Download</a></li> </ul> <p><a href="http://scalate.fusesource.org/community.html">Feedback</a> is always welcome!</p> <p style="font-size: 10px;"> <a href="http://posterous.com">Posted via email</a> from <a href="http://implicit.ly/scalate-10-released">implicit.ly</a> </p> </div>James Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.com2tag:blogger.com,1999:blog-637417304187784899.post-64965684326104593972010-02-02T15:52:00.004+00:002010-02-02T16:13:14.606+00:00if you need an excuse for buying an iPad, try this...There's a ton of noise out there about the new <a href="http://www.apple.com/ipad/">iPad</a>. One common response is folks finding it hard to justify buying one if you have a MacBook Pro and an iPhone.<div><br /><div>So one thing I really like about the iPad (apart from the speed &amp; bigger screen than the iPhone) is the gap around the screen - which at first I thought looked odd. Let me explain...<div><br /></div><div>I'm constantly amazed by how easy the iPhone is to use, especially by people who've never really used a computer. My daughters have been able to use my iPhone for drawing &amp; browsing photos for a long time (and they are 3 and 1 year old right now) - without me ever really showing them how. They just picked it up, played with it and figured it all out. (I might have shown them the two finger tap on the drawing app to change the pen). When they are a bit older and can actually read, am sure they'll feel right at home browsing too.</div><div><br /></div><div>The biggest problem my daughters have found (particularly with my youngest, she was 1 year old in November) is holding the iphone without accidentally pressing one or more fingers on the screen - causing confusion in the multi-touch detection.</div><div><br /></div><div>You've gotta be quite careful with an iPhone not to touch the screen while using it (something adults master quite quickly). So for kids, the iPad is gonna be so much simpler to use with its nice wide thumb/finger area when holding the device.</div><div><br /></div><div>Lots of cars have DVD screens on the back of the headrests so kids in the back can watch movies while travelling. I can see iPad's being the long term replacement very soon...</div><div><br /></div><div>So if you're a geek and need a reason to buy an iPad; just say you're getting one for the kids! Thats gonna be my excuse and I'm sticking to it...</div><div><br /></div></div></div>James Strachanhttp://www.blogger.com/profile/12591119339035350067noreply@blogger.com5