astro

Unable to decide what to do after studying, Andrea chose to try out several things in parallel: writing articles about automatic genre recognition, giving talks at conferences, working as a Flash freelancer and a lecturer for game development, being an intern at Google and trying to write a Ph.D thesis. Finally, after one and a half years, she joined conject in a futile attempt to concentrate on one thing only. Now she's programming, recruiting, caring for data security, making Flash games for the marketing department and contributes to this blog. And she loves all of those jobs. And baby animals. And robots.

To achieve full test coverage for our new product sixbee, we chose to try out Selenium. It works perfectly fine for simple stuff like clicking on static links with static texts or IDs:

  1. selenium.clickAndWait("link=Click") // click on a element labeled "Click"
  2. selenium.clickAndWait("btn") // click on element with id "btn"

When it comes to testing components using Ajax, it’s getting trickier, as not all generated elements have an ID to reference it. Fortunately, Selenium offers some more possibilities for locating elements, such as XPath or CSS-selectors: >> more…

Grails claims that it encourages writing test – for example, a test class is created every time you create a controller or domain. However, working on my first Grails project I find it quite confusing which kind of test supports what.

For example, we use GreenMail in our testing environment. To check for sent mails, we have to use GrailsUnitTests, even if we are testing a Controller, because the content of mails is always empty in ControllerUnitTests.

Checking view names or redirects in those two types of tests is also slightly different:

  1. //ControllerUnitTest
  2. assert controller.modelAndView.view == "send"
  3. assert controller.redirectArgs.controller == "delivery"
  4. //GrailsUnitTests
  5. assert controller.modelAndView.view == "Message/send"
  6. assert controller.response.redirectUrl == "/delivery"

This is pretty annoying and I hope it will be unified in future versions of Grails. >> more…

Per default, Google Analytics tracks the whole URL. As a lot of our URLs contain some parameters or IDs, and we’re not interessted in tracking them, we needed to find a way to truncate them. As Grails unfortunately does not provide methods to access the current view and controller (which is basically what we’d like to track) in GSPs, we used this code:

  1. pageTracker._trackPageview(${request.getServletPath()‘/grails/’‘.dispatch’});

Not as clean as we’d like to have it, so suggestions are welcome!

One of the biggest advantages of Groovy over Java are those nice little collection helpers. For people who first encountered them in functional languages the names are confusing. Here’s a short comparison:

Functional Language Groovy
map (list, function) list.collect (closure) Applies the function to each element of the list and returns the results as a new list
filter (list, function) list.findAll (closure) Returns a list of all elements in the input list for which the function returns true
fold (list, initial element, function) list.inject (initial element, closure) Applies the function to the initial element and the first element of the list. Then applies the function to this result and the second element of the list. Get the idea?

>> more…

Hunting one of the strangest layout issues in IE – if you hover over an element, the input elements on the page mysteriously move down – we learned about the very strange concept of “layout” internet explorer employs: Give your elements height, width or one of the other CSS-properties that “cause an element to have layout” (I can’t help but giggle when I read this, and I have no clue what it’s supposed to mean) and many of your IE display issues will disappear. >> more…

http://www.findjar.com

Yep, that’s it. A jar search engine. “Simply enter the name of the class or the JAR file you are looking for and start your search.”

Next month, we will stop supporting IE6 in conjectPM. This means getting rid of all those “if it’s IE6 add 2 pixels to the y-position”, deleting lots of CSS hacks, throwing away all spezialized stylesheets… we’re already counting the days (great that February s such a short month) and think about having a “hooray, no more IE6!” party.

Or, to cite this month’s ThinkGeek newsletter, “Hearing the news was just like being in high school and getting a pass out of P.E.” (that was about Google stopping IE6 support for Mail and Docs)

In the past year we noted a heavy decrease in performance, espescially for new featueres we introduced. That’s because our standard testing and sign-off process did not include performance tests and we have not yet had any good ideas (that means, realizable with an adequate amount of time and effort) how to automate it.

In the last couple of months we spent a lot of time to get back to our old standard (which we even managed to outperform in some cases), take care of not ruining the performance again by testing it before releases and treat freshly introduced performance issues with the same priority as post release bugs (that means, fix them immediately). >> more…

While playing around with Apache’s POI library to export Excel files I was wondering what HSSF could possibly mean… maybe some technical abbreviation? Looking it up in the documentation finally showed it’s actually “Horrible Spreadsheet Format”. Having worked with it, I’d say the name was chosen wisely.

Recently out interaction designers Maria and Franzi told us about paper prototypes and how to use them when finding out what customers will like and what they won’t understand. The idea behind it is, that customers (or whoever gives you feedback) are more willing to criticize when they can guess that not too much work already went into development. On top of that, it saves the time to create “real” prototypes.

I already liked the paper prototypes very much, because there’s always one in the team acting as the computer (that means, he scrolls the paper when you tell him, lays a new “screen” in front of you when you pretend to click somewhere etc.). I actually never saw it, but I imagine it to be pretty amusing. >> more…

Older Posts »