scr

Split Screen - Silicon Valley's Gender Gap

Peter and Kelli Rubin love TV, movies, and games but don’t always see eye to eye—and the return of Mike Judge's HBO satire is no exception.




scr

Think Like a Tree - What Termites Can Teach Architects About Skyscraper Design

Sure, they’re pesky critters but termites can teach architects a thing or two when it comes building design. When creating giant mounds the insects build channels within them to help with ventilation. See how architects are attempting to replicate that process to create better heating and air conditioning systems in giant skyscrapers.




scr

The Super Bowl 2016 Ads Were All About Your Small Screen

The Super Bowl is as much about the commercials as it is the football, but this year the ads weren't made for your big TV.




scr

DIY: How To Burn a Silkscreen and Print at Home

Screen printing is the pinnacle of DIY culture. We're going to show you how to make your own design and screen it onto whatever you'd like. You’ll need to block out a few hours, and you'll need to have a design or logo in mind to print.




scr

Breaking the World Record for Largest Aerial Projection Screen

To promote the upcoming MTV Video Music Awards, a pair of helicopters cruised over the Hudson. One towed a 250-foot-wide banner, and a second flew behind it at an angle, beaming video onto the banner from a few hundred feet away.




scr

The Scrappy Little Mouse That Turns Venom Into a Painkiller

The grasshopper mouse ain't like any other mouse on Earth, in the sense that it fights scorpions and turns their venom from a toxin into a painkiller.




scr

Trezor Exploit Screen Capture

A portion of a tutorial on how to hack a Trezor Bitcoin vault.




scr

The Strange Science of Screams

Few sounds grab attention like a scream, but why is that? Scientists have studied the nature of screams and their effects on the brain to better understand the human howl.




scr

Doctor Explains How Sunscreen Affects Your Body

A recent F.D.A. study shows that certain chemicals in some sunscreens can seep into and remain in people's blood. To find out what that means for staying safe in the sun, WIRED's Robbie Gonzalez spoke with dermatologist Dr. Kanade Shinkai.




scr

Employment Screening and Non-Conviction Information [electronic resource]: A Human Rights Perspective

Bennett, Kevin




scr

Dynamic description technology of fractured vuggy carbonate gas reservoirs / Tongwen Jiang, Hedong Sun, Xingliang Deng

Online Resource




scr

[ASAP] Torrefaction of Sorghum Straw Pellets in a Stationary Reactor with a Feeding Screw

Energy & Fuels
DOI: 10.1021/acs.energyfuels.0c00531




scr

Patron Services: CORRECTION - Orientation to the Manuscript Division

Join the Manuscript Division for a focused research orientation to resources located in the Manuscript Reading Room. Learn how to find materials for your research projects and how to utilize the Manuscript Reading Room’s resources in-person and remotely. The session includes general information on conducting research in the Manuscript Reading Room and time for Q&A about research strategies or steps on specific research projects. All researchers are welcome.

 Date: Saturday, November 16, 2019, 10:00 AM – 11:30 AM EST

 Location: Library of Congress Thomas Jefferson Building, Room LJ-139B

 Click here for more information and to register.

 Request ADA accommodations five days in advance at (202) 707-6362 or ADA@loc.gov.

 

 

Click here for more information.




scr

Patron Services: Civil Rights in the 20th Century: Personal Papers and Organizational Records in the Manuscript Division

In this session, Manuscript Reference Librarian Edith Sandler will demonstrate how to search for and access personal papers and organizational records documenting the history of the civil rights movement in the 20th century. Time will be included at the end of the session for Q&A about research strategies or steps on specific research projects. All researchers are welcome.

Please note that the maximum class size is 30 researchers unless otherwise indicated.

Individuals requiring accommodations for any of these events are requested to submit a request at least five business days in advance by contacting (202) 707-6362 or ADA@loc.gov.

Patrons are encouraged to arrive 15 minutes prior to the orientation. Seating is available on a first-come basis. Registration does not guarantee entry after the orientation start time.

For more information, please visit: https://www.loc.gov/rr/main/satorient/

 

Date: Saturday, January 25, 10:00 AM – 11:30 AM EST

 

Location: Library of Congress Thomas Jefferson Building, Room LJ-139B

 

Click here for more information and to register.

 

Request ADA accommodations five days in advance at (202) 707-6362 or ADA@loc.gov.

 

Click here for more information.




scr

Patron Services: Saturday Research Orientation: Manuscript Division

Join Manuscript Reference Librarian Lara Szypszak for a focused orientation to resources located in the Manuscript Reading Room. This session will share the letters of love from members of congress to their spouses, writers to their paramours, artists to their muses, and more. Celebrate Valentine’s Day (better late than never) with notes of romance found in the Manuscript Division’s collections, and also learn how to find materials for your research projects utilizing the Manuscript Reading Room’s resources in-person and remotely. The session includes general information on conducting research in the Manuscript Reading Room and time for Q&A about research strategies or steps on specific research projects. All researchers are welcome. See the following link for Maps and Floor Plans in the Jefferson Building: https://www.loc.gov/visit/maps-and-floor-plans/thomas-jefferson-building/first-floor/

Date: Saturday, February 15, 10:00 am - 11:30 am EST

Location: Library of Congress Jefferson Building, Room 139B

Click here for more information and to register.

Request ADA accommodations five business days in advance at (202) 707-6362 or email ADA@loc.gov.

 

Click here for more information.




scr

Prescribing Social Services: Leveraging Data to Diagnose and Treat the Social Determinants That Affect Health

This post describes how health care systems and providers have been—and can be—critical partners in collecting and acting on social determinants of health data.




scr

Making games: with JavaScript / Christopher Pitt

Online Resource




scr

Building a 2D game physics engine: using HTML5 and JavaScript / Michael Tanaya, Huaming Chen, Jebediah Pavleas, Kelvin Sung

Online Resource




scr

The advanced game developer's toolkit: create amazing Web-based games with JavaScript and HTML5 / Rex van der Spuy

Online Resource




scr

Introducing JavaScript game development: build a 2D game from the ground up / Graeme Stuart

Online Resource




scr

Let's Build a Multiplayer Phaser Game: With TypeScript, Socket. IO, and Phaser.

Online Resource




scr

[ASAP] Screened Range-Separated Hybrid Functional with Polarizable Continuum Model Overcomes Challenges in Describing Triplet Excitations in the Condensed Phase Using TDDFT

Journal of Chemical Theory and Computation
DOI: 10.1021/acs.jctc.0c00086




scr

Screening metal-free photocatalysts from isomorphic covalent organic frameworks for the C-3 functionalization of indoles

J. Mater. Chem. A, 2020, 8,8706-8715
DOI: 10.1039/D0TA02164D, Paper
Ziping Li, Songjie Han, Chunzhi Li, Pengpeng Shao, Hong Xia, He Li, Xiong Chen, Xiao Feng, Xiaoming Liu
An excellent framework photocatalyst was screened from a series of isomorphic COFs. The photocatalytic properties of C-3 functionalization of indoles by COF-based photocatalysts were first reported.
The content of this RSS Feed (c) The Royal Society of Chemistry




scr

Complete cello suites / JS Bach ; transcribed for violin

MEDIA PhonCD B122 suvc ar d




scr

[ASAP] Efficient Synthesis of 1,4-Thiazepanones and 1,4-Thiazepanes as 3D Fragments for Screening Libraries

Organic Letters
DOI: 10.1021/acs.orglett.0c01230




scr

Subscribe to the CT Direct Newsletter

Get the most recent headlines and stories from Christianity Today, including daily meditations from the president and CEO of Christianity Today written specifically for those struggling through the coronavirus pandemic.




scr

Discrete Morse theory / Nicholas A. Scoville

Dewey Library - QA612.7.S36 2019




scr

Discrete mathematical structures: a succinct foundation / authored by B.V. Senthil Kumar and Hemen Dutta

Dewey Library - QA297.4.K86 2020




scr

Zero-sum discrete-time Markov games with unknown disturbance distribution: discounted and average criteria / J. Adolfo Minjárez-Sosa

Online Resource




scr

Algebraic techniques and their use in describing and processing uncertainty: to the memory of Professor Elbert A. Walker / Hung T. Nguyen, Vladik Kreinovich, editors

Online Resource




scr

Phonetics: Transcription, Production, Acoustics, and Perception, 2nd Edition


 

An accessible yet in-depth introductory textbook on the basic concepts of phonetics, fully updated and revised

This broad, interdisciplinary textbook investigates how speech can be written down, how speech is produced, its acoustic characteristics, and how listeners perceive speech. Phonetics: Transcription, Production, Acoustics, and Perception introduces readers to the fundamental concepts of the discipline, providing coverage of all four areas of



Read More...




scr

Subscribe to the CTWeekly Newsletter

A FREE weekly newsletter from Christianity Today magazine





scr

Make it scream, make it burn: essays / Leslie Jamison

Dewey Library - PS3610.A485 A6 2019




scr

Screen tests: stories and other writing / Kate Zambreno

Hayden Library - PS3626.A6276 A6 2019




scr

Inscrutable belongings: queer Asian North American fiction / Stephen Hong Sohn

Hayden Library - PS153.G38 S64 2018




scr

Essential ASP.NET Web Forms Development: Full Stack Programming with C#, SQL, Ajax, and JavaScript / Beasley, Robert

Online Resource




scr

Herbert von Karajan, maestro for the screen / a film by Georg Wübbolt

Browsery DVD ML422.K37 H473 2016




scr

Frankenstein / choreography, Liam Scarlett ; music, Lowell Liebermann ; designer, John Macfarlane ; lighting designer, David Finn ; executive producer, Tony Followell ; directed for the screen by Ross MacGibbon ; co-production between the Royal Ballet an

Browsery DVD GV1790.F736 2016




scr

American epic / a production of BBC Arena, Lo-Max Films Ltd., Wildwood Enterprises, and Thirteen Productions LLC for WNET ; directed by Bernard MacMahon ; story by Bernard MacMahon & Allison McGourty & Duke Erikson ; telescript by William Morgan

Browsery DVD ML3790.A44 2017




scr

Akram Khan's Giselle / English National Ballet ; direction and choreography, Akram Khan ; directed for the screen by Ross MacGibbon

Browsery DVD GV1790.G5 2019




scr

[ASAP] Chirality Control of Screw-Sense in Aib-Polymers: Synthesis and Helicity of Amino Acid Functionalized Polymers

ACS Macro Letters
DOI: 10.1021/acsmacrolett.0c00218




scr

U.S. Copyright Office, Subscriber Notice



Subscriber Notice

You are receiving this notice because you subscribe to NewsNet or one of our other email or RSS bulletins. Beginning tomorrow, your subscription will be migrated to a separate U.S. Copyright Office account. You will receive another bulletin after your subscription has been migrated.

You do not need to take any action, but please be aware that if you wish to change or cancel your subscription, you will do so through this page. If you subscribe to other newsletters from the Library of Congress, you can continue to manage those subscriptions through this page.You may wish to check your spam folder to be sure you are continuing to receive these bulletins.

Thank you for your continued interest in news and information from the U.S. Copyright Office.

 

 




scr

Responsible JavaScript: Part III

You’ve done everything you thought was possible to address your website’s JavaScript problem. You relied on the web platform where you could. You sidestepped Babel and found smaller framework alternatives. You whittled your application code down to its most streamlined form possible. Yet, things are just not fast enough. When websites fail to perform the way we as designers and developers expect them to, we inevitably turn on ourselves:

“What are we failing to do?” “What can we do with the code we have written?” “Which parts of our architecture are failing us?”

These are valid inquiries, as a fair share of performance woes do originate from our own code. Yet, assigning blame solely to ourselves blinds us to the unvarnished truth that a sizable onslaught of our performance problems comes from the outside.

When the third wheel crashes the party

Convenience always has a price, and the web is wracked by our collective preference for it.  JavaScript, in particular, is employed in a way that suggests a rapidly increasing tendency to outsource whatever it is that We (the first party) don’t want to do. At times, this is a necessary decision; it makes perfect financial and operational sense in many situations.

But make no mistake, third-party JavaScript is never cheap. It’s a devil’s bargain where vendors seduce you with solutions to your problem, yet conveniently fail to remind you that you have little to no control over the side effects that solution introduces. If a third-party provider adds features to their product, you bear the brunt. If they change their infrastructure, you will feel the effects of it. Those who use your site will become frustrated, and they aren’t going to bother grappling with an intolerable user experience. You can mitigate some of the symptoms of third parties, but you can’t cure the ailment unless you remove the solutions altogether—and that’s not always practical or possible.

In this installment of Responsible JavaScript, we’ll take a slightly less technical approach than in the previous installment. We are going to talk more about the human side of third parties. Then, we’ll go down some of the technical avenues for how you might go about tackling the problem.

Hindered by convenience

When we talk about the sorry state of the web today, some of us are quick to point out the role of developer convenience in contributing to the problem. While I share the view that developer convenience has a tendency to harm the user experience, they’re not the only kind of convenience that can turn a website into a sluggish, janky mess.

Operational conveniences can become precursors to a very thorny sort of technical debt. These conveniences are what we reach for when we can’t solve a pervasive problem on our own. They represent third-party solutions that address problems in the absence of architectural flexibility and/or adequate development resources.

Whenever an inconvenience arises, that is the time to have the discussion around how to tackle it in a way that’s comprehensive. So let’s talk about what it looks like to tackle that sort of scenario from a more human angle.

The problem is pain

The reason third parties come into play in the first place is pain. When a decision maker in an organization has felt enough pain around a certain problem, they’re going to do a very human thing, which is to find the fastest way to make that pain go away.

Markets will always find ways to address these pain points, even if the way they do so isn’t sustainable or even remotely helpful. Web accessibility overlays—third-party scripts that purport to automatically fix accessibility issues—are among the worst offenders. First, you fork over your money for a fix that doesn’t fix anything. Then you pay a wholly different sort of price when that “fix” harms the usability of your website. This is not a screed to discredit the usefulness of the tools some third-party vendors provide, but to illustrate how the adoption of third-party solutions happens, even those that are objectively awful

A Chrome performance trace of a long task kicked off by a third party’s web accessibility overlay script. The task occupies the main thread for roughly 600 ms on a 2017 Retina MacBook.

So when a vendor rolls up and promises to solve the very painful problem we’re having, there’s a good chance someone is going to nibble. If that someone is high enough in the hierarchy, they’ll exert downward pressure on others to buy in—if not circumvent them entirely in the decision-making process. Conversely, adoption of a third-party solution can also occur when those in the trenches are under pressure and lack sufficient resources to create the necessary features themselves.

Whatever the catalyst, it pays to gather your colleagues and collectively form a plan for navigating and mitigating the problems you’re facing.

Create a mitigation plan

Once people in an organization have latched onto a third-party solution, however ill-advised, the difficulty you’ll encounter in forcing a course change will depend on how urgent a need that solution serves. In fact, you shouldn’t try to convince proponents of the solution that their decision was wrong. Such efforts almost always backfire and can make people feel attacked and more resistant to what you’re telling them. Even worse, those efforts could create acrimony where people stop listening to each other completely, and that is a breeding ground for far worse problems to develop.

Grouse and commiserate amongst your peers if you must—as I myself have often done—but put your grievances aside and come up with a mitigation plan to guide your colleagues toward better outcomes. The nooks and crannies of your specific approach will depend on the third parties themselves and the structure of the organization, but the bones of it could look like the following series of questions.

What problem does this solution address?

There’s a reason why a third-party solution was selected, and this question will help you suss out whether the rationale for its adoption is sound. Remember, there are times decisions are made when all the necessary people are not in the room. You might be in a position where you have to react to the aftermath of that decision, but the answer to this question will lead you to a natural follow-up.

How long do we intend to use the solution?

This question will help you identify the solution’s shelf life. Was it introduced as a bandage, with the intent to remove it once the underlying problem has been addressed, such as in the case of an accessibility overlay? Or is the need more long-term, such as the data provided by an A/B testing suite? The other possibility is that the solution can never be effectively removed because it serves a crucial purpose, as in the case of analytics scripts. It’s like throwing a mattress in a swimming pool: it’s easy to throw in, but nigh impossible to drag back out.

In any case, you can’t know if a third-party script is here to stay if you don’t ask. Indeed, if you find out the solution is temporary, you can form a plan to eventually remove it from your site once the underlying problem it addresses has been resolved.

Who’s the point of contact if issues arise?

When a third-party solution is put into place, someone must be the point of contact for when—not if—issues arise.

I’ve seen what happens (far too often) when a third-party script gets out of control. For example, when a tag manager or an A/B testing framework’s JavaScript grows slowly and insidiously because marketers aren’t cleaning out old tags or completed A/B tests. It’s for precisely these reasons that responsibility needs to be attached to a specific person in your organization for third-party solutions currently in use on your site. What that responsibility entails will differ in every situation, but could include:

  • periodic monitoring of the third-party script’s footprint;
  • maintenance to ensure the third-party script doesn’t grow out of control;
  • occasional meetings to discuss the future of that vendor’s relationship with your organization;
  • identification of overlaps of functionality between multiple third parties, and if potential redundancies can be removed;
  • and ongoing research, especially to identify speedier alternatives that may act as better replacements for slow third-party scripts.

The idea of responsibility in this context should never be an onerous, draconian obligation you yoke your teammates with, but rather an exercise in encouraging mindfulness in your colleagues. Because without mindfulness, a third-party script’s ill effects on your website will be overlooked until it becomes a grumbling ogre in the room that can no longer be ignored. Assigning responsibility for third parties can help to prevent that from happening.

Ensuring responsible usage of third-party solutions

If you can put together a mitigation plan and get everyone on board, the work of ensuring the responsible use of third-party solutions can begin. Luckily for you, the actual technical work will be easier than trying to wrangle people. So if you’ve made it this far, all it will take to get results is time and persistence.

Load only what’s necessary

It may seem obvious, but load only what’s necessary. Judging by the amount of unused first-party JavaScript I see loaded—let alone third-party JavaScript—it’s clearly a problem. It’s like trying to clean your house by stuffing clutter into the closets. Regardless of whether they’re actually needed, it’s not uncommon for third-party scripts to be loaded on every single page, so refer to your point of contact to figure out which pages need which third-party scripts.

As an example, one of my past clients used a popular third-party tool across multiple brand sites to get a list of retailers for a given product. It demonstrated clear value, but that script only needed to be on a site’s product detail page. In reality, it was frequently loaded on every page. Culling this script from pages where it didn’t belong significantly boosted performance for non-product pages, which ostensibly reduced the friction on the conversion path.

Figuring out which pages need which third-party scripts requires you to do some decidedly untechnical work. You’ll actually have to get up from your desk and talk to the person who has been assigned responsibility for the third-party solution you’re grappling with. This is very difficult work for me, but it’s rewarding when good-faith collaboration happens, and good outcomes are realized as a result.

Self-host your third-party scripts

This advice isn’t a secret by any stretch. I even touched on it in the previous installment of this series, but it needs to be shouted from the rooftops at every opportunity: you should self-host as many third-party resources as possible. Whether this is feasible depends on the third-party script in question.

Is it some framework you’re grabbing from Google’s hosted libraries, cdnjs, or other similar provider? Self-host that sucker right now.

Casper found a way to self-host their Optimizely script and significantly reduced their start render time for their trouble. It really drives home the point that a major detriment of third-party resources is the fact that their mere existence on other servers is one of the worst performance bottlenecks we encounter.

If you’re looking to self-host an analytics solution or a similar sort of script, there’s a higher level of difficulty to contend with to self-host it. You may find that some third-party scripts simply can’t be self-hosted, but that doesn’t mean it isn’t worth the trouble to find out. If you find that self-hosting isn’t an option for a third-party script, don’t fret. There are other mitigations you can try.

Mask latency of cross-origin connections

If you can’t self-host your third-party scripts, the next best thing is to preconnect to servers that host them. WebPageTest’s Connection View does a fantastic job of showing you which servers your site gathers resources from, as well as the latency involved in establishing connections to them.

WebPageTest’s Connection View shows all the different servers a page requests resources from during load.

Preconnections are effective because they establish connections to third-party servers before the browser would otherwise discover them in due course. Parsing HTML takes time, and parsers are often blocked by stylesheets and other scripts. Wherever you can’t self-host third-party scripts, preconnections make perfect sense.

Maybe don’t preload third-party scripts

Preloading resources is one of those things that sounds fantastic at first—until you consider its potential to backfire, as Andy Davies points out. If you’re unfamiliar with preloading, it’s similar to preconnecting but goes a step further by instructing the browser to fetch a particular resource far sooner than it ordinarily would.

The drawback of preloading is that while it’s great for ensuring a resource gets loaded as soon as possible, it changes the discovery order of that resource. Whenever we do this, we’re implicitly saying that other resources are less important—including resources crucial to rendering or even core functionality.

It’s probably a safe bet that most of your third-party code is not as crucial to the functionality of your site as your own code. That said, if you must preload a third-party resource, ensure you’re only doing so for third-party scripts that are critical to page rendering.

If you do find yourself in a position where your site’s initial rendering depends on a third-party script, refer to your mitigation plan to see what you can do to eliminate or ameliorate your dependence on it. Depending on a third party for core functionality is never a good position to be in, as you’re relinquishing a lot of control to others who might not have your best interests in mind.

Lazy load non-essential third-party scripts

The best request is no request. If you have a third-party script that doesn’t need to be loaded right away, consider lazy loading it with an Intersection Observer. Here’s what it might look like to lazy load a Facebook Like button when it’s scrolled into the viewport:


let loadedFbScript = false;

const intersectionListener = new IntersectionObserver(entries => {
  entries.forEach(entry => {
    if ((entry.isIntersecting || entry.intersectionRatio) && !loadedFbScript) {
      const scriptEl = document.createElement("script");

      scriptEl.defer = true;
      scriptEl.crossOrigin = "anonymous";
      scriptEl.src = "https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.0";
      scriptEl.onload = () => {
        loadedFbScript = true;
      };
      
      document.body.append(scriptEl);
    }
  });
});

intersectionListener.observe(document.querySelector(".fb-like"));

In the above snippet, we first set a variable to track whether we’ve loaded the Facebook SDK JavaScript. After that, an IntersectionListener is created that checks whether the observed element is in the viewport, and whether the Facebook SDK has been loaded. If the SDK JavaScript hasn’t been loaded, a reference to it is injected into the DOM, which will kick off a request for it.

You’re not going to be able to lazy load every third-party script. Some of them simply need to do their work at page load time, or otherwise can’t be deferred. Regardless, do the detective work to see if it’s possible to lazy load at least some of your third-party JavaScript.

One of the common concerns I hear from coworkers when I suggest lazy loading third-party scripts is how it can delay whatever interactions the third party provides. That’s a reasonable concern, because when you lazy load anything, a noticeable delay may occur as the resource loads. You can get around this to some extent with resource prefetching. This is different than preloading, which we discussed earlier. Prefetching consumes a comparable amount of data, yes, but prefetched resources are given lower priority and are less likely to contend for bandwidth with critical resources.

Staying on top of the problem

Keeping an eye on your third-party JavaScript requires mindfulness bordering on hypervigilance. When you recognize poor performance for the technical debt that it truly is, you’ll naturally slip into a frame of mind where you’ll recognize and address it as you would any other kind of technical debt.

Staying on top of third parties is refactoring—a sort that requires you to periodically perform tasks such as cleaning up tag managers and A/B tests, consolidating third-party solutions, eliminating any that are no longer needed, and applying the coding techniques discussed above. Moreover, you’ll need to work with your team to address this technical debt on a cyclical basis. This kind of work can’t be automated, so yes, you’ll need to knuckle down and have face-to-face, synchronous conversations with actual people.

If you’re already in the habit of scheduling “cleanup sprints” on some interval, then that is the time and space for you to address performance-related technical debt, regardless of whether it involves third- or first-party code. There’s a time for feature development, but that time should not comprise the whole of your working hours. Development shops that focus only on feature development are destined to be wholly consumed by the technical debt that will inevitably result.

So it will come to pass that in the fourth and final installment of this series we’ll discuss what it means to do the hard work of using JavaScript responsibly in the context of process. Therein, we’ll explore what it takes to unite your organization under the banner of making your website faster and more accessible, and therefore more usable for everyone, everywhere.




scr

Subscribe to the Preaching Today Newsletter

Preaching Today provides pastors and preachers sermon prep help with sermon illustrations, sermons, sermon ideas, and preaching articles.




scr

Scran Photo Competition ASN Winner

Isobel Mair School wins iPads




scr

Scran Photo Competition Overall Winner

Kingussie High School student announced as overall winner of Photo14




scr

Scranalogue - The Blog

Scran News




scr

High throughput screening methods: evolution and refinement / editors: Joshua A. Bittker, Nathan T. Ross

Online Resource




scr

The behavioral neuroscience of drug discrimination / Joseph H. Porter, Adam J. Prus, editors

Online Resource