Mobile Web Consulting

Solutions for Web and Mobile

0 notes

Cucumber - use plain Test::Unit assertions instead of shoulda

With cucumber you can describe the behaviour of your software in plain text to discuss or to check the results delivered with non-programmers like business analysts, operators, support people.

By default cucumber uses shoulda and that is what the most tuturial show - ruby programming with cumbersome quasi-english:

@response.code.should equal(200)

This is neither proper English, nor is it precise code with nonambiguous syntax. DHH expressed it best:

…proliferation of RSpec and Cucumber makes me sad… RSpec offends me aesthetically with no discernible benefit.

Fortunately, there is a way in cucumber to avoid the code like above and to use plain Test::Unit / MiniTest in test step definitions:

Then(/^the product page is found$/) do
  assert_equal 200, @response.code, 'expected HTTP 200 OK'

For that you need to import the Test::Unit assertions into the global namespace. Put following into your features/support/env.rb:

# Enable using plain MiniTest assertions instead of quasi-english shoulda
require 'test/unit/assertions'
World Test::Unit::Assertions

Filed under ruby testing BDD

0 notes

around-the-city-around-the-world asked: how do you create multiple user logins for websites so that say 10 different authors can write articles for their page at any time of the day from any computer?

I do not think, it is possible with tumblr. For full flexibility in managing user rights you need to use your own CMS (content management system).

0 notes

jetty-rackup reloaded

In our current JRuby on Rails based project we have a multi-step build process including warbling and run our application in a server farm with apache tomcats. Pretty enterprise-y. ;-)

For other scenarios a light weight process without warbling can make more sence though. E.g. if you write a simple Sinatra application and just need to include some java library. That was the reason for me for creating jetty-rackup some years ago. Now updated to run with the newest JRuby 1.7 and freshly repackaged as a gem with bundler. Thanks to erdeszt for the contribution!

Filed under ruby rails JVM

0 notes

Git im praktischen Einsatz - gearconf 2012

Git ist ein immer populärer werdendes Source Code Verwaltungssystem. Aber lohnt sich der Umstieg z.B. von Subversion für mein Team? Neben den besonderen Features von Git (Offline-Fähigkeit, Geschwindigkeit, bisect) werden im Vortrag auch mögliche Workflows vorgestellt, die je nach Team und Produktionszyklen eingesetzt werden können. Außerdem erfahren Sie, warum keine aufwendige Git-Server Installation nötig ist und wie man Git und SVN nebeneinander im gleichen Projekt nutzen kann.

Nächste Woche präsentiere ich die Antworten auf all diese Fragen bei der gearconf in Düsseldorf.

Filed under gearconf git de gitflow

0 notes

iPhone, iPad und Android im Enterprise-Umfeld - Heise Roadshow

Das letzte Event der Reihe in München ist nun vorbei. Ich fand die Vorträge sehr interessant. Ich kenne das Thema aus der Entwickler-Perspektive. Es ist aber hilfreich zu erfahren, wie ein Anwalt die mobilen Apps aus einem ganz anderen Blickwinkel sieht… Ein besonderes Highlight für mich war auch die live Vorführung auf dem iPhone (inkl. Hacking) vom Security-Experten Andreas Kurtz.

Hier aktualisierte Slides von meinem Vortrag:

Filed under iphone ipad enterprise development Conference

0 notes

Latenz bei Mobilfunk-Datenübertragung: Wunsch und Wirklichkeit

UMTS und die HSDPA Erweiterung versprechen sehr hohe Datenübertragungsraten. Wie sieht es aber mit der Latenz bzw. Paketumlaufzeiten (Round Trip Time) aus? Diese sind entscheidend für eine schnelle Kommunikation mit dem Server, z.B. für eine Business-Anwendung.

Das theoretische Versprechen (dunkelblau) lag bei meinen Messungen an verschiedenen Orten recht weit von der Realität (hell blau).

Sie können die Paketumlaufzeiten aber auch selber hier ermitteln und auch gerne samt Mobilfunkanbieter als Kommentar posten.

Kleine Anmerkung zu Latenz (engl. latency) und Paketumlaufzeiten (engl. RTT - Round Trip Time): die Erstere steht für die Verzögerung auf dem einfachen Weg, die Letztere steht für den Weg hin und zurück. Wenn der Server blitzschnell ausliefert, dann beträgt RTT genau das Doppelte der Latenz.

Mehr zum Thema auch in meinem Vortrag bei Heise Roadshow.

Filed under mobile performance network

2 notes

JavaScript Conference 2012 in Düsseldorf, Germany

Thanks to all people attended my talk and the workshop at the JavaScript Conference 2012 in Düsseldorf, Germany.

Due to spontanity of my talk - I had to step in for a fellow JavaScript enthusiast, who has suddenly become ill - there are no slides. So instead of slides I am posting links to the frameworks I mentioned in the talk.

Packaging hybrid apps for different platforms

You can package a hybrid app for different platforms with

Frameworks targeting single-page web applications for mobile

Lightweight frameworks

These are general purpose frameworks which are very lightweight and for this reason well suitable for mobile browsers:

  • zepto.js gives you the jQuery like, $ based syntax with much less footprint
  • underscore.js, backbone.js offer ligth weight model view controller (MVC) structure for your JavaScript application
  • mustache templating engine

Things you can easily do from Browser

  • watch for GPS location
  • create animations
  • use vector graphics
  • play video

Things you can get JavaScript API for (s. hybrid app frameworks)

  • access camera - capture photos
  • measure acceleration
  • compass
  • work with contacts database
  • check network state and cellular network information
  • create visual, audible and tactile device notifications

Workshop “App Development with JavaScript”

In the workshop we’ve created a small, native-app-looking web app using iUI. The app shows a list of current orders. When the user selects an order, order details are loaded via AJAX request and a small form is shown. User can add additional comments then.

iUI is a minimalistic JavaScript and CSS framework. You can download it here or read documentation for the current version, which recently implemented theming.

Filed under javascript conference germany mobile