Most ESB example start from some HelloWorld use case, where you have to send a message to the ESB and it will print it to the console. In this post I would like to show that you can do a lot more with an ESB, for example reading and analyzing data from social media like twitter.
The example below will demonstrate how you can use JBossESB to retweet every message containing a certain hashtag. If you want you can extend the example and store all the messages to database, or keep track of those users who have posted the most amount of messages with a certain content.
Prerequisites
Step 1) Create a scheduler using JBossESB
When you want to retweet all messages containing a certain hashtag, you need some kind of scheduler that is fired every second, minute or hour. In the jboss-esb.xml file you can do this by using a ‘schedule-provider’.
Tags: esb, JBoss, JBossESB, Twitter
Filed under Architecture, Middleware, Technology | No Comments »
Do you think that you do TDD well because you have been doing it for years now? That is what I thought until I did an exercise called “TDD as if you mean it” and it put my feet back on the ground!
At two different TDD workshops I have tried to build an application following the rules of “TDD as if you mean it”. The first time was in Amsterdam at a Coderetreat and the second time at an XKE session at Xebia. Although I am practicing TDD for a while now, the result of the exercises in both sessions were that I had few tests, even less production code and an application that did not work.
In the 1980′s there was a TV show called Knight Rider, where Michael Knight, a vigilante with his car K.I.T.T would fight bad guys. The thing that made this show special to me was the car. Mr Knight could talk to it, and it would understand what he said and meant and respond meaningfully. Sometimes throwing a witty remark in there. It gave the car, a personality, it was the co-star of the show.
Siri
Now in 2011, Apple released Siri. An assistant where you can ask certain things, like “What is the weather going to be like tomorrow”, and again, just like the car K.I.T.T., it responds with the correct information. In the above case, the weather for tomorrow based on your current location. If i ask Siri “What THE answer is?”, it sometimes responds with the number 42, this is for nerds and geeks a pretty witty answer (as it is THE answer to THE question in Hitchhikers guide to the galaxy). Thus Siri seems to me, have personality, it answers questions with a certain flavor. For me, in 2011, it was the very first time you could ask almost anything to a device (a mobile phone) and it would (try) to give a smart, witty answer.
Hype?
So is the fact that you are going to talk to your phone and it actually understands what you mean and then responds, something we’re going to see more of in the future or is it just a hype?
No really….. you don’t. Well, maybe you do, but the boardroom certainly doesn’t. They have never heard about agile, let alone what it is all about. Is this something that will help us solve our problems or just a new IT buzzword?
(more…)
Tags: agile adoption
Filed under Agile, change, General, Learning, Methodology, Uncategorized | 1 Comment »
Map Reduce is a programming model for writing algorithms that process large quantities of data in a (relatively) short time. The building blocks for the programs are very simple map and reduce functions. Writing programs that do more and more complex tasks to data based on those simple functions becomes harder and harder and thus requires more thorough testing in early stages. This blog attempts to outline a simple method for testing the algorithm of a Map-Reduce program based on scoobi.
Filed under Hadoop, Scala, Scoobi, Testing | No Comments »
It should be common knowledge that for certain types of automated tests, you do not want to rely on the availability of external services for a number of reasons:
Ideally, you therefore stub out the external service. Inside your unit tests, you do that using Mock Objects, for example. This is actually harder to do for integration tests – you do not use mock objects in integration tests, because that could change the observed behavior of your application.
In one of our projects, we’ve struggled with this problem for quite some time. There are two major components in it, an iPhone app and a server-side component, which both talk to an external webservice for retrieving the data to display on the app and to work with on the server. In our integration tests, we simply used the production webservice and ran some shallow assertions on the result with varying results.
Recently though, we drew the line. Running integration / UI tests using KIF for iOS on data that changes depending on what time it is ended up in unpredictable results, or assertions that we simply couldn’t make because the data kept changing (and of course because KIF does not have any actual assertions, or is able to match on partially matching UI elements). So we said “Okay, we need predictable results – make that damn fake webservice already.”
What it needed to do was:
Of course, it also needed to be done quickly. We postponed making this fake webservice for a while because it seemed like a lot of work, but once we finally decided on making it, we figured “How hard can it be?”. We’ve been waiting for an opportunity to use NodeJS for a while now, and as far as we could see, this was the ideal choice in this case – we have a REST-like webservice (readonly) that mainly does i/o (from the filesystem and the external webservice), and it should be easy and lightweight to build.
So we went to hack in a few steps. Read more for the whole article and the code.
Tags: integration test, NodeJS, stub, test double
Filed under NodeJS, Testing | No Comments »
Recently I started working for Xebia and what better way to introduce myself with a nice blogpost and some free code and some explanation to go along with it.
To get you started: here is the code. It’s on GitHub so don’t be afraid to send in suggestions and whatnot. (more…)
Filed under ios, mobile | 3 Comments »
As the interface between Development and Operations, Application Release Management1 handles information that is highly relevant to your Release and Operations teams. Selecting an Application Release Automation solution that provides insight and analytics from both perspectives is thus a key component of an effective DevOps strategy.
Here, we explain how Deployit‘s Infrastructure and new Release Overview features help you achieve this goal.
(more…)
Tags: application release automation, continuous delivery, devops
Filed under Continuous Delivery, Deployment, Methodology, Middleware, Tools, Xebia Labs | No Comments »
Net als in 2010 heeft Xebia in 2011 het jaarlijks onderzoek naar de de status van Agile in Nederland uitgevoerd. Met ook dit jaar weer opvallende resultaten. Zo zegt bijna 90 procent van de bedrijven die met Agile werken sterk verbeterde resultaten te realiseren bij hun (ICT) projecten. De vraagt die direct bij mij opkomt bij dit soort hoge percentages is waarom niet iedereen met Agile aan de slag gaat.
Daarnaast ervaart 83 procent van de Nederlandse bedrijven die Agile werken hebben geadopteerd, meer werkplezier en 85 procent meer teammotivatie. Dit percentage is aanzienlijk hoger dan vorig jaar, toen gaf driekwart van de respondenten aan meer werkplezier en teammotivatie te ervaren. Dus de mensen die Agile werken varen er wel bij, naar mijn mening een van de belangrijkste redenen voor het succes van Agile. Dit komt ook veelal tot uiting in een lager ziekteverzuim en grotere loyaliteit naar de werkgever toe.
(more…)
Tags: 2011, Agile, agile project, generatie y, generatie z, jong talent, Scrum, survey, Xebia
Filed under Agile, General | No Comments »
How do you change the way you live or work? Many people, and companies, seem to think it’s enough to adopt just one or two practices. While they continue their old habits, too. Will this lead you to your desired outcome? Or will you just get frustrated?
Filed under Agile, Methodology, Process, Scrum | 1 Comment »