Solution to Wrap Kata

My solution to the String Wrap Kata. The goal is to have it wrap a text on a given column width. It is not the best solution but this is my first try. I did it with TDD so there were tests first, which I’m not going to copy in.. public class WrapKata { public String wrap(String input, int columnSize) { if (input.length() <= columnSize) return input; else { return wrapLines(input, columnSize); } } private String wrapLines(String input, int columnSize) { int breakPoint = getBreakPoint(input, columnSize); String head = createHead(input, breakPoint); String tail = createTail(input, breakPoint); return head += "\n" + wrap(tail, columnSize); } private String createTail(String input, int breakPoint) { return input.substring(breakPoint).trim(); } private String createHead(String input, int breakPoint) { return input.substring(, breakPoint).trim(); } private int getBreakPoint(String input, int columnSize) { if (input.contains(" ")) { return input.lastIndexOf(' ', columnSize); } else { return columnSize; } } }

June 26, 2012 · 1 min · hannibal

How to read a professional book for slow learners

Hi everybody. Today I want to talk to you about.. Well.. How to read a professional book for slow learners without too much waste of time. Let us start at the. well. the beginning. How do you normally read a book if you want to memorize it properly. You read it once and then re read the whole thing again until it gets in your head? Or do you have another strategy? ...

June 18, 2012 · 3 min · hannibal

Don’t throw Exception

Hi. Today I want to talk about a common problem in many frameworks I encountered over the course of my carrier as a Java dev / automation engineer, whatnot. Throwing Exceptions. That is in your method you have something like this: public void insertMethodNameHere(String param) throws Exception {} This is bad. And I will tell you in short forms why. Hides exceptions This one should be obvious. When a method throws exception you can never be sure what kind of exceptions it handles. It will hide what problems it can encounter. It will hide possible threats and will generally mean nothing to you when it fails. ...

June 13, 2012 · 4 min · hannibal

How to write a professional blog

Hi folks. I want to write a little bit about writing a professional blog. Early steps Let’s first talk about what you understand about professional blog. It’s either a semi professional one, that mixes life with professionalism, like chess, programming, testing, painting, drawing, engineering whatever your profession is. Or it can be a purely professional one without your life getting involved in it. Either way you have to decide at the beginning. Why? Because that’s the kind of people you will attract. If you want to attract people from your profession then you have to decide that you will write plenty of your profession into your blog. If you want to attract hobbists more then you write about your profession AND daily life or other situations that are essentially irrelevant. Of course you can get both in both versions but the numbers will be different. ...

June 13, 2012 · 6 min · hannibal

Making your code understandable

Hi! I’ve seen this many times over and over again. Many people have wrote books about it already. Like Uncle Bob’s Clean Code. Like Pragmatic Programmer by Andrew Hunt and David Thomas. What makes your code understandable to others. Is it Comments? No. It’s not comments. If your code could be read properly you wouldn’t need comments to explain what it does. Like Uncle Bob said. A good code doesn’t contain surprises. It does exactly what you would think it should do on the next line. It doesn’t have curves and misinformation. It doesn’t have plots and turns of events like a good crime book. No. Good code is a like a boring soap opera with predictable plot and boring plain characters who don’t change there behavior based on circumstances. ...

June 13, 2012 · 2 min · hannibal

Getting Dual Card to work on Ubuntu 12.04.

Hi guys. Today I want to talk about a little adventure I had yesterday night. It was quite the fun and frustration too. But neither comes without the other when it’s about linux. So let us see what the problem is at hand. The problem machine is a Dell Inspiron N5110 with Nvidia card number one: GeForce GT 525M. And number two: Integrated. Optimus for the win. So how windows is handling this is actually with a software called Optimus. Now linux wasn’t design to handle this properly but there are solutions. But I’m getting ahead of myself. Let’s start with the install. ...

April 11, 2012 · 6 min · hannibal

JMS Connection setup and Framework

Hello chumps. Today I want to write about jms connection testing with a small framework. I wrote a small thing using a factory object model. It’s a lead, a proof of concept. You can use this to go onward. First, let’s begin with the JMS connection it self. JMS Connection First rule of thumb is: “Don’t wait for a response when dealing with JMS queues.” How so? Because, a JMS queue is asynchronous so you wont get back anything. There are however two ways of checking if it was a success or not. ...

March 4, 2012 · 5 min · hannibal

Configuration

When I see something like this: public class Config { public static final string DATABASELINK = "linkhere"; . . . } It sends a small, but chilling shiver down my spine. Just. don’t. There are a lot of possibilities to use configuration in Java. Java property files. Xml. Xml serialization. CSV file. Whatever suits you best, but this? DON’T!

February 27, 2012 · 1 min · hannibal

Hello and welcome

Hello Dear Visitor. Welcome to the ramblings of a software test engineer who thinks that he is a tester but feels like a developer but works as a tester but wants to learn programming like a developer. And so on and so fort. I will make a journey that has been done by many automation testers. The journey when you decide to step one forward. A friend of mine told me that it is good that a tester learns proper programming and that more should do so. She is right. And I will try to document this journey as best as possible. I will try to write down my experiences with java, android, automation, swing, maven, hudson, selenium, cucumber, TDD, BDD, Agile environment and whatever tool I meet. ...

February 26, 2012 · 1 min · hannibal

Testing ‘code’ tag.

Hello. This is just a quick post to test the working of the code tag. Given(/The Action is ([A-z]*)/) do |action| @action = action end Perfect!! The name of the plugin is WP-Syntax. The trick is to edit the page in plain HTML. Because the WordPress word editor screws up the <> tags. But surely you already knew that.

February 26, 2012 · 1 min · hannibal