{'fraction_non_alphanumeric': 0.016689847009735744, 'fraction_numerical': 0.005563282336578581, 'mean_word_length': 5.153846153846154, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Software engineering abstractions for the multi-touch revolution

Multi-touch interfaces allow users to use multiple fingers to provide input to a graphical user interface. The idea of allowing users to touch and manipulate digital information with their hands has been subject of research for more than 25 years [5, 4]. Recently several of these research artifacts have found their way to industry, with examples like the iPhone and the Microsoft Surface. Mainstream programming languages do not offer support to deal with the complexity of these new devices. Unlike the evolution in the hardware technology, the complexity of these new devices has not yet been addressed by adequate software engineering abstractions.