This entry is about JAVA_HOME. (Yep, you read that right.) I never imagined I would ever write a post on an environment variable, but – hey – I have been breaking my jaws on this one for a while, so I figured there are probably a couple of other people happy to learn about the solution.
Tags: Java, java_home, macos
Filed under Java | 3 Comments »
You just baked the first release of your application using Maven. Next you start up the administrative console of the application server in the development environment. Then you deploy the fresh loaf of ear-file to the server and fire up your browser to see if you can reach the application. As you try to load the page, you get a DNS error, “Host not found”. Time to phone Bob! – the friendly operator of all that funky infrastructure and middleware. Bob is of course happy to add a DNS record that will point www.app-in-dev.com to an Apache server. “Wait! An Apache server?”-you exclaim! “But it should point to our application server, not an HTTP server thing.”
Bob, by now used to having to teach young developers the intricacies of modern network topologies, calmly explains that all requests coming from a browser first must go through a cluster of HTTP servers before the requests are routed to the application servers. “You also need to configure Apache!” he says. “But I am developing a Java application, I only need to deploy to an application server and then I am done.” you respond. Bob, sighs. “Listen son, pressing the deploy button in the administrative console is only a small sentence in the big deployment story.”
(more…)
Filed under Deployment, Xebia Labs | No Comments »
In a previous blog post I introduced the definition of READY, and I wanted to do another “context” blog post before starting on this one: on the difference between flowing (“kanban”) and iterating. However, I had much more to say on the subject than I expected, so the thing kept expanding… I’ll gather my thoughts and publish that one later. So for the purpose of this blog post just bear with me: I find that a Product Owner’s job is best done in a flow style. And since my dear ex-colleague Lars Vonk told me he was waiting for this post, I’ll just explain the how here. Lars, here you go…
Update: the third of the series is also done. See here.
Not all backlog items are equal. A backlog item starts out as a rough sketch – usually just the As a.. I want… So That… stanza – and needs to be fleshed out to the extent that it can be picked up by the team in a Sprint. Just like a team has a basic workflow getting stuff to Done, the same applies for the Product Owner role. Scrum does not have any specific support for a Product Owner: somehow the Product Backlog just “happens”. In this post I’ll try to fill that gap with respect to the process that a Product Owner can follow.
I’ll explain a partitioning of the backlog that maps onto a flow, the nature of those partitions and how you proceed through them to get enough stuff Ready for the team to pick up in the next Sprint.
Tags: Agile, product owner, Scrum
Filed under Agile, Scrum | 16 Comments »
I recently started reading Stuart Halloway’s book ‘Programming in Clojure’. I don’t think I will be writing much enterprise applications in that language in the near future, but it never hurts to broaden the mind, and it’s a very good read. In his book, he demonstrates some of the advantages of functional programming by taking an example from the Apache commons library: StringUtils.indexOfAny. He has also written a blog about it.
In this blog post, we’ll compare the original function in Java, the Clojure version and a Scala implementation.
(more…)
Tags: Functional Programming, funtional programming, Scala
Filed under General | 17 Comments »
It kind of snuck up on us, but when we recently checked the blog visitor statistics, we found that we had gone over 20000 unique visitors per month in april! So to all of you who’ve stayed with us through the past years, to all the Xebians and ex-Xebians who have been contributing posts, and to all who commented on the blog: a big thank you. We hope we can keep offering the content that will push us to, let’s say, 50000!
Filed under Java | 2 Comments »
A while ago, I compared Preon with Erlang’s bit syntax. I looked at one one of the examples from “Programming Erlang” in particular; an example that illustrates how to decode MPEG headers using Erlang. However, this is not the only example in that chapter, so I decided to take a stab at one of the other examples as well.
Tags: annotations, bit syntax, erlang, Java
Filed under Java | No Comments »
Scala has become more and more popular over the recent months/years. Its hybrid nature of being an imperative as well as functional language attracts a crowd from the Java world as well as functional fundamentalists coming from the world where statements like x=x+1 are looked at with the utter disbelief. It has been stated that Scala is ‘Java as it should have been’, but there are also numerous complaints about the language and its features (like not being side effect free, overly complex, too much of everything, too much abstraction, having a weird syntax, etc). The latter might actually be a proof of its popularity, since people seem to be actually using the language instead of just looking at it briefly and stopping, tired but happy, after having written hello world with it.
In this blog post, I’ll give you some (hopefully) useful tips how to best start if you want to learn this language, which is one of the candidates become ‘our next big language’ and surpass Java in this respect.
(more…)
Tags: Scala
Filed under General | 9 Comments »
Last week I came across an interesting “coding kata” by Brett Schuchert on the Object Mentor blog. The trick of a kata is that you grow the program step-by-step using tests, just like a kata in karate is tought to a student. The problem of this kata was the Shunting Yard algorithm of Dijkstra. I wanted to see if I could implement this kata in Scala.
(more…)
Tags: Functional Programming, kata, Scala, shunting, yard
Filed under General | No Comments »
Apache Hadoop promises “a software platform that lets one easily write and run applications that process vast amounts of data”. Sure enough, when reading the documentation, descriptions like:
(input) <k1, v1> -> map -> <k2, v2> -> combine -> <k2, v2> -> reduce -> <k3, v3> (output)
Are simple enough to read and understand, but how do you apply MapReduce to a problem you face in a real-life project?
This blog tries to give some insight into how to apply MapReduce with Hadoop.
Tags: hadoop, mapreduce
Filed under General | 3 Comments »