Connect with us

FACEBOOK

What I learned from saying Mass on Facebook Live for a year (from a La-Z-Boy chair)

Published

on

The author offering Mass in his room on Facebook The author offering Mass in his room on Facebook 

For the past year, I have been saying Mass twice every weekend. Our congregation had ashes on Ash Wednesday, exchanged presents during Christmas and prayed together for the families of George Floyd, Breonna Taylor, Tony McDade and so many others over the summer. But none of us have had any physical contact. In fact, most of us probably would not recognize each other if we passed on the street. 

If you had suggested to me the idea of offering Mass on Facebook before the pandemic, I would have rattled off a long list of problems with the concept. Our faith is not meant to be a private “Me and Jesus” activity, but something communal and shared. Also, experiencing sacraments virtually is like viewing a glorious ancient painting that has never been cleaned. Yes, you can get something out of it. But it’s a flat, muted taste of what is truly meant for us. 

We begin each Mass like the disciples, locked in our rooms, isolated and maybe afraid. Then out of nowhere Jesus appears in our midst and brings us together.

But after a year with a virtual congregation, I have to say most of those presumptions were entirely wrong. Rather, I think our church has much to gain from considering the lessons of our online liturgical experiences. 

For two and half years I ran the Facebook page for the Jesuit community at Loyola Marymount University. When the pandemic shut down activity on campus, I thought I would try to offer a way for the community’s Facebook friends (and my own) to safely participate in the sacraments and also feel connected for the few scary weeks we would be unable to go to church. (Do you remember when we thought of the pandemic as something that was going to “blow over?”) Initially, though, I feared something like this would be nearly impossible. How do you “do” Mass on Facebook? 

Advertisement
free widgets for website

It turns out that it is a matter of pushing two buttons, and after a five-second countdown suddenly there you are, live, with sound and image quality that is fine (most of the time). The posts and my page were open to the public, so people could come and participate with me in real time from anywhere in the world or watch later. In fact, while our lives have never been more complicated than in this last year, going to Mass has actually never been easier. There is no fighting with the kids to get in the car, no parking lot traffic, no quest for the best pew. 

While our lives have never been more complicated than in this last year, going to Mass has actually never been easier.

As much as possible, I wanted things to feel “normal.” When addressing the virtual congregation I tried looking right into the camera, as though we were all able to see each other. Whenever it was a time for the congregation to offer prayers or responses, I tried to leave extra time for them to do so. The same went for the sign of peace: Just because we weren’t all in the same room didn’t mean people did not want to reach out to each other virtually or hug the people with whom they were sitting. 

See also  Facebook office cleaner who led protests at London site fears for his job - The Guardian

I didn’t say these Masses from a chapel, either, but from my room. I sit in the La-Z-Boy chair that is standard issue for Jesuits. (It’s a little known fact that the final vow every Jesuit takes is “to always La-Z-Boy.”) There is a little table with the elements needed for Mass to my right, and beyond that a small bookshelf with family photos and trinkets, just like everybody has in their home. 

To be honest, this choice came more from concerns about safety than anything else. The idea of using objects and a space also available to the 35 other Jesuits of my community seemed a recipe for constant anxiety rather than prayer. 

Advertisement
free widgets for website

I love the idea that Mass exists in a space somehow outside the normal passage of time. On Facebook, that concept finds flesh.

But matching the setting of the liturgy to that of the congregation ended up making it instead feel like we were all part of a communal home Mass. People emailed me pictures and stories of themselves watching with their kids on the TV in the kitchen or the living room, or sitting on the porch on vacation. They came any time they wanted, too. I am surprised sometimes to go back to a liturgy from the prior week and discover more prayers and comments have been posted long after the liturgy ended. 

In my Jesuit studies I loved the idea posed by some sacramental theologians that Mass exists in a space somehow outside the normal passage of time. On Facebook, that concept finds flesh.

The Normal Becomes New

Unlike Zoom, Facebook is not a shared feed. I am the only one you see and hear. That seemed like a lot to have to endure week after week. Even in a parish where there is only one priest, you have lectors and musicians to offer different voices and ways into the prayer. 

I tried to offer music for the responsorial psalm or at communion. Almost immediately, Facebook warned me that playing three verses of “Be Not Afraid” was copyright infringement whether we were all in a worldwide crisis or not. So I took to posting songs on my Facebook feed after Mass instead. 

Advertisement
free widgets for website

Intriguingly, over time people started to offer their own suggestions, songs and videos they had found that spoke to their own experience of the readings or homily. At the prayers of the faithful, everyone was also able to offer their own petitions, a practice that only happens in parishes during weekday Masses, if at all. We may not know what the others with whom we are praying look like, but we can tell you who went in for surgery this week and who passed her sommelier exam; whose son has some special physical needs and who just got vaccinated; who is grieving the loss of husbands or wives. 

Each time I have gone in anxious that no one will have anything to say. And each time the congregation has responded with an enormous wellspring of ideas and experiences. 

Some weekends we have had shared homilies as well, where I would pose a question to consider ahead of time (“How are you thinking about Lent this year?”) and then allow people time to post reflections. Each time I have gone in anxious that no one will have anything to say. And each time the congregation has responded with an enormous wellspring of ideas and experiences. 

See also  Facebook's suggestion to reform internet law is a 'masterful distraction,' says Silicon Valley ...

For me it has been a constant reminder that even though many Catholics might not feel comfortable getting up to speak at Mass, might even think they don’t have anything of merit to say, in truth each of us has insights about God and life to share. When we are given that opportunity, our idea of a “community of faith” becomes more literally a reality, each of us fed by the prayers and faith lives of the others. One of the best parts of the whole experience of having Mass online, in fact, has been the sense of community that is present there. Each Sunday I sit in my room by myself, and yet I never feel alone.  

How is that possible? I don’t know. But praying together on Facebook, it is as though we have had a year of Easters rather than Good Fridays: We begin each Mass like the disciples, locked in our rooms, isolated and maybe afraid. Then out of nowhere Jesus appears in our midst and brings us together. 

Advertisement
free widgets for website

Going Forward

In one version of the future, everything eventually opens up again and we all go back to doing things the way we did before. It is an attractive idea in many ways; I certainly want to be able to sit and pray and eat donuts with people in person again. But there are also lessons to learn from the last year for the way we “do church” going forward.

We are all partners in prayer, rather than presiders and recipients. In ordinary times, our church gives people few opportunities to actually share their own experiences of God and life. The very structure of our worship puts people into the position of minister (a few) or recipient (most of us). Saying Mass on Facebook has demonstrated to me how much more the “people in the pews” have to offer to the overall communal experience. Tapping into that wellspring of faith and experience in a parish setting could be as easy as allowing people to offer their own petitions during weekday Masses. Or we can ask people to make suggestions for songs, or try a town hall format for the occasional homily so that a number of people can share. 

Why is the idea of giving parishioners a moment to speak a time-management issue, but us delivering homilies of 15 to 20 minutes is not? 

And what is to stop us from having five minutes at the end of Sunday Mass where a few people can come up and share something they took from the readings or something going on in their lives?  

I can hear some of my brother priests and liturgists complaining that adding a five-minute window for congregational sharing would extend the length of Mass. To them I would ask: Why is the idea of giving parishioners a moment to speak a time-management issue, but us delivering homilies of 15 to 20 minutes is not? 

Advertisement
free widgets for website

Let your theory be informed by practice and experiment. These ideas speak to a broader point. To what extent are our policies and theories around liturgy and church getting in the way of what our worship and community could be, rather than enabling them? Why is it exactly that Catholics can’t get married outside, for example? Or in their backyards? Or occasionally use a pop song that fits the theme of the liturgy? (Everyone who has ever listened to Sufjan Stevens, I see you nodding your heads.) How much more might be possible if we were to adopt a spirit of curiosity and experimentation?

See also  Partnering with Facebook, Reuters launches fact-checking initiative in Israel

So rather than say Mass is at these times and if you are not there, you have committed a sin, why not keep posting online Masses from our parishes indefinitely?

Not everything would be a smashing success, as anyone who lived through the 1970s can attest.  But some things might. It is important to remember: The third member of the Trinity is not rock but spirit, something that moves freely and encourages us to more freely move. Put another way, as a retreat director once said to me, the Holy Spirit is just crazy enough to be acting where we are not looking, rather than only where we are. 

Go out to all the people (a.k.a. keep online Masses going). The whole idea of church as an “obligation” that must be experienced but only at very select times seems completely contrary to the example of Jesus, who said “come to me” to indicate welcome, not prerequisites. Catholics can have other important things to do on weekends. That does not necessarily mean they don’t want to experience liturgy, too. Indeed, when what is keeping them away is illness or a crisis, their desire may very well be greater. 

So rather than say Mass is at these times and if you are not there, you have committed a sin—an idea that drives some Catholics away and others crazy with worry—why not keep posting online Masses from our parishes indefinitely? Perhaps even occasionally we can offer a Mass or communion service that is just for people in the parish that are homebound or could not make it in person. Before the pandemic the broader church looked to EWTN or Catholic TV for that, but it is just far more meaningful to be able to pray with your own community. And if our experience of the last year has taught us anything, it is that the sacramental nourishment and encouragement of the Eucharist persists even when experienced in a lesser form.  

Advertisement
free widgets for website

Though the advent of Covid-19 vaccines means things are opening up (and thank God for that), the pandemic is not going away anytime soon. But even once it has, there are other things that will keep us from church, and other forms of pandemic, too, like the flu, which kills hundreds of thousands of people around the world every year.

What a shame it would be if our image of what church must be were to continue to get in the way of what it could become. 

More from America: 

Jim McDermott

Jim McDermott, S.J., is America’s Los Angeles correspondent.

Advertisement
free widgets for website

Read More

Continue Reading
Advertisement free widgets for website
Click to comment

Leave a Reply

Your email address will not be published.

FACEBOOK

Resources for Completing App Store Data Practice Questionnaires for Apps That Include the Facebook or Audience Network SDK

Published

on

By

resources-for-completing-app-store-data-practice-questionnaires-for-apps-that-include-the-facebook-or-audience-network-sdk

Updated July 18: Developers and advertising partners may be required to share information on their app’s privacy practices in third party app stores, such as Google Play and the Apple App Store, including the functionality of SDKs provided by Meta. To help make it easier for you to complete these requirements, we have consolidated information that explains our data collection practices for the Facebook and Audience Network SDKs.

Facebook SDK

To provide functionality within the Facebook SDK, we may receive and process certain contact, location, identifier, and device information associated with Facebook users and their use of your application. The information we receive depends on what SDK features 3rd party applications use and we have structured the document below according to these features.

App Ads, Facebook Analytics, & App Events

Facebook App Events allow you to measure the performance of your app using Facebook Analytics, measure conversions associated with Facebook ads, and build audiences to acquire new users as well as re-engage existing users. There are a number of different ways your app can use app events to keep track of when people take specific actions such as installing your app or completing a purchase.

With Facebook SDK, there are app events that are automatically logged (app installs, app launches, and in-app purchases) and collected for Facebook Analytics unless you disable automatic event logging. Developers determine what events to send to Facebook from a list of standard events, or via a custom event.

When developers send Facebook custom events, these events could include data types outside of standard events. Developers control sending these events to Facebook either directly via application code or in Events Manager for codeless app events. Developers can review their code and Events Manager to determine which data types they are sending to Facebook. It’s the developer’s responsibility to ensure this is reflected in their application’s privacy policy.

Advertisement
free widgets for website

Advanced Matching

Developers may also send us additional user contact information in code, or via the Events Manager. Advanced matching functionality may use the following data, if sent:

  • email address, name, phone number, physical address (city, state or province, zip or postal code and country), gender, and date of birth.
See also  Facebook's suggestion to reform internet law is a 'masterful distraction,' says Silicon Valley ...

Facebook Login

There are two scenarios for applications that use Facebook Login via the Facebook SDK: Authenticated Sign Up or Sign In, and User Data Access via Permissions. For authentication, a unique, app-specific identifier tied to a user’s Facebook Account enables the user to sign in to your app. For Data Access, a user must explicitly grant your app permission to access data.

Note: Since Facebook Login is part of the Facebook SDK, we may collect other information referenced here when you use Facebook Login, depending on your settings.

Device Information

We may also receive and process the following information if your app is integrated with the Facebook SDK:

  • Device identifiers;
  • Device attributes, such as device model and screen dimensions, CPU core, storage size, SDK version, OS and app versions, and app package name; and
  • Networking information, such as the name of the mobile operator or ISP, language, time zone, and IP address.

Audience Network SDK

We may receive and process the following information when you use the Audience Network SDK to integrate Audience Network ads in your app:

  • Device identifiers;
  • Device attributes, such as device model and screen dimensions, operating system, mediation platform and SDK versions; and
  • Ad performance information, such as impressions, clicks, placement, and viewability.

First seen at developers.facebook.com

Continue Reading

FACEBOOK

Resources for Completing App Store Data Practice Questionnaires for Apps That Include the Facebook or Audience Network SDK

Published

on

By

resources-for-completing-app-store-data-practice-questionnaires-for-apps-that-include-the-facebook-or-audience-network-sdk

Resources for Completing App Store Data Practice Questionnaires for Apps That Include the Facebook or Audience Network SDK

First seen at developers.facebook.com

See also  Facebook Works To Attract Top Creators; Puts MRC Audit On Ice | AdExchanger
Continue Reading

FACEBOOK

Enabling Faster Python Authoring With Wasabi

Published

on

By

enabling-faster-python-authoring-with-wasabi

This article was written by Omer Dunay, Kun Jiang, Nachi Nagappan, Matt Bridges and Karim Nakad.


Motivation

At Meta, Python is one of the most used programming languages in terms of both lines of code and number of users. Everyday, we have thousands of developers working with Python to launch new features, fix bugs and develop the most sophisticated machine learning models. As such, it is important to ensure that our Python developers are productive and efficient by giving them state-of-the-art tools.

Introducing Wasabi

Today we introduce Wasabi, a Python language service that implements the language server protocol (LSP) and is designed to help our developers use Python easier and faster. Wasabi assists our developers to write Python code with a series of advanced features, including:

  • Lints and diagnostics: These are available as the user types.
  • Auto import quick fix: This is available for undefined-variable lint.
  • Global symbols autocomplete: When a user types a prefix, all symbols (e.g. function names, class names) that are defined in other files and start with that prefix will appear in the autocomplete suggestion automatically.
  • Organize Imports + Remove unused: A quick fix that removes all unused imports and reformats the import section according to pep8 rules. This feature is powered by other tools that are built inside Meta such as libCST that helps with safe code refactoring.
  • Python snippets: Snippet suggestions are available as the user types for common code patterns.

Additionally, Wasabi is a surface-agnostic service that can be deployed into multiple code repositories and various development environments (e.g., VSCode, Bento Notebook). Since its debut, Wasabi has been adopted by tens of thousands of Python users at Meta across Facebook, Instagram, Infrastructure teams and many more.

Figure 1: Example for global symbols autocomplete, one of Wasabi’s features

Language Services at Meta Scale

A major design requirement for language services is low latency / user responsiveness. Autocomplete suggestions, lints and quickFixes should appear to the developer immediately as they type.

Advertisement
free widgets for website

At Meta, code is organized in a monorepo, meaning that developers have access to all python files as they develop. This approach has major advantages for the developer workflow including better discoverability, transparency, easier to share libraries and increased collaboration between teams. It also introduces unique challenges for building developer tools such as language services that need to handle hundreds of thousands of files.

See also  Facebook's suggestion to reform internet law is a 'masterful distraction,' says Silicon Valley ...

The scaling problem is one of the reasons that we tried to avoid using off-the-shelf language services available in the industry (e.g., pyright, jedi) to perform those operations. Most of those tools were built in the mindset of a relatively small to medium workspace of projects, maybe with the assumptions of thousands of files for large projects for operations that require o(repo) information.

For example, consider the “auto import” quick fix for undefined variables. In order to suggest all available symbols the language server needs to read all source files, the quick fix parses them and keeps an in-memory cache of all parsed symbols in order to respond to requests.

While this may scale to be performed in a single process on the development machine for small-medium repositories, this approach doesn’t scale in the monorepo use case. Reading and parsing hundreds of thousands of files can take many minutes, which means slow startup times and frustrated developers. Moving to an in-memory cache might help latency, but also may not fit in a single machine’s memory.

For example, assume an average python file takes roughly 10ms to be parsed and to extract symbols in a standard error recoverable parser. This means that on 1000 files it can take 10 seconds to initialize which is a fairly reasonable startup time. Running it on 1M files would take 166 minutes which is obviously a too lengthy startup time.

Advertisement
free widgets for website

How Wasabi Works

Offline + Online Processing:

In order to support low latency in Meta scale repositories, Wasabi is powered by two phases of parsing, background processing (offline) done by an external indexers, and local processing of locally changed “dirty files” (online):

  1. A background process indexes all committed source files and maintains the parsed symbols in a special database (glean) that is designed for storing code symbol information.
  2. Wasabi, which is a local process running on the user machine, calculates the delta between the base revision, stack of diffs and uncommitted changes that the user currently has, and extracts symbols only out of those “dirty” files. Since this set of “dirty” files is relatively small, the operation is performed very fast.
  3. Upon an LSP request such as auto import, Wasabi parses the abstract syntax tree (AST) of the file, then based on the context of the cursor, creates a query for both glean and local changes symbols, merges the results and returns it to the user.
See also  Facebook Introduces New Campaign Ideas Generator Tool

As a result, all Wasabi features are low latency and available to the user seamlessly as they type.

Note: Wasabi currently doesn’t handle the potential delta between the revision that glean indexed (happens once every few hours) and the locally base revision that the user currently has. We plan on adding that in the future.

Figure 2: Wasabi’s high level architecture

Ranking the Results

In some cases, due to the scale of the repository, there may be many valid suggestions in the set of results. For example, consider “auto import” suggestions for the “utils” symbol. There may be many modules that define a class named “utils” across the repository, therefore we invest in ranking the results to ensure that users see the most relevant suggestions on the top.

Advertisement
free widgets for website

For example, auto import ranking is done by taking into account:

  • Locality:
    • The distance of the suggested module directory path from the directory paths of modules that are already imported in this file.
    • The distance of the suggested module directory path from the current directory path of the local file.
    • Whether the file has been locally changed (“dirty” files are ranked higher).
  • Usage: The number of occurrences the import statement was used by other files in the repository.

To measure our success, we measured the index in the suggestion list of an accepted suggestion and noted that in almost all cases the accepted suggestion was ranked in one of top 3 suggestions.

Positive feedbacks from developers

After launching Wasabi to several pilot runs inside Meta, we have received numerous positive feedbacks from our developers. Here is one example of the quote from a software engineer at Instagram:

“I’ve been using Wasabi for a couple months now, it’s been a boon to my productivity! Working in Instagram Server, especially on larger files, warnings from pyre are fairly slow. With Wasabi, they’re lightning fast 😃!”

“I use features like spelling errors and auto import several times an hour. This probably makes my development workflow 10% faster on average (rough guess, might be more, definitely not less), a pretty huge improvement!”

As noted above, Wasabi has made a meaningful change to keep our developers productive and make them feel delightful.

Advertisement
free widgets for website

The metric to measure authoring velocity

In order to quantitatively understand how much value Wasabi has delivered to our Python developers, we have considered a number of metrics to measure its impact. Ultimately, we landed on a metric that we call ‘Authoring Velocity’ to measure how fast developers write code. In essence, Authoring Velocity is the inverse function of the time taken on a specific diff (a collection of code changes) during the authoring stage. The authoring stage starts from the timestamp when a developer checks out from the source control repo to the timestamp when the diff is created. We have also normalized it against the number of lines of code changed in the diff, as a proxy for diff size, to offset any possible variance. The greater the value for ‘Authoring Velocity,’ the faster we think developers write their code.

See also  Should Facebook and other platforms pay for our data?

Figure 3: Authoring Velocity Metric Formula

The result

With the metric defined, we ran an experiment to measure the difference that Wasabi brings to our developers. Specifically, we selected ~700 developers who had never used Wasabi before, and then randomly put them into two independent groups at a 50:50 split ratio. For these developers in the test group, they were enabled with Wasabi when they wrote in Python, whereas there was no change for those in the control group. For both groups, we compare the changes in relative metric values before and after the Wasabi enablement. From our results, we find that for developers in the test group, the median value of authoring velocity has increased by 20% after they started using Wasabi. Meanwhile, we don’t see any significant change in the control group before and after, which is expected.

Figure 4: Authoring Velocity measurements for control and test groups, before and after Wasabi was rolled out to the test group.

Summary

With Python’s unprecedented growth, it is an exciting time to be working in the area to make it better and handy to use. Together with its advanced features, Wasabi has successfully improved developers’ productivity at Meta, allowing them to write Python faster and easier with a positive developer experience. We hope that our prototype and findings can benefit more people in the broader Python community.

Advertisement
free widgets for website

To learn more about Meta Open Source, visit our open source site, subscribe to our YouTube channel, or follow us on Twitter, Facebook and LinkedIn.

First seen at developers.facebook.com

Continue Reading

Trending