The European conquest of the Canary Islands

Europe and the Sea, a new exhibition in Berlin, explores the fundamental role played by the sea in the history and development of Europe. On loan to the exhibition is a British Library manuscript describing an expedition by two French knights, Gadifer La Sale and Jean de Béthencourt, to conquer...

UCLDH Susan Hockey Lecture 2018

Recently we had the pleasure of meeting Professor Carlo Meghini, who came to UCL on 30th May to give the fourth Susan Hockey Lecture in Digital Humanities.

The aim of this annual public lecture series is to celebrate and promote work in Digital Humanities: the application of computational techniques within the arts, humanities, culture and heritage.  Prof Meghini spoke on ‘What can be said, can be said clearly? The role of ontologies in the Digital Humanities’.

The lecture was well attended, with over 100 people registered, and attendees had plenty to discuss afterwards over a glass of wine.

The lecture was filmed and is now available to view on the UCLDH website.

Event poster (detail)

Event poster (detail)

History of the word ‘data’

Sandra Rendgen describes the history of “data” the word and where it stands in present day.

All through the evolution of statistics through the 19th century, data was generated by humans, and the scientific methodology of measuring and recording data had been a constant topic of debate. This is not trivial, as the question of how data is generated also answers the question of whether and how it is capable of delivering a “true” (or at least “approximated”) representation of reality. The notion that data begins to exist when it is recorded by the machine completely obscures the role that human decisions play in its creation. Who decided which data to record, who programmed the cookie, who built the sensor? And more broadly – what is the specific relationship of any digital data set to reality?

Oh, so there’s more to it than just singular versus plural. Imagine that.

Tags: , ,

Kathleen Fitzpatrick 2018-06-22 02:00:17

I went to bed at 8 last night, as I had to get up at 3 for a flight. When I woke up, my watch said 9:30, and I flipped out! Why hadn’t my alarm gone off? I’ve missed my flight! I was all the way up and making the bed before I realized: p.m. In my defense, it was still light out.

A midsummer milestone

To mark midsummer, that most magical of days, we have another exciting update from The Polonsky Foundation England and France Project. In a ground-breaking collaboration, the British Library and the Bibliothèque nationale de France have now digitised and published online 600 out of the selected 800 manuscripts. The remaining 200...

Recovery at DH2018

June 26 2018 to June 29 2018
The countdown has begun for DH2018 , an international conference on Digital Humanities. We are sure we will see many HASTAC members in Mexico City next week! If you're attending, please make sure to attend our panels and introduce yourselves. Recovery scholars will be presenting on US Latino...
Mexico City

Web Animations in WebKit

Over the last 8 months we have been working on adding support for Web Animations, a W3C standard offering Web developers a JavaScript API to create, query and controls animations. While there is work left to do to ship this experimental feature to the Web at large, we feel our implementation has matured enough that, with the release of Safari Technology Preview 59, we can turn Web Animations on by default for our Web developer audience.

An Animation API for the Web

Browser engines have supported various animation features for many years, CSS Transitions and CSS Animations being two widely-supported approaches to authoring efficient animations on the Web. While these features have proven popular, they become limited when developers try to integrate browser-implemented animations via JavaScript:

  • Creating a CSS Transition dynamically requires forcing or waiting for a style invalidation so start and end values can be specified
  • Creating CSS Animations dynamically requires @keyframe rules to be generated and inserted in a global stylesheet
  • Animations created via CSS are not represented via JavaScript and cannot be queried or controlled

For instance, developers would have to resort to code such as this to slide an element 100 pixels to the right:

const element = document.getElementById("my-element");

// Set the start value and transition properties. = "translateX(0)"; = "transform"; = "1s";

// Force a style invalidation.

// Set the end value. = "translateX(100px)";

This approach is not elegant as it forces a style invalidation that causes extra work rather than just letting the browser invalidate styles at the most appropriate time. And this is just one single transition, but what if another library in your webpage also needed to create a transition? This would multiply forced style invalidation for no good reason.

The value of Web Animations lies in having a JavaScript API that preserves the ability to let the browser engine do the heavy lifting of running animations efficiently while enabling more advanced control of your animations. Using Web Animations, we can rewrite the code above with a single method call:¬…

element.animate({ transform: ["translateX(0)", "translateX(100px)"] }, 1000);

A single method call and you’re done! But that’s not all, now you can harness the power of Web Animations with a full-featured API to control this animation:

// Obtain a reference to the animation we created above.
const animation = element.getAnimations()[0];
// Seek the animation to 500ms.
animation.currentTime = 500;
// Pause the animation.

The Web Animations API is very powerful, for instance letting you get a list of all running animations on the document or an individual element, use promises to run code when an animation is ready to start or has completed, reverse an animation, etc.

Integration with CSS

The Web Animations specification goes further than specifying a JavaScript API. It provides a timing and animation model for web browsers to implement features such as CSS Transitions and CSS Animations. In fact, in WebKit, we’ve updated our implementation of these existing CSS technologies so that the same CSS Transitions and Animations you’ve been authoring for years are now represented as Web Animations objects in the browser. Using the getAnimations() method, you can obtain a reference to a CSSTransition or CSSAnimation object which are Animation subclasses. Then you can seek or pause a CSS transition running on an element just like we did above with an animation created using element.animate(). As a developer, you can think of CSS Transitions and Animations as a declarative layer above Web Animations.

Help Wanted

We’re very excited to be bringing the power of Web Animations to WebKit and enabling the technology in Safari Technology Preview 59. But there is still a fair bit of work ahead and we need your help to ensure we have a quality implementation before enabling the feature in Safari. We encourage you to try the new API and report issues that you find, bearing in mind that our current implementation is a bit behind the current state of the specification, and you can track all API changes with bug #186518.

It’s also important to check your existing content using CSS Transitions and Animations for possible regressions. One way to see if a regression you might be seeing is caused by the new Web Animations implementation, try toggling “Web Animations and CSS Integration” under the DevelopExperimental Features menu and see if your page’s behavior differs.