Computer networks have redundant links between machines so that if one fails others can take over to guarantee deliverability. However, as we move up the stack to Person to Person communication protocols via the net, this redundancy gets dropped. Fallback messaging is a means to allow communication between two people to continue even if some of the underlying service providers fail.
Opensource clients like ayttm, eb, gaim, kopete, and transports like jabber have the edge here, let's find out how and why.
More info here: http://tech.bluesmoon.info/2004/09/fallback-messaging.html
Frontend Performance: Beginner to Expert to Crazy PersonPhilip Tellis
There’s no such thing as fast enough. You can always make your website faster. This talk will show you how. The very first requirement of a great user experience is actually getting the bytes of that experience to the user before they they get tired and leave.In this talk we’ll start with the basics and get progressively insane. We’ll go over several frontend performance best practices, a few anti-patterns, the reasoning behind the rules, and how they’ve changed over the years. We’ll also look at some great tools to help you.
Frontend Performance: De débutant à Expert à Fou FurieuxPhilip Tellis
Frontend Performance Beginner to Expert to Crazy Person
The very first requirement of a great user experience is actually getting the bytes of that experience to the user before they they get tired and leave.
In this talk we'll start with the basics and get progressively insane. We'll go over several frontend performance best practices, a few anti-patterns, the reasoning behind the rules, and how they've changed over the years. We'll also look at some great tools to help you.
La performance front-end de débutant, à expert, à fou furieux !
La toute première condition nécessaire à une bonne expérience utilisateur est de pouvoir obtenir les octets de cette expérience avant que l'utilisateur ne se lasse et parte.
Nous débuterons cette conférence avec les bases pour progressivement devenir démentiel. Nous aborderons plusieurs des meilleurs pratiques de la performance front-end, quelques anti-patterns à éviter, le raisonnement derrière les règles, et comment ces dernières ont changé au fil des ans. Nous regarderons d'un peu plus près quelques très bon outils qui peuvent vous aider.
Frontend Performance: Expert to Crazy PersonPhilip Tellis
The document outlines steps for front-end performance optimization, beginning with basic techniques like caching, compression and domain sharing and progressing to more advanced strategies involving preloading, parallel downloads, and predicting response times. It was presented by Philip Tellis at WebPerfDays New York and includes references for further reading on topics like CDNs, TCP tuning, and the page visibility API.
RUM isn’t just for page level metrics anymore. Thanks to modern browser updates and new techniques we can collect real user data at the object level, finding slow page components and keeping third parties honest.
In this talk we will show you how to use Resource Timing, User Timing, and other browser tricks to time the most important components in your page. We’ll also share recipes for several of the web’s most popular third parties. This will give you a head start on measuring object level performance on your own site.
Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...Philip Tellis
The document outlines steps web performance experts take to optimize frontend performance, moving from beginner to advanced techniques. It starts with basic optimizations like enabling gzip, caching, and image optimization. It then discusses more advanced strategies like using a CDN, splitting JavaScript, auditing CSS, and parallelizing downloads. Finally it discusses very advanced techniques like pre-loading assets, detecting broken Accept-Encoding headers, and understanding how to optimize for HTTP/2. The document provides references for further information on each topic.
Frontend Performance: Beginner to Expert to Crazy PersonPhilip Tellis
The document discusses front-end web performance optimization from beginner to expert levels. At the beginner level, it recommends starting with basic optimizations like measuring performance, enabling gzip compression, optimizing images, and caching. At the expert level, it discusses more advanced techniques like using a CDN, splitting JavaScript files, auditing CSS, and flushing content early. Finally, it outlines "crazy" optimizations like pre-loading assets, post-load fetching, and understanding round-trip network latency.
Frontend Performance: Beginner to Expert to Crazy PersonPhilip Tellis
Boston Web Performance Meetup, April 22, 2014
The very first requirement of a great user experience is actually getting the bytes of that experience to the user before they they get fed up and leave. In this talk we'll start with the basics and get progressively insane. We'll go over several front-end performance best practices, a few anti-patterns, the reasoning behind the rules, and how they've changed over the years. We'll also look at some great tools to help you.
Schedule: 6:30, pizza
7:15: talk
Frontend Performance: Beginner to Expert to Crazy PersonPhilip Tellis
The very first requirement of a great user experience is actually getting the bytes of that experience to the user before they they get fed up and leave.
In this talk we'll start with the basics and get progressively insane. We'll go over several frontend performance best practices, a few anti-patterns, the reasoning behind the rules, and how they've changed over the years. We'll also look at some great tools to help you.
The document appears to be a presentation on measuring real user experiences using Real User Monitoring (RUM) and analyzing the data. It discusses using RUM tools like Boomerang to collect data on user behavior and performance in real-time. The presentation then examines specific metrics collected like user patience, cache behavior, and how quickly new software versions are distributed based on the RUM data.
Improving 3rd Party Script Performance With IFramesPhilip Tellis
This document discusses using <IFRAME> tags to improve the performance of third party scripts. It describes how third party scripts normally block page loading and proposes using an iframe to load scripts asynchronously in parallel without blocking. It provides code for creating an iframe targeted to load scripts, handling cross-domain issues, and modifying the Method Queue Pattern to support iframes. The approach allows third party scripts to load without blocking the main page load.
The document discusses Boomerang, an open source tool for measuring real user performance on websites. It measures load times, bandwidth usage, latency and other metrics. Additional functionality can be added through plugins. The presentation encourages developers to use Boomerang to analyze user behavior, identify performance issues, and continuously improve sites based on real user data. It provides several examples of insights that can be gained, such as how performance varies by country, browser, and internet connection speed.
Abusing JavaScript to measure Web Performance, or, "how does boomerang work?"Philip Tellis
The document is a presentation about abusing JavaScript to measure web performance. It discusses using JavaScript to measure network latency, TCP handshake time, network throughput, DNS lookup time, IPv6 support and latency, and other performance metrics. It provides code examples for measuring each metric in JavaScript and notes challenges to consider. The presentation encourages the use of the open source Boomerang library for accurate performance measurement.
The Statistics of Web Performance AnalysisPhilip Tellis
If you're interested in measuring real user web performance, you'll find tools like boomerang or episodes quite handy. Some popular web frameworks even have modules that make it easy to add them to your site. However, what does one do once one has collected the data? How do you filter out the noise and get meaningful insights from the data?
In this talk, I'll go over the techniques we've picked up by analyzing millions of datapoints daily. I'll cover some simple rules to filter out invalid data, and the statistics to analyze and make sense of what's left. Do you use the mean, median or mode? What about the geometric mean and standard deviation? How confident are we in the results? And finally, why should we care?
This talk should help you gain useful insights from a histogram, or at the very least point you in the right direction for further analysis.
Abusing JavaScript to Measure Web PerformancePhilip Tellis
While building boomerang, we developed many interesting methods to measure network performance characteristics using JavaScript running in the browser. While the W3C's NavigationTiming API provides access to many performance metrics, there's far more you can get at with some creative tweaking and analysis of how the browser reacts to certain requests.
In this talk, I'll go into the details of how boomerang works to measure network throughput, latency, TCP connect time, DNS time and IPv6 connectivity. I'll also touch upon some of the other performance related browser APIs we use to gather useful information. I will NOT be covering the W3C Navigation Timing API since that's been covered by Alois Reitbauer in a previous Boston Web Perf talk.
Analysing network characteristics with JavaScriptPhilip Tellis
This document contains slides from a presentation about using JavaScript to analyze network performance. It discusses how to measure latency, TCP handshake time, network throughput, DNS lookup time, IPv6 support and latency, and private network scanning using JavaScript. Code examples are provided for measuring each of these network metrics by making image requests and timing the responses. The presentation emphasizes that accurately measuring network throughput requires requesting resources of different sizes and accounting for TCP slow start. It also notes some challenges around caching and geo-located DNS results.
A Node.JS bag of goodies for analyzing Web TrafficPhilip Tellis
This document is a presentation about analyzing web traffic using Node.js modules. It introduces Node.js and the npm package manager. It then discusses modules for parsing HTTP logs, including parsing user agents, handling IP addresses, geolocation, and date formatting. It also covers modules for statistical analysis like fast-stats, gauss, and statsd. The presentation provides code examples for using these modules and takes questions at the end.
The document discusses input validation and output encoding to prevent vulnerabilities like XSS and SQL injection. It provides examples of how unexpected input can enable attacks, like special characters or invalid data types being passed to endpoints and rendered unencoded. The key lessons are that input validation is needed to receive clean, expected data, while output encoding is crucial to prevent exploits when displaying data to users. Both techniques are important defenses that address different but related issues.
Messing with JavaScript and the DOM to measure network characteristicsPhilip Tellis
This document discusses using JavaScript to analyze network performance. It covers measuring latency, TCP handshake time, DNS lookup time, network throughput, and IPv6 support. The document provides code examples for measuring each of these metrics using JavaScript and analyzing image load times. It notes that network conditions vary and accurate measurements require statistical analysis over many samples.
Boomerang: How fast do users think your site is?Philip Tellis
This document discusses how the Boomerang tool works to measure website performance from the end user's perspective. Boomerang is a piece of JavaScript code that measures network latency and throughput to the website, as well as page load time, and sends this performance data back to the website owners. It provides more accurate real-world performance metrics than lab testing by measuring performance across varying user devices, browsers, networks and other conditions that are outside the owners' control.
Best Programming Language for Civil EngineersAwais Yaseen
The integration of programming into civil engineering is transforming the industry. We can design complex infrastructure projects and analyse large datasets. Imagine revolutionizing the way we build our cities and infrastructure, all by the power of coding. Programming skills are no longer just a bonus—they’re a game changer in this era.
Technology is revolutionizing civil engineering by integrating advanced tools and techniques. Programming allows for the automation of repetitive tasks, enhancing the accuracy of designs, simulations, and analyses. With the advent of artificial intelligence and machine learning, engineers can now predict structural behaviors under various conditions, optimize material usage, and improve project planning.
Best Practices for Effectively Running dbt in Airflow.pdfTatiana Al-Chueyr
As a popular open-source library for analytics engineering, dbt is often used in combination with Airflow. Orchestrating and executing dbt models as DAGs ensures an additional layer of control over tasks, observability, and provides a reliable, scalable environment to run dbt models.
This webinar will cover a step-by-step guide to Cosmos, an open source package from Astronomer that helps you easily run your dbt Core projects as Airflow DAGs and Task Groups, all with just a few lines of code. We’ll walk through:
- Standard ways of running dbt (and when to utilize other methods)
- How Cosmos can be used to run and visualize your dbt projects in Airflow
- Common challenges and how to address them, including performance, dependency conflicts, and more
- How running dbt projects in Airflow helps with cost optimization
Webinar given on 9 July 2024
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsMydbops
This presentation, delivered at the Postgres Bangalore (PGBLR) Meetup-2 on June 29th, 2024, dives deep into connection pooling for PostgreSQL databases. Aakash M, a PostgreSQL Tech Lead at Mydbops, explores the challenges of managing numerous connections and explains how connection pooling optimizes performance and resource utilization.
Key Takeaways:
* Understand why connection pooling is essential for high-traffic applications
* Explore various connection poolers available for PostgreSQL, including pgbouncer
* Learn the configuration options and functionalities of pgbouncer
* Discover best practices for monitoring and troubleshooting connection pooling setups
* Gain insights into real-world use cases and considerations for production environments
This presentation is ideal for:
* Database administrators (DBAs)
* Developers working with PostgreSQL
* DevOps engineers
* Anyone interested in optimizing PostgreSQL performance
Contact info@mydbops.com for PostgreSQL Managed, Consulting and Remote DBA Services
Kief Morris rethinks the infrastructure code delivery lifecycle, advocating for a shift towards composable infrastructure systems. We should shift to designing around deployable components rather than code modules, use more useful levels of abstraction, and drive design and deployment from applications rather than bottom-up, monolithic architecture and delivery.
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc
Six months into 2024, and it is clear the privacy ecosystem takes no days off!! Regulators continue to implement and enforce new regulations, businesses strive to meet requirements, and technology advances like AI have privacy professionals scratching their heads about managing risk.
What can we learn about the first six months of data privacy trends and events in 2024? How should this inform your privacy program management for the rest of the year?
Join TrustArc, Goodwin, and Snyk privacy experts as they discuss the changes we’ve seen in the first half of 2024 and gain insight into the concrete, actionable steps you can take to up-level your privacy program in the second half of the year.
This webinar will review:
- Key changes to privacy regulations in 2024
- Key themes in privacy and data governance in 2024
- How to maximize your privacy program in the second half of 2024
How Social Media Hackers Help You to See Your Wife's Message.pdfHackersList
In the modern digital era, social media platforms have become integral to our daily lives. These platforms, including Facebook, Instagram, WhatsApp, and Snapchat, offer countless ways to connect, share, and communicate.
Implementations of Fused Deposition Modeling in real worldEmerging Tech
The presentation showcases the diverse real-world applications of Fused Deposition Modeling (FDM) across multiple industries:
1. **Manufacturing**: FDM is utilized in manufacturing for rapid prototyping, creating custom tools and fixtures, and producing functional end-use parts. Companies leverage its cost-effectiveness and flexibility to streamline production processes.
2. **Medical**: In the medical field, FDM is used to create patient-specific anatomical models, surgical guides, and prosthetics. Its ability to produce precise and biocompatible parts supports advancements in personalized healthcare solutions.
3. **Education**: FDM plays a crucial role in education by enabling students to learn about design and engineering through hands-on 3D printing projects. It promotes innovation and practical skill development in STEM disciplines.
4. **Science**: Researchers use FDM to prototype equipment for scientific experiments, build custom laboratory tools, and create models for visualization and testing purposes. It facilitates rapid iteration and customization in scientific endeavors.
5. **Automotive**: Automotive manufacturers employ FDM for prototyping vehicle components, tooling for assembly lines, and customized parts. It speeds up the design validation process and enhances efficiency in automotive engineering.
6. **Consumer Electronics**: FDM is utilized in consumer electronics for designing and prototyping product enclosures, casings, and internal components. It enables rapid iteration and customization to meet evolving consumer demands.
7. **Robotics**: Robotics engineers leverage FDM to prototype robot parts, create lightweight and durable components, and customize robot designs for specific applications. It supports innovation and optimization in robotic systems.
8. **Aerospace**: In aerospace, FDM is used to manufacture lightweight parts, complex geometries, and prototypes of aircraft components. It contributes to cost reduction, faster production cycles, and weight savings in aerospace engineering.
9. **Architecture**: Architects utilize FDM for creating detailed architectural models, prototypes of building components, and intricate designs. It aids in visualizing concepts, testing structural integrity, and communicating design ideas effectively.
Each industry example demonstrates how FDM enhances innovation, accelerates product development, and addresses specific challenges through advanced manufacturing capabilities.
Measuring the Impact of Network Latency at TwitterScyllaDB
Widya Salim and Victor Ma will outline the causal impact analysis, framework, and key learnings used to quantify the impact of reducing Twitter's network latency.
Blockchain technology is transforming industries and reshaping the way we conduct business, manage data, and secure transactions. Whether you're new to blockchain or looking to deepen your knowledge, our guidebook, "Blockchain for Dummies", is your ultimate resource.
Details of description part II: Describing images in practice - Tech Forum 2024BookNet Canada
This presentation explores the practical application of image description techniques. Familiar guidelines will be demonstrated in practice, and descriptions will be developed “live”! If you have learned a lot about the theory of image description techniques but want to feel more confident putting them into practice, this is the presentation for you. There will be useful, actionable information for everyone, whether you are working with authors, colleagues, alone, or leveraging AI as a collaborator.
Link to presentation recording and transcript: https://bnctechforum.ca/sessions/details-of-description-part-ii-describing-images-in-practice/
Presented by BookNet Canada on June 25, 2024, with support from the Department of Canadian Heritage.
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Erasmo Purificato
Slide of the tutorial entitled "Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Emerging Trends" held at UMAP'24: 32nd ACM Conference on User Modeling, Adaptation and Personalization (July 1, 2024 | Cagliari, Italy)
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfjackson110191
These fighter aircraft have uses outside of traditional combat situations. They are essential in defending India's territorial integrity, averting dangers, and delivering aid to those in need during natural calamities. Additionally, the IAF improves its interoperability and fortifies international military alliances by working together and conducting joint exercises with other air forces.
An invited talk given by Mark Billinghurst on Research Directions for Cross Reality Interfaces. This was given on July 2nd 2024 as part of the 2024 Summer School on Cross Reality in Hagenberg, Austria (July 1st - 7th)
1. Fallback Messaging
Philip Tellis / philip@bluesmoon.info
Yahoo!
Linux Bangalore 2004 / 2004-12-02
Linux Bangalore 2004 / 2004-12-02 Fallback Messaging
2. $ whoami
Philip Tellis
philip@bluesmoon.info
@bluesmoon
yahoo
geek
Linux Bangalore 2004 / 2004-12-02 Fallback Messaging
3. How do you chat?
Which IM programs do you use?
How many accounts on each?
Do you communicate with the same people over multiple
services?
How often do you use email/SMS to communicate with
these people?
Linux Bangalore 2004 / 2004-12-02 Fallback Messaging
4. Does the server decide whether you can chat or not?
How often has a service gone down for maintenance while
you’re in a conversation?
What happens to your conversation?
What happens to your train of thought?
What happens to logs of the conversation – if any?
Linux Bangalore 2004 / 2004-12-02 Fallback Messaging
5. Do you know your friends by their names or their handles?
Linux Bangalore 2004 / 2004-12-02 Fallback Messaging
6. Act 1, Scene 1, Take 1
Philip and Manish are chatting on MSN about their project
MSN server goes down
Start Y!M, continue conversation
Net goes down, only email working
Send email/SMS saying that we can’t chat anymore
Philip combines all the logs to post to the website
Linux Bangalore 2004 / 2004-12-02 Fallback Messaging
7. Act 1, Scene 1, Take 1
Philip and Manish are chatting on MSN about their project
MSN server goes down
Start Y!M, continue conversation
Net goes down, only email working
Send email/SMS saying that we can’t chat anymore
Philip combines all the logs to post to the website
Linux Bangalore 2004 / 2004-12-02 Fallback Messaging
8. Act 1, Scene 1, Take 1
Philip and Manish are chatting on MSN about their project
MSN server goes down
Start Y!M, continue conversation
Net goes down, only email working
Send email/SMS saying that we can’t chat anymore
Philip combines all the logs to post to the website
Linux Bangalore 2004 / 2004-12-02 Fallback Messaging
9. Act 1, Scene 1, Take 1
Philip and Manish are chatting on MSN about their project
MSN server goes down
Start Y!M, continue conversation
Net goes down, only email working
Send email/SMS saying that we can’t chat anymore
Philip combines all the logs to post to the website
Linux Bangalore 2004 / 2004-12-02 Fallback Messaging
10. Act 1, Scene 1, Take 1
Philip and Manish are chatting on MSN about their project
MSN server goes down
Start Y!M, continue conversation
Net goes down, only email working
Send email/SMS saying that we can’t chat anymore
Philip combines all the logs to post to the website
Linux Bangalore 2004 / 2004-12-02 Fallback Messaging
11. Act 1, Scene 1, Take 1
Philip and Manish are chatting on MSN about their project
MSN server goes down
Start Y!M, continue conversation
Net goes down, only email working
Send email/SMS saying that we can’t chat anymore
Philip combines all the logs to post to the website
Linux Bangalore 2004 / 2004-12-02 Fallback Messaging
12. The idea behind fallback messaging
People care about people, not protocols
Conversations should not be service dependent
Conversation should be continuous even if the service
changes
Person-person messaging approaches pc-pc messaging
Linux Bangalore 2004 / 2004-12-02 Fallback Messaging
13. So what does fallback messaging do?
Automatically pick a protocol to use for messaging
Automatically switch protocols if one goes down without
worrying the user
A single log file irrespective of protocol
Represent a person as a single entity rather than a bunch
of different handles
Linux Bangalore 2004 / 2004-12-02 Fallback Messaging
14. What’s needed?
A single client that talks multiple protocols
The client should group different accounts of a contact into
a single entity
The client should be able to switch between accounts
Perhaps an ability to prioritise the order of fallback
Linux Bangalore 2004 / 2004-12-02 Fallback Messaging
15. Act 1, Scene 1, Take 2
Philip and Manish are chatting on MSN about their project
MSN server goes down
The client switches to Y!M
Net goes down, only email working
Client switches to email/sms
User is notified that he’s now in async mode
The client has a combined log of everything communicated
Linux Bangalore 2004 / 2004-12-02 Fallback Messaging
16. Act 1, Scene 1, Take 2
Philip and Manish are chatting on MSN about their project
MSN server goes down
The client switches to Y!M
Net goes down, only email working
Client switches to email/sms
User is notified that he’s now in async mode
The client has a combined log of everything communicated
Linux Bangalore 2004 / 2004-12-02 Fallback Messaging
17. Act 1, Scene 1, Take 2
Philip and Manish are chatting on MSN about their project
MSN server goes down
The client switches to Y!M
Net goes down, only email working
Client switches to email/sms
User is notified that he’s now in async mode
The client has a combined log of everything communicated
Linux Bangalore 2004 / 2004-12-02 Fallback Messaging
18. Act 1, Scene 1, Take 2
Philip and Manish are chatting on MSN about their project
MSN server goes down
The client switches to Y!M
Net goes down, only email working
Client switches to email/sms
User is notified that he’s now in async mode
The client has a combined log of everything communicated
Linux Bangalore 2004 / 2004-12-02 Fallback Messaging
19. Act 1, Scene 1, Take 2
Philip and Manish are chatting on MSN about their project
MSN server goes down
The client switches to Y!M
Net goes down, only email working
Client switches to email/sms
User is notified that he’s now in async mode
The client has a combined log of everything communicated
Linux Bangalore 2004 / 2004-12-02 Fallback Messaging
20. Act 1, Scene 1, Take 2
Philip and Manish are chatting on MSN about their project
MSN server goes down
The client switches to Y!M
Net goes down, only email working
Client switches to email/sms
User is notified that he’s now in async mode
The client has a combined log of everything communicated
Linux Bangalore 2004 / 2004-12-02 Fallback Messaging
21. Act 1, Scene 1, Take 2
Philip and Manish are chatting on MSN about their project
MSN server goes down
The client switches to Y!M
Net goes down, only email working
Client switches to email/sms
User is notified that he’s now in async mode
The client has a combined log of everything communicated
Linux Bangalore 2004 / 2004-12-02 Fallback Messaging
22. Can we do this today?
FOSS clients like gaim and ayttm can do it
Still needs some work
FOSS clients have the edge
Linux Bangalore 2004 / 2004-12-02 Fallback Messaging
23. Do we really need it?
Probably in very few situations, but we sure want it :P
Data transfer over IM is an application
Linux Bangalore 2004 / 2004-12-02 Fallback Messaging
24. The future of IM
Everyone’s talking about IM interoperability
Sending structured data and not just human readable
conversations over IM
IM transports as a commodity with value added services
above it
Linux Bangalore 2004 / 2004-12-02 Fallback Messaging