tag:blogger.com,1999:blog-145705452024-03-08T04:10:43.500+01:00Thoughts and FragmentsSergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.comBlogger94125tag:blogger.com,1999:blog-14570545.post-9706330751476586382010-09-28T20:28:00.015+02:002010-09-29T18:31:07.166+02:00Dynamic mixins in Clojure: an experiment.My web-friend Debasish Ghosh recently come up with an excellent post about modeling the same domain with Scala and Clojure, focusing in particular on how to implement dynamic behavior through Scala mixins and Clojure combinators.Now, while the post is excellent as always, and Clojure combinators are pretty cool, I think a domain model is better represented with Clojure records and protocols, so Sergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.com12tag:blogger.com,1999:blog-14570545.post-51636449408681066362009-12-19T12:21:00.005+01:002010-07-27T14:39:42.440+02:00Terrastore and the Cap TheoremThis is an edited version of the original "Terrastore and the Cap Theorem" article, updated to reflect latest Terrastore developments.Terrastore is a new born document store based on the wonderful Terracotta technology, focused on providing a feature-rich, scalable, yet consistent, data store.Data stores today are often classified depending on how they deal with availability, partition-tolerance Sergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.com3tag:blogger.com,1999:blog-14570545.post-5018471539706130072009-11-04T08:52:00.015+01:002009-11-04T18:56:18.268+01:00Eventual Consistency by ExampleRecently, there has been a lot of chitchat about the eventual consistency model as illustrated in the famous Amazon Dynamo paper, and today employed by several non-relational databases such as Voldemort or Cassandra.Everything starts with this blog post by the Facebook Infrastructure Lead, claiming: "Dynamo: A flawed architecture", where he makes a few points against the eventual consistency Sergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.com16tag:blogger.com,1999:blog-14570545.post-89888654726663599872009-04-08T11:20:00.005+02:002009-04-08T20:18:26.992+02:00Terracotta, Domain Driven Design and Anti-PatternsYesterday I was going to participate at a technical meeting, when the following statement suddenly appeared on my Twitter timeline:One interesting reflection is that the "super static" property of Terracotta roots helps us with Domain Driven Design.Finally we have (what I feel a nice) way of using Repositories in our Entities without Aspects or Register style coding.My immediate reaction was to Sergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.com10tag:blogger.com,1999:blog-14570545.post-43794091484960824312009-02-03T15:42:00.004+01:002009-02-03T16:03:23.339+01:00Actor concurrency model in a nutshellWhile the necessity of writing software applications capable of exploiting the multi-processor architecture of today computers is more and more common, concurrent programming is often perceived as an hard task.No wonder, so, if many languages come to our rescue by supporting concurrent programming through first-class syntax support, or through higher level user libraries.Two well-known languages Sergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.com9tag:blogger.com,1999:blog-14570545.post-27456508686567169972009-01-31T19:15:00.006+01:002009-01-31T19:50:31.802+01:00Against the viral Commons-LoggingYears ago I wrote a blog post about how to make your application Commons-Logging (JCL) free by using SLF4J.However, there is still a problem if you're writing a Maven2 based application: even if you're using SLF4J, you will probably end up with a viral JCL jar in your classpath! That's because JCL is still used by a lot of projects, and Maven places it in your classpath as a transitive Sergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.com6tag:blogger.com,1999:blog-14570545.post-82598827519015581462009-01-24T18:25:00.003+01:002009-01-24T18:30:17.718+01:00Real Terracotta @ Rome JavaDay 2009I'm just back from the Rome JavaDay 2009, and here is the presentation I gave: Real Terracotta - Real-world scalability patterns with Terracotta.Real TerracottaView more presentations or upload your own. (tags: terracotta scalability)I hope you enjoyed it!I'd be very glad to hear your feedback, so feel free to comment on with any question/thought you may have!Sergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.com1tag:blogger.com,1999:blog-14570545.post-89883075576277754542009-01-22T14:10:00.002+01:002009-01-22T14:15:31.769+01:00Follow me on TwitterJust subscribed to Twitter: http://twitter.com/sbtouristFeel free to follow me, hoping to tweet interesting stuff at an higher rate than my blogging one ;)Sergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.com2tag:blogger.com,1999:blog-14570545.post-29570258665321522502009-01-09T17:59:00.004+01:002009-01-09T18:49:27.887+01:00JAX-RS: A proposal for resource URI identification and resolutionIn my latest two posts I talked about the problem of clearly defining and resolving the URI of a REST resource in JAX-RS, and then described a possible solution.I discussed this topic in the Resteasy dev mailing list (here is the thread), and Solomon Duskis suggested to identify resources with a unique logical name rather than with a class name, in order to support multiple REST resources in the Sergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.com0tag:blogger.com,1999:blog-14570545.post-33134370263275373142009-01-05T12:02:00.006+01:002009-01-05T13:03:21.061+01:00JAX-RS and HATEOAS : A ProposalThis is a follow-up to my latest post: JAX-RS and HATEOAS, AKA "JAX-RS should provide a way to identify and resolve resource URLs".I'd like to outline a possible solution, but first, let me recap the problem with a simple example.The Problem.JAX-RS let you define web resources out of simple POJOs by properly placing simple, meaningful, annotations.Let's say we have a Library resource, containing Sergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.com2tag:blogger.com,1999:blog-14570545.post-83100967323614392912009-01-04T18:15:00.004+01:002009-01-04T19:37:13.392+01:00JAX-RS and HATEOASThis post should have been named something like: "JAX-RS should provide a way to identify and resolve resource URLs".However, it was too long, so I opted for some buzzy acronyms: let me explain them.JAX-RS is the official Java API for building Restful Web Services: also known as JSR-311, it went final a few months ago, and is, IMHO, a very good specification, providing an easy and effective way Sergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.com5tag:blogger.com,1999:blog-14570545.post-7672450812186565702009-01-03T15:21:00.005+01:002009-01-04T18:15:38.764+01:00Best of 2008Here is my personal list, just for fun ...Best of MusicThe Decemberists - Always the BridesmaidShearwater - RookOkkervil River - The Stand InsBest of Movies/TVZohan (Movie)The Dark Knight (Movie)Dexter (TV)Best of Tech/Non-Tech ReadingClean Code, Martin (Tech)The Road, McCarthy (Non-Tech)InfoQ.com (Tech)Now, let the 2009 begin ...Sergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.com0tag:blogger.com,1999:blog-14570545.post-33375457138798608022008-12-13T16:33:00.012+01:002008-12-13T17:07:07.868+01:00Presenting at the Rome JavaDay 2009I'm more than happy to announce that I will present at the third edition of the Rome JavaDay on the 24th of January 2009!I will host a session entitled Real Terracotta, where I will talk about Terracotta, the most famous open source clustering solution, and how to effectively use it in some real world uses cases.In particular, these are the use cases I have in mind right now:Data affinity Sergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.com0tag:blogger.com,1999:blog-14570545.post-22664810238484926542008-12-01T10:57:00.004+01:002008-12-01T11:31:16.924+01:00Weekly Digest Ep. 1I read a number of blogs, and when I see that some of my favorite bloggers don't post anything for a long time, I generally feel disappointed.So, yesterday I was wondering: how the hell did my readers (if any) feel, given that I generally write one or two posts every two or three months? That should be terrible!!!!Jokes aside, I decided to write at least a weekly digest about what happened to me Sergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.com0tag:blogger.com,1999:blog-14570545.post-31898144844099977172008-06-16T11:34:00.001+02:002008-06-16T16:28:16.639+02:00Gridify your Spring application with Grid Gain @ Spring Italian Meeting 2008Last Saturday I've been at the Spring Italian Meeting in Cagliari, for an enjoyable meet-up with colleagues, friends, and Spring-passionate users.First of all, thanks to Massimiliano Dessi', the man behind this event ;)Then, if you lose my presentation about Grid Computing, Grid Gain, and the Spring Framework, here it is: | View | Upload your ownI really enjoyed presenting it, and I think Sergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.com5tag:blogger.com,1999:blog-14570545.post-19454731965015426932008-06-03T16:50:00.001+02:002008-06-16T12:36:14.973+02:00On the road from Scarlet 1.0 to 1.1Two months ago, Scarlet 1.0 GA was released: it was a very important milestone in the Scarlet life, completely covering all Jira clustering aspects.However, there still was one major problem: Jira limited scalability caused by the existent Lucene indexing infrastructure, which was affected mainly by two problems:Synchronous execution of CPU-intensive operations, causing "standard" operations likeSergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.com4tag:blogger.com,1999:blog-14570545.post-51375502525729813642008-03-15T19:12:00.000+01:002008-06-16T12:36:14.974+02:00Scarlet 1.0 RC2 is out!Short news just to let you know that the Scarlet second release candidate is officially out!This is your last chance for submitting bugs, suggestions and feedback about Scarlet, prior to its final release, scheduled for the end of this month.So don't hesitate to contribute to the unique Open Source clustering solution for your preferred enterprise issue tracking software!Enjoy it!Sergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.com1tag:blogger.com,1999:blog-14570545.post-45985551700516622792008-02-11T10:27:00.000+01:002008-06-16T12:36:14.974+02:00Scarlet first release candidate is out!Exciting news about Scarlet are coming!The new Scarlet 1.0 Release Candidate 1 is officially out, with new features, several enhancements and fixes, and a brand new web site!Can't wait for it?Take a look at: http://scarlet.sf.net!Talking about the technical side of this new release, the most important changes concern the upgrade to Atlassian Jira 3.12, improved APIs for plugin development and a Sergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.com0tag:blogger.com,1999:blog-14570545.post-18702172921383148262007-12-11T06:40:00.000+01:002007-12-11T06:44:58.604+01:00See you at Javapolis!I'm going to leave Rome and catch my flight for Antwerp.Actual destination : Javapolis!I will hold a BOF, so don't miss it.See you there!Sergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.com0tag:blogger.com,1999:blog-14570545.post-87464912660650887272007-12-08T16:07:00.000+01:002007-12-08T18:29:45.376+01:00Owner Based Locking explainedIf you attended my presentation at the Rome JavaDay about my real world experience in clustering Atlassian Jira, or if you took a look at my slides, you may already know that one of the challenges was the rewriting of the Jira caching system.The hardest part of this challenge was to define the cache locking strategy.That was because of two requirements, due to the Jira code and the way it has Sergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.com0tag:blogger.com,1999:blog-14570545.post-25680231386660590292007-12-05T14:48:00.000+01:002008-06-16T12:36:14.975+02:00News about ScarletOne month has passed since my last post, due to the fact that I've been very busy working at the hottest (well, maybe I'm a bit biased here...) Jira extension around : Scarlet.Here are some news about it:Me and my colleague and friend Ugo talked about our experience in clustering Jira with Terracotta at the Rome JavaDay: people really appreciated it, and if you weren't there (or if you liked us Sergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.com8tag:blogger.com,1999:blog-14570545.post-90955150394184850572007-11-06T14:46:00.000+01:002008-06-16T12:36:14.976+02:00Scarlet is out!As I said some weeks ago, in the past two months I've been deeply involved in clustering one of the most important Open Source enterprise applications around.Now, it is time to unveil the amazing work done here in Sourcesense, because the first public beta release of Scarlet is officially out!Scarlet is a free, open source, clustering extension to Atlassian Jira, providing scalability and high Sergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.com1tag:blogger.com,1999:blog-14570545.post-74938026234011863532007-11-03T15:34:00.000+01:002007-11-03T15:43:52.769+01:00Introducing the Scala LanguageIt is both a pure Object Oriented and fully featured Functional language.It is both a scripting language and a compiled one.It is a stable, solid, well designed language.It has been very well received by a lot of people and has thousands of downloads per month.It runs on the Java Virtual Machine and fully interoperates with the Java environment.It has been called the "next next Java".It is the Sergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.com0tag:blogger.com,1999:blog-14570545.post-68191388874041224452007-10-26T18:07:00.000+02:002007-10-26T19:09:32.555+02:00The Fail Fast RuleEvery time you're writing a piece of code and you have to deal with unknown corner cases ...Every time you're implementing some kind of logic and you don't know what to do when things go bad ...Every time you think: this can never happen, I don't have to check for it ...Every time you don't know what to do or what would happen ...Please ...Fail fast.This is the Fail Fast Rule, as I call it, a Sergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.com0tag:blogger.com,1999:blog-14570545.post-31827890535838276022007-10-23T10:27:00.000+02:002007-11-05T15:01:04.502+01:00JavaMail and GMail : it's all about configurationYesterday I spent a couple of hours trying to send emails with JavaMail APIs via my GMail account.It wasn't easy: the standard JavaMail configuration didn't work, while Google gave me a lot of wrong and/or outdated information.Moreover, JavaMail FAQs provide a sample about sending emails via GMail, but it has some problems too.So I think these bits of information will be helpful to someone tryingSergio Bossahttp://www.blogger.com/profile/09315991044338298083noreply@blogger.com8