4,383 karma · joined January 2, 2010
For example, see https://www.akamai.com/blog/news/the-impact-of-third-party-s... and https://twitter.com/paulcalvano/status/1445244384598011906
It's implemented in this Node library: https://github.com/bluesmoon/node-faststats
Side note: I wish everyone would stop using the term Average to refer to the Arithmetic mean. "Average" just means some statistic used to summarize a dataset. It could be the Arithmetic Mean, Median, Mode(s), Geometric Mean, Harmonic Mean, or any of a bunch of other statistics. We're stuck with AVG because that's the function used by early databases and Lotus 123.
Doesn't work as well for boots though, and tying a fisherman's knot while wearing snow gloves is a pain.
Best to just never use custom headers.
I've written more about this here: https://developer.akamai.com/blog/2015/08/17/solving-options...
Way back in time, maybe around 1998, a friend an I worked on a steganography tool that we called Spyder. I don't remember where it was published or under what license (probably freeware), but the algorithm was incorporated into Hide4PGP (http://www.heinz-repp.onlinehome.de/Hide4PGP.htm), and we stopped work on it.
This post just caused a bit of nostalgia. I can still remember my co-developer taking a break jamming on a bass guitar while we tried to figure out the striping problem (the solution was to compress the data to increase entropy first).
To do it yourself, you need a combination of PainTiming and measuring LongTasks or study the periodicity of setInterval/requestAnimationFrame
The above works for synthetic as well as real users. If you're able to measure real users directly, then you'd also want to look at Input Delays, Rage Clicks, Dead Clicks, Missed Clicks, Scroll Jank.
The main problem is that they confuse DOMInteractive for Time To Interactive. The two events are very different. DOMInteractive is a legacy event that refers to the time when JavaScript can safely interact with the DOM. This really has nothing (or very little) to do with user experience.
Time to Interactive, on the other hand, is the time when a user can expect the page to respond quickly to interactions (clicks, scrolls, keypresses), ie, these user interactions should have no user perceivable latency. This is not a metric that has a corresponding browser event. It requires a bunch of post-processing based on various events. The researchers have made no attempt to calculate TTI.
Source: I've been working in this area of research for 15 years.
Between 2000-2003, I worked on components of the cross protocol IM backend used by many of the multi-protocol messengers back in the early to mid 2000s (eg: Adium, Trillian, Fire, Ayttm, and more). Each of the frontends had different ways to integrate. Trillian used 2 processes with TCP communication between them to get around the GPL licensed backend), Fire, Adium, Ayttm released everything under the GPL.
Eventually most clients moved to using libpurple as the backend (developed by the team behind Gaim), but the devs also started getting older, busier, and having other responsibilities outside of work. The only apps to survive were those that had a business model that allowed them to reuse open source code without having to release any of the code they developed themselves.
I personally stopped working on instant messaging in April 2004, the night before I became a Yahoo employee, though I continued blogging and doing conference talks about the experience:
- https://tech.bluesmoon.info/2004/09/fallback-messaging.html
- https://tech.bluesmoon.info/2011/05/story-of-george-ayttms-m...
- https://tech.bluesmoon.info/2010/11/stream-of-collaboration-...
I cannot give you any tips on managing your time between the two, but you may want to consider raising your prices. Back in 2011, we ran our basic account at $50/mo, Business at $150/mo and Enterprise at $CallMe/mo. We could probably have upped that after a year with all the new features we'd put in, but we were acquired before the 2y mark and dropped the first 2 plans.
We still maintain the open source version of the code, but neither of the original founders work on it (for me it's gone back to being a hobby because there are now people paid full time to work on it). We still get questions about the lag in updates. We typically do quarterly bulk pushes to the open source version now.
Susanna is fluent in several languages, and has written a few books. It's always interesting getting her take on language learning at any age.
What we need to do is create a new `link` element, attach it to the window, assign the url to the link's `href` attribute, and then read that attribute back out. This process converts all relative URLs to absolute URLs, taking BASE into consideration.
Note, that you MUST add the link to the document of the correct window. Adding it to the document of an anonymous iframe will not work because while anonymous iframes inherit a lot of things from the parent, the baseURI isn't one of them.