<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/feed.atom.xml" media="screen"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <id>tag:speakerdeck.com,2005:/bluesmoon</id>
  <link rel="alternate" type="text/html" href="https://speakerdeck.com"/>
  <link rel="self" type="application/atom+xml" href="https://speakerdeck.com/bluesmoon.atom"/>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/1331179</id>
    <published>2025-02-25T09:56:54-05:00</published>
    <updated>2025-02-28T10:21:54-05:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/bluesmoon/the-statistics-of-anomaly-detection"/>
    <title>The Statistics of Anomaly Detection</title>
    <content type="html">If you collect any kind of real-time data, you're probably interested getting alerted when this data goes out of whack, but setting static thresholds has the downside of having a lot of false positives. Using Anomaly Detection can help determine normal patterns and alert you when those go out of whack.
In this talk we'll look at some of the methods of detecting anomalies in your data.

https://confoo.ca/en/2025/session/the-statistics-of-anomaly-detection

Leave feedback at https://confoo.ca/en/2025/feedback/DB5044AB426889A6A2CA1510FBB56617</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/df9f4e14d5a341899ad081d3f1c15817/preview_slide_0.jpg?33991096" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Philip Tellis (@bluesmoon)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/1331178</id>
    <published>2025-02-25T09:54:28-05:00</published>
    <updated>2025-02-26T21:54:56-05:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/bluesmoon/core-web-vitals-and-their-effect-on-user-experience"/>
    <title>Core Web Vitals and their effect on User Experience</title>
    <content type="html">The Core Web Vitals - Largest Contentful Paint, Interaction to Next Paint, and Cumulative Layout Shift - were chosen because they are a close proxy for how good or bad a user experience is. There are some things to be aware of... Are they available on all page types, or across browsers, when do they become available, how do we capture them, etc.

In this talk we'll understand what the Core Web Vitals are and how to make use of them.

https://confoo.ca/en/2025/session/core-web-vitals-and-their-effect-on-user-experience

Leave feedback at https://confoo.ca/en/2025/feedback/D0D5DA589D54778514141144094BA3C0</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/a8c68025a6814ef0aeb09f30761ddf34/preview_slide_0.jpg?34019508" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Philip Tellis (@bluesmoon)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/1266674</id>
    <published>2024-10-24T19:20:33-04:00</published>
    <updated>2024-10-24T19:21:54-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/bluesmoon/measuring-and-analyzing-core-web-vitals"/>
    <title>Measuring &amp; Analyzing Core Web Vitals</title>
    <content type="html"></content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/76d77bdb2b14456a935eaee72a7d2af8/preview_slide_0.jpg?32323141" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Philip Tellis (@bluesmoon)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/1211799</id>
    <published>2024-07-12T06:06:19-04:00</published>
    <updated>2024-07-12T06:08:21-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/bluesmoon/migrating-from-julia-0-dot-4-to-1-dot-6"/>
    <title>Migrating from Julia 0.4 to 1.6</title>
    <content type="html">When Julia 1.0 was released several years ago, we were faced with the challenge of migrating over our large Julia 0.4 codebase while making sure our customers didn't notice a thing. This talk is a story about reassessing life choices, keeping customers happy, and a quick build, slow release, 5 year, 40 step migration from 0.4 to 1.6. We hope to never have to do this again!

We started our Julia journey with version 0.2 over 10 years ago, and upgraded fairly quickly up to 0.4.7 as new versions were released. Then we started getting more customers, and our APIs stabilised, and migrations became expensive, so we sat at 0.4.7, watching every quarter as various dependencies reached the end of their supported lives.

Given that migrations were expensive, we knew that whenever we migrated, it we'd have to make it count for many years to come. We started migrating our code to 1.0, deciding to skip all the advice about migrating to 0.7 first. While this was happening, Julia moved to 1.1, 1.2, 1.3, 1.4, and 1.5, so we decided to jump to 1.5 instead, and then Julia released 1.6.

Over the course of the migration we developed a series of 40 steps that allowed us to change the underlying library while requiring only minimal changes to our customers' code.

In this talk, we will quickly go over some of the more surprising changes we've had to make. We will not discuss plans for 1.10 or 1.11.</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/b94d56230cb4476e8f5a495ccc3f22e9/preview_slide_0.jpg?30963604" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Philip Tellis (@bluesmoon)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/1211050</id>
    <published>2024-07-10T19:04:52-04:00</published>
    <updated>2024-07-11T10:08:34-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/bluesmoon/using-julia-in-an-anomaly-detection-pipeline-juliacon-2024"/>
    <title>Using Julia in an Anomaly Detection Pipeline (JuliaCon 2024)</title>
    <content type="html">Julia is a great multi-purpose language, but it also fits in as a component in a larger multi-language ecosystem. At Akamai, we use Julia as part of our data pipeline to do Anomaly Detection and Alerting on web performance data.

In this talk, I'll cover the tasks delegated to Julia as well as how it fits into the rest of our development and operations stack.

Julia is very good at running data analysis on columnar data and temporal data, ie, the kind of data we have a lot of where I work. We have packages to do regression analysis, hypothesis testing, signal processing, and more, allowing our development team to focus on business logic and data pipelines.

In this talk, we'll cover how our Data Scientists use Julia to analyze data, and develop algorithms that can then be operationalized into a real time data pipeline and we'll see how Julia complements a Java based web application that handles data collection and alerting.</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/1a1ad3fceeab4786b92ef852551ae52f/preview_slide_0.jpg?30953400" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Philip Tellis (@bluesmoon)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/1210710</id>
    <published>2024-07-10T04:26:24-04:00</published>
    <updated>2024-07-10T04:28:08-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/bluesmoon/curling-with-julia-juliacon-2024"/>
    <title>Curling with Julia (JuliaCon 2024)</title>
    <content type="html">We have a Julia application that communicates with other services over REST APIs. These services use mutual TLS for authentication, which in turn requires the use of client side TLS certificates. We found that LibCURL was the best way to do HTTPS with client certificates, but with a very C like interface, it was hard for Julia developers to use.

This led us to build CurlHTTP, which is a very Julia like interface for doing HTTP(S) with LibCURL.

LibCURL.jl and HTTP.jl are the two primary ways to write HTTP clients in Julia. They both have their pros and cons.

HTTP.jl
While HTTP.jl has a very easy to use interface to access the majority of features, including cookie handling and streaming, it suddenly becomes very complicated when you try to use TLS client certificates. HTTP.jl also doesn't have the ability to do multiple downloads in parallel on a single execution thread.

LibCURL.jl
LibCURL makes it very easy to do mutual TLS, supporting client and server TLS certificates with well documented APIs, and has a well documented multiple download interface, but it provides a fairly low level API, and is primarily suited to developers familiar with writing applications in C.

For our use case, we decided to build a higher level Julia wrapper around LibCURL's HTTP functionality (similar to what SMTPClient.jl does for SMTP over LibCURL), while making some of curl's more complicated features easy to use in a Julian way.

CurlHTTP.jl
The result is CurlHTTP.jl, which provides a high level HTTP interface to LibCURL, supporting single and multiple downloads, mutual TLS, and data streaming.

Talk Structure
This talk will first briefly cover the features of CurlHTTP and how to use it.
We will then spend a little more time going into some of the nuances and gotchas we faced while developing this library, particularly with passing Julian data types through the C interface and back to our callbacks, and with dealing with memory management in a clean way.</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/d790469d101542b880ad1798db5d124e/preview_slide_0.jpg?30939588" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Philip Tellis (@bluesmoon)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/1166983</id>
    <published>2024-04-02T20:19:51-04:00</published>
    <updated>2024-04-02T20:21:13-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/bluesmoon/curling-with-julia"/>
    <title>Curling with Julia</title>
    <content type="html">Julia already has LibCURL packaged with it, and has all the packages behind JuliaWeb to do HTTP, so why did we need another HTTP package built on LibCURL?

In this talk I go over our motivation for writing CurlHTTP, and talk about some of the cool features that differentiate it from other libraries available in Jula. We’ll look at the CurlEasy and CurlMulti interfaces and show how easy it is to do things like mutual TLS (mTLS) authentication.

CurlHTTP is in the Package Registry and is available on github at https://github.com/bluesmoon/CurlHTTP.jl
</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/2fd59263133742f2a90117f828628719/preview_slide_0.jpg?29582137" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Philip Tellis (@bluesmoon)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/1025833</id>
    <published>2023-05-11T13:38:18-04:00</published>
    <updated>2023-05-12T05:01:20-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/bluesmoon/we-love-speed-understanding-cognitive-biases-in-performance-measurement"/>
    <title>We Love Speed: Understanding Cognitive Biases in Performance Measurement</title>
    <content type="html">When measuring web performance, we often try to get a single number that we can trend over time. This may be the median page load time, hero image time, page speed score, or core web vitals score. But is it really that simple?

Users seldom visit just a single page on a site, so how do we account for varying performance across multiple pages? How do we tell which page’s performance impacts the overall user experience? How do various cognitive biases affect the user’s perception of our site’s performance?

As developers and data analysts, we have our own biases that affect how we look at the data and which problems we end up trying to solve. Often our measurements themselves may be affected by our confirmation bias.

This talk is targeted at individuals who want to understand the business impact of their site’s performance, and how biases in data can affect that.

In this talk, we’ll go into different biases that may affect user perception as well as our ability to measure that perception, and ways in which to identify if our data exhibits these patterns.

References:
&lt;a href="https://archive.org/details/memorycontributi00ebbiuoft"&gt;Ebbinghaus, Hermann (1913). On memory: A contribution to experimental psychology&lt;/a&gt;
&lt;a href="http://www.vwl.tuwien.ac.at/hanappi/TEI/momentsfull.pdf"&gt;Kahneman, Daniel (2000). "Evaluation by moments, past and future"&lt;/a&gt;
&lt;a href="http://assets.csom.umn.edu/assets/71516.pdf"&gt;Baumeister, Roy F.; Finkenauer, Catrin; Vohs, Kathleen D. (2001). "Bad is stronger than good"&lt;/a&gt;
&lt;a href="https://books.google.com/books?id=C7KbGmTg3qUC&amp;pg=PA191"&gt;Staw, Barry M. (1997). "The escalation of commitment: An update and appraisal"&lt;/a&gt;
&lt;a href="https://www.researchgate.net/publication/228471310_The_Sunk_Cost_and_Concorde_Effects_Are_Humans_Less_Rational_Than_Lower_Animals"&gt;Arkes, Hal R.; Ayton, Peter (1999). "The sunk cost and Concorde effects"&lt;/a&gt;
&lt;a href="https://blog.radware.com/applicationdelivery/applicationaccelerationoptimization/2013/12/mobile-web-stress-the-impact-of-network-speed-on-emotional-engagement-and-brand-perception-report/"&gt;The impact of network speed on emotional engagement&lt;/a&gt;
&lt;a href="https://www.ericsson.com/en/press-releases/2016/2/streaming-delays-mentally-taxing-for-smartphone-users-ericsson-mobility-report"&gt;Ericsson ConsumerLab neuro research 2015&lt;/a&gt;
&lt;a href="https://nonsns.github.io/paper/rossi19www.pdf"&gt;Wikipedia Paper on User Satisfaction v/s Performance&lt;/a&gt;
&lt;a href="https://doi.org/10.1016/j.ijhcs.2004.01.002"&gt;Toward a more civilized design: studying the effects of computers that apologize&lt;/a&gt;
&lt;a href="https://uxdesign.cc/the-fastest-way-to-pinpoint-frustrating-user-experiences-1f8b95bc94aa"&gt;The fastest way to pinpoint frustrating user experiences&lt;/a&gt;
</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/d8ed25ffdcca4049b268c145fdd2bbb2/preview_slide_0.jpg?25591324" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Philip Tellis (@bluesmoon)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/942063</id>
    <published>2022-10-25T11:43:33-04:00</published>
    <updated>2022-10-26T10:31:18-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/bluesmoon/1000-javascript-errors-are-as-good-as-none"/>
    <title>1000 JavaScript errors are as good as None</title>
    <content type="html">Does your site’s webdev console show thousands of errors on a user’s browser but none on yours? Do you receive complaints from users that they’re unable to complete a purchase and you can’t reproduce it on your end?

When studying JavaScript errors, we can easily get lost in a very large number of errors that all seem to say the same thing. How do we tell if different errors really refer to the same root cause? How do we tell which errors are the most important to address? If we had to pick just one error to fix, how do we tell which one has the most impact on our users and business?

In this talk, we look at ways to de-duplicate JavaScript errors across browsers and devices, and then how to identify which ones affect our users the most.

Do some errors block the page from rendering? Do other errors cause increased user frustration? Is there an error that prevents users from finishing a checkout flow?

Presented at: &lt;a href="https://javascript-conference.com/javascript-practices-tools/1000-javascript-errors-are-as-good-as-none/"&gt;iJS Munich&lt;/a&gt;</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/6f61854b2242451ab47a6de69258bfdc/preview_slide_0.jpg?23165647" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Philip Tellis (@bluesmoon)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/942059</id>
    <published>2022-10-25T11:05:45-04:00</published>
    <updated>2022-10-26T10:28:56-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/bluesmoon/understanding-cognitive-biases-in-performance-measurement"/>
    <title>Understanding Cognitive Biases in Performance Measurement</title>
    <content type="html">When measuring web performance, we often try to get a single number that we can trend over time. This may be the median page load time, hero image time, page speed score, or core web vitals score. But is it really that simple?

Users seldom visit just a single page on a site, so how do we account for varying performance across multiple pages? How do we tell which page’s performance impacts the overall user experience? How do various cognitive biases affect the user’s perception of our site’s performance?

As developers and data analysts, we have our own biases that affect how we look at the data and which problems we end up trying to solve. Often our measurements themselves may be affected by our confirmation bias.

In this talk, we go into different biases that may affect user perception as well as our ability to measure that perception, and ways in which to identify if our data exhibits these patterns.

Presented at: &lt;a href="https://javascript-conference.com/general-web-development/understanding-cognitive-biases-in-performance-measurement/"&gt;iJS Munich&lt;/a&gt;</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/4d960b41b0a6491a8118315c3f78053a/preview_slide_0.jpg?23164786" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Philip Tellis (@bluesmoon)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/682731</id>
    <published>2020-11-16T10:51:13-05:00</published>
    <updated>2020-11-18T10:43:27-05:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/bluesmoon/understanding-emotion-for-happy-users"/>
    <title>Understanding Emotion for Happy Users</title>
    <content type="html">Blog Post: https://tech.bluesmoon.info/2020/11/understanding-emotion-for-happy-users.html

There is little doubt that closely watched metrics tend to improve over time while metrics that are either uninteresting, or hard to collect tend to get ignored, and often get worse.

Web developers and operations professionals have many tools available to understand and improve the overall performance and health of their websites. Tools that tell us how fast our site is, what the bounce, or conversion rate is, whether any links resulted in a 404, and more. All these tools focus on making development more efficient and reducing errors.

When we focus only on improving raw numbers, we forget that there’s a human on the other end who can become frustrated with an overall bad experience and not just the numbers we’re looking at.

In this talk we will look at how to collect, analyse, and act on a few metrics that tell us more about how our user feels when using the site. We can trend how these metrics change over a user’s browsing experience, and we can improve over time the metric that really matters: user happiness.

Some of the metrics we’ll look at are:
* Rage clicks, missed clicks, and dead clicks
* Cursor thrashing
* LD50 (median lethal dose)

We’ll try and correlate these metrics with things that are easy to improve developmentally, like smoothness, jank, visible transitions, and more.

At the end of this talk you will understand which metrics are useful to measure, how to measure them, and how to tie them in to your development goals.
</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/94b2967bceed4fd0b5c590cac840e264/preview_slide_0.jpg?16716295" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Philip Tellis (@bluesmoon)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/520283</id>
    <published>2019-05-30T10:50:52-04:00</published>
    <updated>2019-05-30T10:52:39-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/bluesmoon/understanding-network-protocols-and-server-configuration"/>
    <title>Understanding Network Protocols &amp; Server Configuration</title>
    <content type="html">In the previous talk, we covered some easy wins with performance optimisation. In this talk, we’ll look at aspects of frontend performance that need to be tuned or fixed server-side, either via a web server, or operating system configuration.

We’ll look at HTTP level questions like:
* How does H2 prioritization work?
* How does H2 push work?
* What is QUIC (HTTP/3)?

We’ll also look at TCP level questions like:
* What are MTU, MSS, and TCP Windows and how do they affect performance?
* What are TCP slow-start and fast-open?
* How to use Wireshark to study network activity?

At the end of this session, attendees will understand how to debug low network level performance problems, and configure systems for performance improvements.</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/c1dedd74f937478fbdf0e842913c9fa2/preview_slide_0.jpg?12701695" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Philip Tellis (@bluesmoon)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/520000</id>
    <published>2019-05-29T11:02:12-04:00</published>
    <updated>2019-05-29T11:06:01-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/bluesmoon/improving-frontend-performance"/>
    <title>Improving Frontend Performance</title>
    <content type="html">There are many areas to work on when improving web performance. For every type of resource that makes up a page, there are different ways of optimising them. In this talk, we’ll look at several low hanging fruit – assets that can be optimised with very little work, most of which can be automated into your CI pipeline. We’ll then go into some more advanced front end topics that require development work, and humans to make a decision on whether it’s worth it or not.

Topics that we will cover are:

* Image Optimisation
* Compression
* Combining or Splitting CSS &amp; JavaScript
* Whether to use domain sharding or not
* CSS &amp; JavaScript considerations
* Service Workers
* Preload hints

At the end of this talk, attendees will have the skills needed to bring about immediate performance improvements to their sites, often with very little effort.</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/4b7697bd02354d01aafedb9e80dad645/preview_slide_0.jpg?12689991" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Philip Tellis (@bluesmoon)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/519786</id>
    <published>2019-05-28T17:44:25-04:00</published>
    <updated>2019-05-28T18:05:14-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/bluesmoon/understanding-frontend-performance"/>
    <title>Understanding Frontend Performance</title>
    <content type="html">One of the first things to do when working on performance improvements is to start measuring. We cannot improve what we don’t measure, and things that are measured and watched tend to improve over time. The earlier talks in this track discussed which metrics were important to measure. In this talk, we’ll go over how to measure performance, and how to get useful diagnostics out of our tools.

We will cover:

* Tools to measure web performance
* Understanding waterfalls
* Understanding browser diagnostic data
* Measuring RUM data
* How do modern web applications complicate the situation?
* Single Page Applications (SPAs)
* Accelerated Mobile Pages (AMP</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/ea6bef85188549588b3b4af138c6ffa2/preview_slide_0.jpg?12683893" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Philip Tellis (@bluesmoon)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/519771</id>
    <published>2019-05-28T15:26:34-04:00</published>
    <updated>2019-05-28T15:27:45-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/bluesmoon/metrics-that-matter"/>
    <title>Metrics that Matter</title>
    <content type="html">Whenever we speak about measuring web performance and user experience, we typically refer to static events in the browsing experience. Modern websites, however, are far from static, and user interactions with these websites have continuous aspects that cannot be represented by distinct events.

* How do you measure user frustration?
* How do you tell how fast your users expect your site to be?
* How do you tell if users were frustrated or annoyed before they got to your site or if your site caused that frustration?
* What are TTVR, TTI, TTFI, FID, and which of them is the most important?
* How do you tell if your page locks up during user interaction?

In this talk, we’ll look at some new user experience metrics. We’ll find out how to measure page responsiveness, smoothness, jank, and usability. We’ll learn about things like Rage Clicks, Missed Clicks, Dead Clicks, and Cursor Thrashing. We’ll also look at real user data that we’ve collected showing how these aspects of the page affect user behaviour.</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/6df6ed58ed304a34910df7f64ce13059/preview_slide_0.jpg?12682614" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Philip Tellis (@bluesmoon)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/518694</id>
    <published>2019-05-23T09:45:32-04:00</published>
    <updated>2019-05-23T09:52:26-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/bluesmoon/the-human-aspect-of-performance"/>
    <title>The Human Aspect of Performance</title>
    <content type="html">The performance of a website affects the users of that website in ways that are hard to measure. The lack of responsiveness, lag, jank, and UI lock ups can cause perceptual dissonance that break the user’s flow of thought. A page not responding in the way the user expects, or as fast as the user expects it to, can result in frustration and anger.

From a business point of view, frustrated and angry users are unlikely to convert, and buy items from the site.

Apart from the psychological and emotional effects of bad performance, the factors that result in bad performance can also make sites expensive to use. How much bandwidth does your site require to be downloaded? How much does that bandwidth cost in different parts of the world? How expensive is your site in terms of battery usage?</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/807b99547044481cac4603261e4cb2cd/preview_slide_0.jpg?12644242" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Philip Tellis (@bluesmoon)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/468946</id>
    <published>2018-10-09T11:15:04-04:00</published>
    <updated>2018-10-09T11:18:07-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/bluesmoon/ux-and-performance-metrics-that-matter-a062d37f-e6c7-4b8a-8399-472ec76bb75e"/>
    <title>UX &amp; Performance: Metrics that Matter</title>
    <content type="html">In this talk, we’ll look at some of the new user experience metrics that the boomerang team has been collecting. We’ll find out how to measure page responsiveness, smoothness, jank, and usability. We’ll learn about things like Rage Clicks, Missed Clicks, and Dead Clicks. We’ll also look at real user data that we’ve collected showing how these aspects of the page affect user behaviour.

JavaScript provides us with many hooks into measuring performance and user experience. Let’s learn to collect them and understand what to expect when we optimise for them.</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/789c43417aa447019226908ac6c7ff0a/preview_slide_0.jpg?10932997" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Philip Tellis (@bluesmoon)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/402502</id>
    <published>2017-08-07T18:30:36-04:00</published>
    <updated>2017-08-08T20:04:17-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/bluesmoon/sciencing-data"/>
    <title>Sciencing Data</title>
    <content type="html">A short overview of what Data Science is and some of the kinds of insights we look for at Akamai.

visual data
like spice on a hot griddle
patterns emerge</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/52bd61a372674860bebb06e0ec19fff0/preview_slide_0.jpg?8395906" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Philip Tellis (@bluesmoon)</name>
    </author>
  </entry>
  <title>Philip Tellis (@bluesmoon) on Speaker Deck</title>
  <updated>2025-02-25T09:56:54-05:00</updated>
</feed>
