Ariya Hidayat (@ariyahidayat) is an engineer/technical lead/FOSS fan/blogger/speaker. These days, his activities are mostly on software craftsmanship around HTML5, CSS, JavaScript, and other web technologies.

JavaScript API Design Principles

In this day and age it is pretty common to design a large-scale web application as a collection of modular and reusable components. These components need to have a reasonable set of APIs (application programming interfaces) which deliver against the stipulated engineering criteria. In addition this API set needs to retain ease of use. The success of a module is thus reflected in the way it is being used in other modules. This talk is intended to initiate the discussion on finding the principles for designing a good JavaScript API by observing the interactions between modules, particularly on the influence of an interface on the code patterns. Some good and bad examples found in real-world libraries will be shown, along with a collection of language tools designed to detect and analyze those patterns.

Tweaking CSS3 for Hardware Acceleration

New CSS3 features such as animation, transition, and filters empower web designers to enrich the web pages with various types of interactivity and effects. Modern browsers, both on the desktop and mobile, are capable of rendering these CSS3 effects with the dedicated graphics processing unit (GPU) by using the compositing technique. There has been a lot of well-known CSS3 best practices, often centered around "use 3-d transform”. This talk sheds some more light on the browser interactions with the GPU and explain what happens behind the scenes, particularly for the objective of maximizing the synergy between the GPU and the CPU to have the most optimal CSS rendering performance.