text:
Integrating Social Media into Your Web Design
As the digital landscape continues to evolve, businesses are constantly seeking innovative ways to engage with their audience. One such method that has proven to be highly effective is the integration of social media into web design. This article will delve into the importance of this integration, how it can be achieved, and the benefits it can bring to your business.
Why Integrate Social Media into Your Web Design?
With over 3.6 billion people worldwide using social media, it's clear that these platforms have become an integral part of our daily lives. For businesses, this presents a golden opportunity to connect with potential customers, build brand awareness, and drive traffic to their websites. By integrating social media into your web design, you can leverage these platforms to enhance your online presence and boost your business growth.
How to Integrate Social Media into Your Web Design
Integrating social media into your web design is not as daunting as it may seem. Here are some effective strategies that you can implement:
Social Media Icons
One of the simplest ways to integrate social media into your web design is by including social media icons on your website. These icons should link directly to your social media profiles, allowing visitors to easily connect with you on these platforms. Ensure that these icons are prominently displayed on your website, such as in the header or footer, to maximise visibility.
Social Sharing Buttons
Social sharing buttons allow visitors to share your content on their social media profiles with just a click. This not only increases the reach of your content but also drives more traffic to your website. Consider adding these buttons to your blog posts, product pages, and other shareable content.
Social login allows users to sign in to your website using their social media accounts. This simplifies the login process, enhancing the user experience. Moreover, it can provide you with valuable user data that can be used to personalise your marketing efforts.
Social Media Feeds
Integrating social media feeds into your web design allows you to display your latest social media posts directly on your website. This keeps your website content fresh and encourages visitors to engage with your social media profiles.
Benefits of Integrating Social Media into Your Web Design
Integrating social media into your web design can bring numerous benefits to your business:
Social media platforms are designed for interaction, making them perfect for engaging with your audience. By integrating social media into your web design, you can foster a community around your brand, encouraging visitors to interact with your content and with each other.
Social media can also contribute to your SEO efforts. Search engines consider social signals, such as likes and shares, when ranking websites. Therefore, the more your content is shared on social media, the better your chances of ranking higher in search results.
Enhanced Brand Awareness
Social media platforms are excellent for building brand awareness. By integrating social media into your web design, you can showcase your brand personality and values, helping to build a strong brand image.
Social media can drive a significant amount of traffic to your website. By making it easy for visitors to share your content and follow you on social media, you can attract more visitors to your website, potentially leading to increased sales and revenue.
In today's digital age, integrating social media into your web design is no longer an option but a necessity. It allows you to connect with your audience on a deeper level, enhance your online presence, and drive business growth. Whether you're a small business owner in Derby, a marketing manager in Nottingham, or a company director in Sheffield, integrating social media into your web design can bring significant benefits to your business.
At Chatsworth Media Ltd, we specialise in web design, development, and digital marketing services. We understand the importance of social media integration and are committed to helping our clients leverage these platforms to their advantage. If you're ready to take your web design to the next level, don't hesitate to contact us today.
1. Web Design: _URL_
2. SEO: _URL_
3. Digital Marketing: _URL_
4. Photography: _URL_
5. Portfolio: _URL_
6. Customer Reviews: _URL_
7. Blog: _URL_
8. Contact Us: _URL_
9. Chatsworth Media: _URL_
10. E-commerce Website Designers: _URL_


text: This paper investigates the potential cost of natural gas expansion when electrification is a long-term goal. I provide empirical evidence that natural gas expansion shifts consumer choice towards gas-powered appliances and increases the cost of achieving a high level of electrification. Leveraging the expansion of inter-city transmission pipelines in China as a quasi-experiment, I show that the increased accessibility of natural gas via infrastructure expansion significantly raises the market share and sales quantity of gas water heaters. To quantify the welfare implications for water heating electrification, I estimate a structural model of the water heater market, accounting for the impacts of gas infrastructure on consumer choice. Demand model estimates reveal that the expansion of gas infrastructure raises consumer valuation of gas water heaters relative to electric ones. This implies a higher cost of electrifying water heating when gas infrastructure is expanding, as the goal of electrification is to shift consumers towards electric appliances. Counterfactual simulations suggest that, with a 20% increase in gas infrastructure penetration, the cost of electrification rises from 1.4 to 2.2 billion USD, corresponding to an increase of over 50% relative to the status-quo gas infrastructure scenario. The increased cost of electrification will be weighed against both near-term environmental benefits and other consequences from natural gas expansion. The findings underscore a long-run economic burden of utilizing natural gas as a bridge fuel in the transition towards a net-zero carbon emissions future.

source: m-a-p/FineFineWeb


Can I Teach In NJ Without A Certificate?
How long does it take to get a teaching certificate in NJ?
Provisional teachers must earn two Effective or Highly Effective summative ratings over a three-year period in order to qualify for a standard certificate, and complete 34 weeks of mentored teaching.
Provisional teachers must also undergo a final stage of formal instruction..
What is the easiest state to get a teaching license?
Is being a teacher worth it?
How much does it cost to get an alternative teaching certificate?
-Program costs $4,000 – $5,000, depending on the state. Students can pay 10% of the program costs upfront and the rest after completing the program. -Coursework is online. Students have 6 months to complete 7 instructional courses and must pass exams with each course.
What age do most teachers retire?
Can you teach in Georgia without a certificate?
Can you be a teacher without certification?
As mentioned above, having a non-education degree will not prevent you from becoming a teacher. … If you want to teach in the public school system (either as an elementary or high-school subject teacher), however, you will need a teaching license or teaching credential.
What is the hardest state to become a teacher?
What types of teachers get paid the most?
What state has the lowest teacher salary?
How do I get certified to teach in NJ?
New Jersey Teachers Licensing Application ProcessProof of clearance from criminal history background check.Official transcripts showing proof of bachelor's degree.Proof of teacher program completion at an approved teacher preparation school.Completed application for teaching certification.More items…


Learn About the World's Fastest Land Animal: The Chetah
The cheetah is famous for being one of the nature's finest predators. This page of cheetah facts will teach you everything you might ever want to know about these incredible animals.
 The cheetah's biggest claim to fame is its speed – it's the fastest land mammal on Earth. It's one of the 'big cats' (others in this category are the tiger, the lion, the leopard and the panther) but it's quite different from its other big cat relatives in many important ways.
By the way, the cheetah is also called gepard, or guerpardo, guérpard, just to clear things up.
This page with facts about cheetahs is great to use together with the other page on this site about cheetahs, Cheetah Pictures, where you will find a lot of beautiful cheetah photos and drawings.
 Cheetah Speed
cheetah facts gepard speedAs already mentioned above, the cheetah is the fastest living land animal.
But in animal terms, the cheetah is a sprinter, not a long distance runner.
In fact, over a long enough distance the second-fastest animal – the pronghorn – would beat a cheetah in a race.
The cheetah's biggest strength is its rapid acceleration, being able to hit top speed in just a few seconds.
When a cheetah is running at full speed it covers up to 31 meters per second – that's a shocking hundred feet in only a second. That's about a third of an American football field – in only one second.
This makes the cheetah roughly three times faster than the current 100 meter sprint world record holder, Usain Bolt. When cheetahs are moving at full pace, they only need to make a footfall every 23 feet (7 meters) and only have one foot on the ground at a time.
But remember – the cheetah is the fastest living land animal in the world, but not the fastest animal. That title is taken by the peregrine falcon, which can dive at speeds of up to 202 miles per hour – about 325 kilometers per hour, making its top speed over one and a half times faster than that of the cheetah.
Here is a vide of the cheetah running, in slow motion:

 Let's look at some of the most fascinating and funny facts about cheetahs: how they behave, what they eat, where they live and more.
Basic Cheetah Facts
Here are a few of the most essential cheetah facts to get you started:
cheetha facts face of cheetah gepard Cheetahs can run up to 75 miles per hours – that's about 120 kilometers per hour! (The second fastest animal on land, the pronghorn, can only run about 53 miles per hour)
 Cheetahs are often confused with leopards, because both these big cats have spots. The main differences are that cheetahs are obviously faster, they're slightly smaller, and leopards are all around more muscular and 'stronger' than cheetahs. (Just to make matters more confusing, the British in India used to called cheetahs the 'Hunting-Leopard.')
 Cheetahs can't fully retract their claws (pull them up into their foot pads) the way a normal house cat can
 Top lifespan for a cheetah in the wild is about 20 years – but a study found that the average is only about 7 years
 Cheetahs weigh between 110 and 140 pounds (50 to 63 kilograms – leopards, on the other hand, can easily weigh over 220 pounds or 100 kilograms)
 Despite its high top speeds, cheetahs only usually reach just over half that speed when chasing their prey (because they're so much faster than most of the animals they hunt, they don't need to use all their energy running full speed)
 Cheetahs have very good eyesight
 Cubs take about 95 days to develop inside the mother and female cheetahs usually have between three and five cubs at a time
 What does 'cheetah' actually mean? It originates from India and comes from a word that translates to 'spotted one'
 Adult cheetahs grow up to around 53 inches long from nose to the base of the tail (about 135 centimeters)
Hopefully these facts answered some of the main questions in your mind about cheetahs.
Now let's zoom in and take a closer look at the way cheetahs behave in the wild.
 Facts about Cheetah Behavior
guerpardo two cheetahsCheetahs are quite unusual in many of their behaviors.
Many large predators, like wolves and lions, live out their lives in packs.
Cheetahs, on the other hand, are often on their own or in very small groups.
When a mother has cubs, she will raise them on her own without any help from the male.
Male cheetahs roam on their own or in groups with other males, but they don't take part in family groups with females and cubs.
However, male groups are usually (but not always) made up of brothers. Male cheetah groups don't usually grow larger than 3 in number.
cheetah cub faceThe bond between a cheetah mother and her cubs is very important, because the cubs learn all their hunting skills from her.
Without plenty of time spent with their mother learning to hunt (and play fighting with their siblings) cubs have little chance of growing up and surviving.

cheetah with cub savannahThe fact that the cheetah mother has to hunt, gather food and care for her cubs on her own has some important impacts.
For starters, the time cheetahs carry cubs in the womb is short and the size of cubs when they're born is very small.
This is because if the cheetah mother was pregnant for a long time with large, growing cubs, it would make impossible for her to run fast enough to catch her food.
As a result, cubs are not very developed when they are born and the mother has to be careful to hide them in a safe place when they're very young so she can hunt and bring food back to them.
The cheetah's eyesight is an important part of the way it hunts. Because cheetahs can see so well, they're able to spot prey (even camouflaged prey) before the prey sees them.
This makes it possible for the cheetah to get close enough to launch a 'surprise attack.'
While the cheetah is mostly known for its high speed chases, the 'stalk' is an equally important part of the cheetah's hunting strategy.
The cheetah's stalk looks similar to the way a common house cat will stalk a bird: body kept low to the ground, head steady and eyes fixed forward on the prey. This allows the cheetah to make the most of the cover of the grass.
When the cheetah is about 300 feet away from its target (90 meters) it launches its sprint attack.
Many people have a vision of the cheetah leaping on an animal and biting it straight away, but this is not how it usually happens.
The cheetah will often try to knock the animal off balance first by tripping it or simply running into it at high speed, then once the prey is stunned the cheetah will bite down on the neck.

 Cheetah Habitat – Where Do Cheetahs Live?
cheetah facts population rangeCheetahs in the wild these days are found throughout most of Africa, the Middle East and the Afghanistan/India region.
They were once common in all these areas of the world, but now the largest cheetah populations are only in Africa.
The cheetah has already disappeared from the wild in many parts of the world where it used to be seen often.

cheetah facts national park AfricaThe largest cheetah population by country is believed to be Namibia, which has about 2500 wild cheetahs.
That gives you some idea of how endangered the cheetah has become.
It's believed there are only a few hundred dotted around parts of the Middle East. Altogether the most recent estimates have put the world population at around 10,000 in the wild.
In terms of the habitat cheetahs like, they prefer open spaces on the savanna and the plains.
These areas provide the perfect hunting ground for cheetahs, with tall grass for camouflage and flat land where the cheetah can make the most of its speed advantage.
What Do Cheetahs Eat?
cheetah facts hunting gepardUnlike many animals on the savanna, cheetahs are not scavengers.
They're hunters – they catch all their food (as you might expect, since they're the fastest animals out there!). They are also strictly carnivores – in other words, meat eaters.
Also, unlike lions which sometimes target large animals like giraffes and elephants, cheetahs prefer smaller prey: things like hares, antelope and gazelles.
Most of the animals they catch weigh less than 88 pounds (around 40 kilograms). They also eat impala and springbok – they type of animals cheetah preys on depends where in the world it lives.
Groups of males hunting together will sometimes take on larger animals.
Another major difference between lions and cheetahs is that cheetahs hunt mostly during the day whereas lions tend to hunt at night.
The cheetah doesn't hunt in large packs the way lions do.
Because cheetahs are much more solitary animals, they need to rely on stealth


Twilio on Rails
By Chris Rittersdorf on 20 Jan 2012
The use of smart phones is on the rise, however SMS text messaging is still the best way to reach the broadest customer base, especially in developing countries. If you have a Ruby on Rails application that needs to reach this broad customer base, Twilio is an excellent tool to have in your toolbox.
It's easy to add Twilio to a Rails application. This post will walk you through the process of integrating Rails with Twilio, including:
 - Signing Up for a Twilio Account
 - Testing with Twilio's Sandbox App
 - Integrating Twilio with a Rails Application
 - Configuring your Twilio enabled Rails application for Production
Let's get started!
Signing Up for Twilio
Signing up for Twilio is as simple as providing your name, email and password. After you sign up and log in for the first time, you are taken to the Dashboard. This will give you plenty of information to get started. Upon signing up, you are given $30 in credits to get started. These credits are spent every time a text message is sent or received by Twilio.
Twilio Dashboard
In the bottom left section of your dashboard, you'll see a box called Sandbox App. The Twilio Sandbox is where you want to do development work with Twilio. The Sandbox not only lets you test out your SMS enabled application without burning through credits, but it also lets you lock down which mobile phones can send text messages to it and which mobile phones it can send text messages to. This is in contrast to the live account which consumes credits, and can send and receive text messages to and from any mobile phone. Now that you know what the Sandbox is, let's try it out.
Testing Your Account Using the Sandbox
To test the SMS sandbox, send a text message from your phone to the sandbox number. The content doesn't matter, it can be anything. Try texting "hello twilio". You'll then see a reply similar to this:
Sent from the Twilio Sandbox Number - Error: No PIN. Make sure you begin your message with the Sandbox PIN from your Twilio Dashboard.
Any time you interact with the Twilio Sandbox, you must provide a PIN along with all communications (whether SMS or Voice). This PIN is located below the Sandbox number on your dashboard. Enter the pin at the beginning of your text message, for example:
28910293 hello twilio
You'll then get a reply from the default Twilio Service located at:
Now that you've confirmed that your account is in working order, let's see how was can leverage service in a Ruby on Rails application.
Integrating Twilio with Your Rails Application
Web applications communicate with Twilio using an XML variant called TwiML. For example:
This section of TwiML describes how to respond to a user calling a phone number. It speaks a message during the phone call, then sends the user an SMS message. But, it's no fun writing TwiML. And since we're using Ruby, there's a gem for that! The twiliio-ruby gem abstracts TwiML into an easy to use Ruby API.
In your Rails application, simply add the twilio-ruby gem to your Gemfile:
Now you have the necessary library to start sending text messages. So now let's use it!
Sending a Text Message Using Twilio
Sending a text message with your Rails application is simple. But before doing so, there is one configuration we have to make. To test your application using the Twilio Sandbox, you'll need to white-list any phone numbers you plan to send SMS messages to. You can do this by going to the Numbers tab and clicking the Verify Number button. There is a series of steps you'll have to complete to verify your number.
Verify Phone Number
After you've verified the phone number, your application can now send text messages. The following code example show you how:
In this example, the send_text_message action receives a phone number from a form post, then relays a hard-coded message to that phone number via SMS. The twilio_sid, twilio_token, and twilio_phone_number variables contain the configuration information for authentication using the twilio-ruby gem. Generally, you'd want to pull this into a configuration file that gets loaded when your application loads, but I've put them into local variables for simplicity.
Receiving a Text Message Using Twilio
In order to receive a text message from a mobile device, you'll have to expose an endpoint that is reachable by Twilio. Here is an example:
In this example, the index action receives a POST from Twilio. It grabs the message body, and the phone number of the sender and logs it. Retrieving the information from the Twilio POST is as simple as looking at the params hash:
In order for text messages to reach your application you have to tell Twilio where to send requests. This is again done in the Sandbox App section of the Twilio Dashboard. Specify your publicly facing endpoint in the SMS URL field and click "Save".
If you're running your server locally and have no publicly facing endpoint, you can use a service like tunnlr to create one. This creates a publicly accessible URL with an SSH tunnel back to your local machine.
So the publicly facing endpoint for your application would look something like:
Configuring Twilio for Production
To deploy your SMS enabled application in a production environment, there are three things you'll need to do: buy a Twilio phone number, configure that phone number in your application, and then configure the production end-point in Twilio.
Purchasing a phone number requires you to enter payment information and decide on a phone number to provision. Twilio will guide you through the process. At the time of writing, Twilio's pricing is set at $1.00 a month plus an additional 1¢ charge per text.
Also, you will need to update the Twilio phone number in your application to the new number that you've provisioned. The examples above contained a variable with the value for a Twilio phone number. Change this value to the new phone number you provisioned.
Finally, you'll now have to configure the SMS endpoint much like how we did for the Sandbox. Click on the "Numbers > Twilio Numbers" tab. Then click on the phone number you provisioned. Finally, in the "SMS Request URL" field, specify your publicly facing production endpoint URL, then click "Save Changes".
Whether it be for those on-the-go, or those who otherwise are not able to use a computer or smart phone, SMS provides excellent alternative interface for the users of your web application. For those looking for a simple and affordable way to get started, Twilio is an outstanding option. So now that you know how to get started, what will you build using Twilio?


HW1 - 4 What is the attraction force in Newtons between the...
Info iconThis preview shows page 1. Sign up to view the full content.
View Full Document Right Arrow Icon
Name: Section: ME211 Homework 1 – Handout (Be careful of significant figures) 1. What is the mass in slugs of a 10.0lbf sphere? 2. What is the weight in Newtons of a 10kg sphere? 3. What is the mass in slugs of a 100.00N sphere?
Background image of page 1
This is the end of the preview. Sign up to access the rest of the document.
Unformatted text preview: 4. What is the attraction force in Newtons between the earth (approximately 1.30x10 25 lbf) and a 1000lbf satellite in low earth orbit (approximately 2000km)?...
View Full Document
{[ snackBarMessage ]}
Ask a homework question - tutors are online


text:
Reconstructed Sediment Mobilization Processes in a Large Reservoir Using Short Sediment Cores
Friday, 19 December 2014
Williston Reservoir in northern British Columbia (56°10'31"N, 124°06'33") was formed when the W.A.C. Bennett Dam was created in the late 1960s, is the largest inland body of water in BC and facilitates hydroelectric power generation. Annually the reservoir level rises and lowers with the hydroelectric dam operation, and this combined with the inputs from several river systems (Upper Peace, Finlay, Parsnip, and several smaller creeks) renews suspended sediment sources. Several short-cores retrieved from shallow bays of the Finlay Basin reveal near-annual sedimentary units and distinct patterns related to both hydroclimate variability and the degree to which the reservoir lowered in a particular year. Thin section and sedimentology from short-cores collected in three bays are used to evaluate sediment mobilization processes. The primary sediment sources in each core location is linked to physical inputs from rivers draining into the bays, aeolian contributions, and reworked shoreline deposits as water levels fluctuate. Despite uniform water level lowering across the reservoir, sediment sequences differed at each site, reflecting the local stream inputs. However, distinct organic-rich units, facilitated correlation across the sites. Notable differences in particle size distributions from each core points to important aeolian derived sediment sources. Using these sedimentary records, we can evaluate the processes that contribute to sediment deposition in the basin. This work will contribute to decisions regarding reservoir water levels to reduce adverse impacts on health, economic activities and recreation in the communities along the shores of the reservoir.


text:
UNDERSTANDING THE WTO:
THE ORGANIZATION Least-developed countries
The WTO recognizes as least-developed countries (LDCs)
those countries which have been designated as such by the United
Nations. There are currently 49 least-developed countries on the UN list, 34 of which to date have become WTO members.
There are no WTO definitions of "developed" or
"developing" countries. Developing countries in the WTO are designated on the basis of self-selection although this is not necessarily automatically accepted in all WTO bodies.

source: HuggingFaceFW/fineweb-edu


text:
National Tartan Day
On April 6, Scottish communities celebrate National Tartan Day, which commemorates the signing of the Declaration of Arbroath, a declaration of independence from Norman kings in 1320. The day features celebration of Scottish culture. In the United States, Tartan Day also honors the efforts of Scottish Americans, especially their efforts fighting on the side of the colonies during the American Revolution.
Celebrations of Tartan Day feature Scottish cultural events, such as pipe bands and Scottish dances. Larger cities, like New York, hold parades, often made up of bagpipe bands. Participants often wear kilts that signify their clan. "Tartan" refers to the crisscrossed pattern of these kilts. Other events include dinners, awards, and educational events at schools and libraries. Festivities may include a meal, which often features traditional dishes such as haggis.
New York is known for one of the largest celebrations, the Tunes of Glory Parade, which features over 8,000 musicians playing pipes and drums. Other significant celebrations in the US take place in St. Charles, Missouri, Washington D.C., and Baltimore. Many of these celebrations are held by Scottish-American Societies, which put on receptions and a Tartan Day Festival in Virginia, an educational and cultural program held at the beginning of April.
International cities take part in many Tartan Day festivities. Regions of Scotland combine to put on Tartan Day festivals throughout the country. The large Scottish populations in Australia and New Zealand result in many festivals and events commemorating the holiday. Other celebrations take place in Ottawa, Canada, and Buenos Aires, Brazil.
The Declaration of Arbroath served to declare Scottish independence from English control. It established Scotland as an independent state and declared the right to defend itself from military force. It was sent to Pope John XXII. Up until that point, Scotland had been ruled as a feudal land by Norman kings. The document also pointed out that Scotland had long been independent, and that English control was unjust. Although no copies of this document still exist, it is believed to be one of the inspirations for the American Declaration of Independence.
Tartan Day also celebrates Scottish efforts in the Revolutionary War. Many Scots migrated to the colonies in search of religious freedom and economic opportunity. Most Scottish immigrants settled in Pennsylvania to farm. As seen with the Declaration of Arbroath, the Scots had a history of clashing with British rule, instilling a resentfulness that inspired many Irish-Americans to take up arms against them. Many saw the conflict in the colonies as a continuation of their struggles with Britain.
Some countries celebrate Tartan day in July or August. Tartan Day celebrations have risen in popularity since local officials began to establish the holiday in the 1980s and 1990s. The United States did not declare an official Tartan Day until 2008.

source: openbmb/Ultra-FineWeb


Wavelength Tunable LED
Application ID: 23341
This application computes the emission properties of a AlGaN/InGaN LED. The emission intensity, spectrum, and efficiency are calculated for an applied voltage or as a function of voltage over a selected range. The indium composition in the light-emitting InGaN region can be varied in order to control the emission wavelength. When the emission occurs within the visible spectrum the corresponding color is displayed.
The Semiconductor Module is used to compute the carrier dynamics throughout the device and the corresponding electroluminescence.
This application example illustrates applications of this type that would nominally be built using the following products:
Semiconductor Module


text:
There are several problems with TE modules used in waste heat recovery applications. First, the TE modules themselves are not very efficient; although some heat energy gets converted into electricity, still much of it is wasted. The next problems have to do with construction of the module itself and durability in its desired environment. Inside a TE module, semiconductors are soldered in series to copper pads to conduct the electricity. They are limited by temperature; in many situations where waste heat recovery would be the most desirable, higher temperatures exist than the melting point of the solder used to hold the modules together. The modules would literally melt and fall apart. Another problem has to do with the coefficient of thermal expansion (CTE). When the module is heated, brittle intermetallics form due to the diffusion of Ni (the coating) into the substrate (Bi2TE3). The CTE of the newly formed Ni2Te3 is drastically different from the CTE of the surrounding materials. It is easy to see how the shear stresses at the interface generated by high or cyclic temperatures would have a tendency to crack the brittle intermetallic that forms in the modules. See project details.
Currently, most of the processes commonly used in bridge fabrication are fusion welding processes. The problem with fusion welding is that molten and resolidified metal in the weld deposit remains as-cast microstructure in the structure and has mechanical properties greatly dependent on chemistry/dilution and cooling rates. These processes inherently have a potential for creating weld discontinuities such as solidification cracking in the fusion zone [figure 1] or gas and slag entrapment. Generic concerns remain in HAZ grain coarsening and loss of toughness in fusion welds.See project details.


Neural Network Classification model in hebel
Neural Network Classification model in hebel
Recipe Objective - Neural Network Classification model in Hebel?
A neural network is a circuit of neurons or in a broader sense, an Artificial Neural Network composes of nodes that are the basis of deep learning inspired by the human brain in the same way biologically created neurons signal each other, used in solving artificial intelligence problems. Neural networks comprise node layers, with an input layer, one or more hidden layers, and finally an output layer. Node assigns a number to its incoming connection known as 'weight'. It also contains an associated threshold value. If the output of the individual node is above the specified threshold value then that node is activated thereby sending data to the next layer of the network. No data is passed to the next layer of the network if the output of the individual node is below the specified threshold value.
class hebel.models.NeuralNet(layers, top_layer=None, activation_function='sigmoid', dropout=0.0,
input_dropout=0.0, n_in=None, n_out=None, l1_penalty_weight=0.0, l2_penalty_weight=0.0)
A neural network for classification using the cross-entropy loss function.

For more related projects:-
_URL_
_URL_
Example:-
# Simple form
model = NeuralNet(layers=[1000, 1000],
 activation_function='relu',
 dropout=0.5,
 n_in=784, n_out=10,
 l1_penalty_weight=.1)
# Extended form, initializing with "HiddenLayer" and "TopLayer" objects
hidden_layers = [HiddenLayer(784, 1000, 'relu', dropout=0.5,
 l1_penalty_weight=.2),
 HiddenLayer(1000, 1000, 'relu', dropout=0.5,
 l1_penalty_weight=.1)]
softmax_layer = LogisticLayer(1000, 10, l1_penalty_weight=.1)
model = NeuralNet(hidden_layers, softmax_layer)
What Users are saying..
profile image
Gautam Vermani
Data Consultant at Confidential
linkedin profile url
Having worked in the field of Data Science, I wanted to explore how I can implement projects in other domains, So I thought of connecting with ProjectPro. A project that helped me absorb this topic... Read More
Relevant Projects
Image Classification Model using Transfer Learning in PyTorch
In this PyTorch Project, you will build an image classification model in PyTorch using the ResNet pre-trained model.
Create Your First Chatbot with RASA NLU Model and Python
Learn the basic aspects of chatbot development and open source conversational AI RASA to create a simple AI powered chatbot on your own.
Credit Card Fraud Detection as a Classification Problem
In this data science project, we will predict the credit card fraud in the transactional dataset using some of the predictive models.
MLOps on GCP Project for Autoregression using uWSGI Flask
This Project Explains the Process to create an end to end Machine learning development to design, Build and manage reproducible, testable, and evolvable ML models using GCP for AutoRegressor
End-to-End ML Model Monitoring using Airflow and Docker
In this MLOps Project, you will learn to build an end to end pipeline to monitor any changes in the predictive power of model or degradation of data.
Build an Image Segmentation Model using Amazon SageMaker
In this Machine Learning Project, you will learn to implement the UNet Architecture and build an Image Segmentation Model using Amazon SageMaker
Ola Bike Rides Request Demand Forecast
Given big data at taxi service (ride-hailing) i.e. OLA, you will learn multi-step time series forecasting and clustering with Mini-Batch K-means Algorithm on geospatial data to predict future ride requests for a particular region at a given time.
Time Series Project to Build an Autoregressive Model in Python
In this time series project, you will learn how to build an autoregressive model in Python from Scratch for forecasting time series data.
Hands-On Approach to Regression Discontinuity Design Python
In this machine learning project, you will learn to implement Regression Discontinuity Design Example in Python to determine the effect of age on Mortality Rate in Python.
MLOps Project for a Mask R-CNN on GCP using uWSGI Flask
MLOps on GCP - Solved end-to-end MLOps Project to deploy a Mask RCNN Model for Image Segmentation as a Web Application using uWSGI Flask, Docker, and TensorFlow.


text:
Average battery life depends on the type of phone. A battery in a smartphone will provide about five hours of talk time on 3G networks and 150 hours of standby time. High-end smartphones can provide almost twice that amount of battery life.
Batteries for use in other types of phones will provide more than 10 hours of talk time and 400 hours of standby time. Cellphone battery life is also affected by the frequency and type of use of the phone. Playing games, surfing the web and media playback all cause battery life to drop. The brightness setting and using Wi-Fi also negatively affect battery life.


text: This paper covers the design improvements of the tilt-rotor download test fixture at the University of Arizona and the study of using active flow control and Kruger flaps for download alleviation on a tiltrotor aircraft. The investigation was done using two 3-D aircraft type; a 16.7% scale XV-15 and a 10.5% scale V-22 Osprey models. The study focused on the tilt-rotor in hover, a condition where approximately 10% of the total thrust is lost due to aerodynamicdrag on the airframe. Of this total download the wing accounts for a little more than 50%. Active flow control was used as a method to prevent or delay normal separation at the leading and trailing edges of the wings. This would decrease the download, which would effectively increase the payload capacity of the aircraft. The 3-D experiments follow successful demonstrations in two-dimensional wind tunnel testing. The intention of the 3-D setup was to validate the results of the 2-D testing and then lead to a flight demonstration of the technology on the XV-15 aircraft. Also, the 3-D setup incorporated the use of internal actuators to provide active flow control, an improvement over some initial studies. The 3-D configuration was a key step as a method to prove the concept in an unsteady, three-dimensional flow field that would be experienced in actual flight. The use of active flow control was able to demonstrate a download reduction of almost 15% on both models using an active trailing edge. When combined with an active leading edge the download reduction was approximately 30%. The subsequent flight demonstration of an active flap confirmed the validity of these results and shows promise for future study. The discussion of the experiment design and results now follows.


text:
Underwater Signaling Devices: Introduction
Underwater signaling devices are used as a means of communication between divers engaged in underwater activities. Deep sea and oceans are largely unexplored and are occupied by unknown and unpredictable marine life creatures, making communicating underwater an essential part for any underwater activity. Underwater signaling devices help divers to stay alert while approaching aquatic animals or any unforeseen danger. Being able to communicate with fellow divers, especially in case of emergencies, is very important for underwater diving activities. Hence, the signaling devices form an essential part of diving kits. The two types of underwater signaling devices that are mainly used by divers are visual and audible. Visual underwater signaling devices mainly use strobe or other types of lights to signal or gain the attention of fellow divers, while the audible underwater signaling devices use sound. The type of device used depends on various factors, such as time of day (day or night), environment and circumstance. Visual underwater signaling devices are used when it's dark or in presence of aquatic animals, while audible underwater signaling devices are more preferred in case of extreme emergencies as they often annoy fellow divers or animals in the vicinity.
Underwater signaling devices are used by divers involved in scuba diving, navy, marine activities, underwater installations of pipelines and subsea operations in oil and gas industry. Often, underwater signaling devices can be the difference between life and death for the divers involved in marine activities.
Underwater Signaling Devices: Dynamics
Adventure and tourism segment will create major demand for underwater signaling devices as adventure activities, such as scuba diving and snorkeling, are gaining more popularity among tourists, especially millennials. This, in turn, is giving rise to more and more scuba diving centers around the world. Within the oil and gas industry, offshore field developments are on the rise given the exponential increase in the number of new fields discovered in North Sea, Gulf of Mexico and in the Pacific waters. Offshore installations require the use of divers and Remotely Operated Vehicles (ROVs) for the execution of various projects. Hence, underwater signaling devices will witness greater demand from the oil and gas industry segment. Given their discreet nature, underwater signaling devices are also used by navy personnel engaging in complex underwater missions, but will account for the lowest market share.
Since, underwater signaling devices are essential for all underwater marine activities, there are not many factors challenging the growth of the market. However, audible devices may face some challenge as they annoy fellow divers during scuba diving activities and scare off animals.
Underwater Signaling Devices: Market Segmentation
On the basis of industry, the global Underwater Signaling Devices has been segmented as:
- Oil & Gas
- Adventure & Tourism
On the basis of type, the global underwater signaling devices has been segmented as:
- Visual underwater signaling devices
- Audible underwater signaling devices
On the basis of depth, the global Underwater Signaling Devices has been segmented as:
- Deep Water
- Shallow Water
Underwater Signaling Devices: Regional Overview
North and Latin America have some of the best scuba diving locations spread across Mexico, Ecuador, Honduras and Belize and with the Gulf of Mexico being one of the most active offshore locations in the oil and gas industry, both regions will occupy strong market share for underwater signaling devices. Increased oil and gas activity in North Sea coupled with great adventure locations along the coastal line will help boost the underwater signaling devices market in Western Europe. Asia-Pacific will also witness decent growth in the underwater signaling devices market given the presence of various islands and booming oil and gas activity in the Pacific waters. Middle East and Africa will register lowest growth in the underwater signaling devices market during the forecast period.
Global Underwater Signaling Devices: Key Players
Examples of some of the market participants identified across the value chain of the global Underwater Signaling Devices are:
- XS Scuba
- AQUATEC - DUTON INDUSTRY CO., LTD.
- Lancaster Scuba Center
- Innovative Scuba Concepts
- Scuba Max
This analytical research study imparts an all-inclusive assessment on the market, while propounding historical intelligence, actionable insights, and industry-validated & statistically-upheld market forecast. Verified and suitable set of assumptions and methodology has been leveraged for developing this comprehensive study. Information and analysis on key market segments incorporated in the report has been delivered in weighted chapters. A thorough analysis has been offered by the report on
- Market Dynamics
- Market Size
- Market Segments
- Demand & Supply Trends
- Current Issues and Challenges
- Companies and Competitor Landscape
- Value Chain
Regional Segments Analyzed Include
- North America (U.S., Canada)
- Latin America (Mexico. Brazil)
- Western Europe (Germany, Italy, France, U.K, Spain)
- Eastern Europe (Poland, Russia)
- Asia Pacific (China, India, ASEAN, Australia & New Zealand)
- Middle East and Africa (GCC, S. Africa, N. Africa)
Compilation of authentic and first-hand intelligence, insights offered in the report are based on quantitative and qualitative assessment by leading industry experts, and inputs from opinion leaders & industry participants around the value chain. Growth determinants, macroeconomic indicators, and parent market trends have been scrutinized and delivered, coupled with the market attractiveness for each market segment encompassed. Qualitative impact of growth influencers on the market segments across regions has also been mapped by the report.
Highlights from the Report
- Elaborated scenario of the parent market
- Transformations in the market dynamics
- Detailed segmentation of the target market
- Historical, current and forecast market size based on value and volume
- Latest industry developments and trends
- Competition landscape
- Strategies adopted by the market players and product developments made
- Potential and niche segments, along with their regional analysis
- Unbiased analysis on performance of the market
- Up-to-date and must-have intelligence for the market players to enhance and sustain their competitiveness
NOTE - All statements of fact, opinion, or analysis expressed in reports are those of the respective analysts. They do not necessarily reflect formal positions or views of Fact.MR
Fact.MR offers custom research services that help clients to get specific research solutions


text:
The Components Toolbox is a collection of predefined skin elements. If, for instance, you have a button (or group of buttons) that you know you can use on multiple projects/skins, you can save it here. This makes it easier than saving different skin versions because you can categorize and tag them and even add descriptions.
Introduction to the Components Toolbox
Components Toolbox Interface
This is the components browser. All components you add to the Toolbox will be here. You can use the thumbnail slider below to change the thumbnail size. Click on a component to select it.
You can remove a component by selecting it and hitting the Delete key.
Categories give you a way to organize the components. You can add (green plus) and remove (red X) categories. There are two that cannot be removed; Built-In and User Defined.
Components can be moved to other categories by dragging them to a folder.
Select multiple categories by doing any of the following:
Control-click [win] or Command-click [macos] on the categories.
Click the Select All Categories button above the categories.
Filtering is helpful for finding specific components. You can use Text or Tags or both to filter which will filter down the list.
For example, if you want to find all Silhouette components that use Hotspot Templates, you can type, template for the Text and select Silhouette for the Tag. You would then see all components that include the text, template, and are tagged Silhouette.
Text – Filter the components with any text string. Text added to the Information section is searchable.
Tags – Filter the components with any tags.
Reset Filter – Click to clear all filters.
Title – Give the component a title.
Author – Give credit to the person who created the component.
Copyright – Add copyright information.
Tags – Add tags to the components. Tags added here will show up in the Tags menu in the Filter section.
Description – Add any information about the component you find necessary.
This is a preview of the selected component.
If you want to create a component from the entire skin, go to the Edit menu and choose Create Component from Skin.
If you want to create a component from a group of elements, first make sure they are all selected and do any of the following:
Go to the Edit menu and choose Create Component from Selection.
Right-click on any selected element(s) in the Canvas or Tree and choose Create Component from Selection.
The Create Component dialog will appear.
Choose or create a new (green plus) category for your new component.
You can now choose what to do next:
- Give the component a name. The components' name must be unique within a category.
- Replace an existing component.
Click OK to save or replace the component.
Add a component to a skin by doing one of the following:
Right-click the component and choose Insert Component into Skin or Insert Component as Child of Active Element.
Double-click the component.
Right-click a category in the Components Toolbox and choose, Open Category Folder in Finder/Explorer.
Navigate to the component you wish to share.
Adding a Component from outside Pano2VR to the Toolbox
In Finder/File Explorer, double-click the GGSKC file or drag it onto the Pano2VR logo. A dialog will appear.
Choose a category in the dialog that appears.
Add and create a new category
Double-click the GGSK file or drag it onto the Pano2VR logo. A dialog will appear.
Select, New… to create a new category.
Enter a title. Click OK to add.
Share Skin Components
On our forum, Hopki has opened a place for everyone to share skin components. There are already a few there with detailed how-tos on how to use and build them.
Thumbnail Menu with Categories
This component will let you create nested menus. And the video below will show you how to work with it. The second video goes into the details of how nested cloners work to achieve the nested menus.
3D Arrow Hotspots
The 3D Arrow Hotspots are Street View style navigation buttons that include a popup thumbnail of the connected node. This component was added to the built-in components in Pano2VR 6 beta 4. You can see them in action here.
The original buttons have a preview that spins in space with the panorama. If you'd rather have the preview always face forward, then check out this post by Hopki to download the component and learn how to use it.
You can also download another version of this component. This one incorporates a Move to View action so that when you click on the hotspot, the panorama will spin towards the direction of the hotspot before transitioning to the next node. Check it out here.
Map Pin with Radar
✭ Pano2VR pro
Learn how to use the Map Pin with Radar component.
Text to Speech
Use this component to help make your project accessible. This will allow screen readers to read text from text fields and alternative text from images.


bahr.dev serverless on AWS
How To Build Your Own Serverless Click Tracker
What if I told you that you don't need any analytics tracker, cookies (or biscuits if you're British) or JS libraries at all to understand how visitors of your website move around? And you can do this serverless, so you only pay for what you use.
With the ping attribute of the HTML element  you can enable hyperlink auditing for any link on your website. This means that you can connect any link on your website with a self-made analytics service that you fully control. This does not apply to links from other websites to yours though.
About Me
Prerequisites
To get the most out of this article, you should be familiar with using AWS Lambda.
The code snippets are in TypeScript, and use aws-sdk V2.
What's the ping attribute?
The ping attribute takes a list of URLs. When you click on the link, your browser will send a PING body, along with some insightful headers. Within your Lambda function you can see much more than the information below, but this information already lets us create a hash that's individual per IP.
{
 "requestContext": {
 "accountId": "YOUR_AWS_ACCOUNT_ID",
 "identity": {
 "sourceIp": "YOUR_IP_ADDRESS",
 "userAgent": "YOUR_USER_AGENT"
 }
 }
}
It can help you understand how viewers move within your website, or where they leave to. On my blog however about 80% of the viewers only view one page and then leave again. So it might not be too useful with high bounce rates.
The ping attribute is supported by all major browsers. Firefox however disables it by default. On my blog 17% of the viewers use Firefox.
I like the ping attribute because it's more transparent than JS/iframe based approaches, it can be controlled by the user, and does not require any cookies. If one of the browsers doesn't allow you to disable hyperlink auditing (grr Chrome), you can use extensions like uBlock Origin to prevent this traffic. This is a lot harder to prevent with JS libraries.
Build it
In this section I will show you how to set up a simple analytics service, where we record and output a user journey. I'm going to show you a serverless solution, where we have a couple Lambda functions which serve HTML pages, and one that our browser will send the ping requests to. I'm going to user the serverless framework with TypeScript.
The whole source code is available on GitHub.
Architecture
Our application consists of three APIs for hyperlink auditing, showing the user journey, and serving a website with a couple links. It is backed by a DynamoDB table and Lambda functions.
Architecture
Serve a Website
This function returns an HTML snippet that the browser renders as a website. It's not stylish, but it gets the job done. You can replace this with websites hosted on any other service, like AWS Amplify. The only important thing is that the /ping address lives on the same domain so that you can avoid CORS problems.
import {htmlResponse} from '@libs/apiGateway';
export const main = async (event) => {
 return htmlResponse('

Welcome To hyperlink auditingng

Current Page:
${event.path}

Follow one of the links below to generate data.

Home

About Me

Blog

Unaudited Page

See the results

 ');
}
Check out the source code on GitHub for the function htmlResponse.
This function accepts a POST request, ignores the body, and uses the headers to identify from where to where a user went. It also uses the headers to generate a hash of the user's session. This is not to identify a user, but to match multiple requests of a journey together. We also include the date into this hash so that we're not able to see a user's movement over more than one day.
import {DynamoDB} from 'aws-sdk';
// TABLE_NAME comes from the environment variables
const {TABLE_NAME} = process.env;
const ddb = new DynamoDB.DocumentClient();
export const main = async (event) => {
 const item = {
 id: 'some-user-hash',
 date: new Date().toISOString(),
 from: event.headers["ping-from"],
 to: event.headers["ping-to"],
 };
 await ddb.put({
 TableName: TABLE_NAME,
 Item: item
 }).promise();
 return {
 statusCode: 200,
 body: ''
 }
}
The function above accepts any request, creates a hashed ID for the user, and stores the from and to URLs in a DynamoDB table. In the next function we will query this data to show the user their history.
View the Results
This function return your recent journey, based on the same hashing mechanism as we used for auditing hyperlinks.
import {htmlResponse} from '@libs/apiGateway';
import {DynamoDB} from 'aws-sdk';
const {TABLE_NAME} = process.env;
const ddb = new DynamoDB.DocumentClient();
export const main = async (event) => {
 const items = (await ddb.query({
 TableName: TABLE_NAME,
 KeyConditionExpression: 'id = :id',
 ExpressionAttributeValues: {
 ':id': 'some-user-hash'
 },
 ScanIndexForward: false
 }).promise()).Items;
 const rows = items.map((i) => {
 return '

 ${i.date}
 ${i.from}
 ${i.to}

 ';
 });
 return htmlResponse('

Welcome To Analytics

Home

 Date
 From
 To

 ${rows.join('')}

 ');
}
Test It
You can test this yourself by deploying the application with the source code on GitHub.
Open the website endpoint, and click around a bit. Once you've clicked a couple links, follow the link to the analytics.
Analytics
Here you should see which links you followed, if hyperlink auditing is enabled on your browser, and not blocked by any extension.
Conclusion
hyperlink auditing is a lightweight and transparent approach to understanding your viewers' journeys on your website. With just one function, you can start recording movements without giving your viewers' data to anyone who will monetise them.
If you only want some simple analytics, while maintaining your viewers' privacy, you should check out Fathom Analytics by following this referral link.
Enjoyed this article? I publish a new article every month. Connect with me on Twitter and sign up for new articles to your inbox!


Skip to main content
[an error occurred while processing this directive]
[an error occurred while processing this directive]
Conducting Knowledge-Capturing Sessions With Departing Employees
This tool describes how to run facilitated knowledge-capturing sessions with departing employees.
Expertise is best gathered by asking the employee to talk about what they know in a semi-structured, facilitated session. Although reading relevant written materials and observing an employee in action (e.g., on the job) are useful for gaining a background in a knowledge domain, to capture accurately what the departing employee know often requires asking them to describe what they know and do. Thus, a knowledge gathering session consists of one or two facilitators and one or more employees. Having multiple employees in the group allows them to build on each other's thoughts and comments and may generate more complete information as opposed to conducting individual interviews.
During the introduction, explain clearly that the session will be employee centered - that is, the facilitators are not the experts in the subject matter but are there to ask questions and document what the employee says.
Establish expectations of participation up front - for example, explain how long the session will be, the frequency of breaks and the, estimated time available for meal breaks.
If there are others in the session in addition to the facilitator(s) and the departing employee, be sure that the others understand that the process should focus on the employee. For example, it is a good idea to explain to the others not to talk during the session. If they have a relevant thought or idea, they should jot it down and present it to the facilitators later. Also, be alert for non-participants who want to provide their own views or attempt to clarify what the employee "meant to say." The employee should feel that they are being heard and shaping the results.
During a knowledge-capturing process, the facilitator(s) guides the session through some logical structure or sequence. For example, if the goal is to understand what skills are required to perform a job, the facilitators may want to ask employee first to describe the major duties and tasks of the job. Then, using this framework, the facilitator(s) can ask the employee to explain what skills the job requires, given these duties and tasks. Or, suppose the goal is to understand how the employee makes decisions. The facilitator could first have the employee describe the types of decisions they make, then the steps they follow in making each decision, including the information they consider and what they do to ensure success.
Last Updated: 5/13/09


Hibernate SessionFactory
A SessionFactory is an interface in Hibernate that create the instances of Session interface. It is a heavy weight object, and it is usually created during the application startup and kept for later use. It is a threadsafe object and used by all the threads in the application. The SessionFactory interface is available in the org.hibernate.sessionFactory and can be obtained by the Configuration object.
There is only one SessionFactory object for an application. If our application is using multiple databases, there will be one SessionFactory object per database. It also holds the second-level cache data in Hibernate.
We can create the SessionFactory object by the following code:
Methods of SessionFactory interface
The SessionFactory interface provides a variety of methods. Some commonly used methods are listed below:
Methods Description
public void close() This method is used to destroy the current SessionFactory and releases all the resources (cache, connection pools). If the SessionFactory is already closed, no-operation will be performed.
public Map getAllClassMetadata() This method is used to retrieve the ClassMetadata for all mapped entities. It will return a Map containing all ClassMetadata mapped by the corresponding String entityname.
public Map getAllCollectionMetadata() This method is used to retrieve the CollectionMetadata for all mapped collections. It returns a Map from String to CollectionMetadata.
public Cache getCache() This method can directly access the underlying cache regions.
public ClassMetadata getClassMetadata(Class entityClass) This method is used to retrieve the ClassMetadata associated with the given entity class. The Metadata will become null if there is no entity mapped with it.
public CollectionMetadata getCollectionMetadata(String roleName) This method is used to retrieve the CollectionMetadata associated with the named collection role. If no such Collection is mapped with the Metadata, then it will become null.
public Session getCurrentSession() This method is used to obtain the current Hibernate Session and associates the Session with the current Session.
public Statistics getStatistics() This method is used to retrieve the statistics for this SessionFactory.
public boolean isClosed() This method is used to check whether the SessionFactory is open or closed. It will return true if the factory is already closed else false.
public Session openSession() This method is used to open a Session. The configured connection provider will provide the database connections when needed.
public Session openSession(Connection connection) This method is used to open a Session using the specified database connection. When we supply a JDBC connection, then the second-level cache will be automatically disabled.
public Session openSession(Interceptor interceptor) This method is used to open a Session, using the specified interceptor. An interceptor allows user code to intercept or change the property values. The configured connection provider will provide the database connections when needed.
public StatelessSession openStatelessSession() This method is used to open a new stateless session using the specified database connection. A stateless Session has no persistent object associated with it. It does not implement a first-level cache and a second-level cache.
Pin It on Pinterest
Share This


text:
Mount St. Helens Long-Term Sediment Management Plan for Flood Risk Reduction
ARMY ENGINEER DISTRICT PORTLAND OR
Pagination or Media Count:
When the sediment retention structure SRS on the North Fork Toutle River became a run-of-river project in 1998, with all rows of outlet works pipes closed and all flow passing the spillway, a significantly larger amount of sediment began passing the structure. Some of this sediment deposits in the Cowlitz River where it increases flood risk. The 1985 Mount St. Helens, Washington, Decision Document, Toutle, Cowlitz and Columbia Rivers, prepared by the U.S. Army Corps of Engineers Corps and recommended construction of the SRS, identified dredging in the Cowlitz River as a means to maintain flood risk levels once the SRS became a run-of-river project, as well as providing the option for assessing other long-term alternatives. The conditions in and around the Cowlitz River are different now than from what they were in 1985. Endangered Species Act issues and a lack of readily available dredge disposal sites make dredging the river difficult and expensive. As a result, a long-term sediment management plan for flood risk reduction was initiated to re-evaluate the sediment conditions and sediment management alternatives. The Water Resources Development Act of 2000 authorized the Corps to maintain the 1985 Decision Document levels of flood protection for Castle Rock, Lexington, Longview, and Kelso on the Cowlitz River through the year 2035. Shown below are the level of protection LOP values authorized by Congress, LOP values in 1996 prior to the SRS becoming run-of-river, and current LOP values. The current LOP values were impacted by both sedimentation in the Cowlitz River and an updated evaluation of hydrology.
- Physical and Dynamic Oceanography
- Civil Engineering


Tim Cooke
Exercises for Programmers (Python): 7 of 57 - Area of a Rectangular Room
2nd September 2020
Exercise 7 in book Exercises for Programmers: 57 Challenges to Develop Your Coding Skills by Brian P. Hogan.
Create a program that calculates the area of a room. Prompt the user for the length and width in feet. Then display the area in both square feet and square meters.
Example Output
What is the length of the room in feet? 25
What is the width of the room in feet? 20
You entered dimensions of 15 feet by 20 feet.
The area is
300 square feet
27.871 square meters
This one was straight forward for me as it can be solved quite tidily with an Object. Create an object providing the length and width values at construction time then it's easy to have accessor functions that provide the area in square feet and square meters. Of course starting with a couple of tests.
import unittest
from exercises.Ex07_area_of_a_rectangular_room.rectangular_room import RectangularRoom
class TestRectangularRoom(unittest.TestCase):
 def test_given15FeetBy20Feet_thenArea300SquareFeet(self):
 rectangularRoom = RectangularRoom(15, 20)
 self.assertEqual(rectangularRoom.areaFeet(), 300)
 def test_given15FeetBy20Feet_thenArea27point871SquareMeters(self):
 rectangularRoom = RectangularRoom(15, 20)
 self.assertEqual(rectangularRoom.areaMeters(), 27.871)
Writing tests first is a nice way to approach a problem because it drives the design. In this case I have made a clear expectation that a RectangularRoom class is required and how I expect it to take the length and width values. At this point I realise I don't know how to write a constructor for a Python class nor how to represent class variables, so some research is required and of course it turns out to be simple enough.
class RectangularRoom:
 lengthFeet = 0.0
 widthFeet = 0.0
 def __init__(self, length, width):
 self.lengthFeet = length
 self.widthFeet = width
Then a couple of functions are required to provide the area of the room in square feet and square meters. Nothing particularly tricky here other than having to figure out how to round floating point numbers to 3 decimal places.
SQUARE_FEET_TO_SQUARE_METER_CONVERSION = 0.09290304
 def areaFeet(self):
 return self.lengthFeet * self.widthFeet
 def areaMeters(self):
 return round(self.areaFeet() * self.SQUARE_FEET_TO_SQUARE_METER_CONVERSION, 3)
The script functionality with user input is nothing new from the previous examples, just read in some data, process it, and respond appropriately.
if __name__ == "__main__":
 length = input("What is the length of the room in feet? ")
 width = input("What is the width of the room in feet? ")
 print("You entered dimensions of " + length + " feet by " + width + " feet.")
 print("The area is")
 room = RectangularRoom(float(length), float(width))
 print(str(room.areaFeet()) + " square feet")
 print(str(room.areaMeters()) + " square meters.")
$ python3 exercises/Ex07_area_of_a_rectangular_room/rectangular_room.py
What is the length of the room in feet? 15
What is the width of the room in feet? 20
You entered dimensions of 15 feet by 20 feet.
The area is
300.0 square feet
27.871 square meters.
Learning review
Github
57-exercises-python/src/exercises/Ex07_area_of_a_rectangular_room


BRYOZOAN FAUNA FROM THE OOLITIC LIMESTONE FROM PAJAREJOS, SW SPAIN
 1. Ernst, Andrej
 2. Rodríguez, Sergio 1
 1. 1 Departamento de Paleontología (CSIC-UCM), Universidad Complutense de Madrid
Journal:
Spanish journal of palaeontology
Year of publication: 2010
Issue Title: REVISTA ESPAÑOLA DE PALEONTOLOGÍA
Volume: 25
Issue: 2
Pages: 83-88
Type: Article
DOI: 10.7203/SJP.25.2.18989 DIALNET GOOGLE SCHOLAR lock_openOpen access editor
Abstract
Outcrops of Devonian rocks at the hill of Pajarejos near Campillo de Llerena, south-western Spain, expose oolitic limestone which contains abundant fragments of bryozoans, whereas other macrofauna is scarce. Eight bryozoan species were identified, which date the outcrop as Middle Devonian. The assemblage shows close affinities with that described from Sabkhat Lafayrina reef complex in Western Sahara, which is situated more than 1,000 km further south today. The studied association supports the previously proposed hypothesis that South-western Spain belonged to the northern margin of Gondwana during the Middle Devonian.


text:
What Causes Hot Tub Foam?
Foam can often be mistaken as friendly hot tub bubbles, but in reality, it is associated with the water's cleanliness. Have you ever looked at your foam in your hot tub and wondered what could be causing it? Hot tub foam is a common experience with all hot tub owners and can be caused by several factors. Although not a serious problem, excess foam can become an unpleasant sight
From shampoos and body oils, to detergent residue and soaps, there could be plenty of resources as to why your hot tub water looks foamy. The appearance of foam in your hot tub's water may also be varied. Sometimes it is patches of foam here and there, and other times the water might look too milky. Read on to know what could be causing the water in your hot tub to become foamy and what you can do about it!
The Chemistry Behind Foamy Water
In order to understand what are the causes of foamy water, it is essential to know what is the science behind this foam. Foam is caused by the build-up of Total Dissolved Solids or TDS. These TDS float at the surface of the water in a hot tub along with the air bubbles created by either the blowers or the jets of the hot tub. Thus, the foam is basically TDS plus air bubbles floating on the surface of the hot tub's water.
In short, the foam is the unwanted contaminants in the water that not dissolvable and thus come up to the surface of the water along with air bubbles. These solids can enter the water from various sources and can remain partially dissolved until the water is cleared. In a span of a week or month, the water can get saturated from the accumulated solids and as a result, the water starts to create foam on the surface. When the water reaches its true saturation point, it starts becoming milky or cloudy in appearance.
Causes of Foamy Water
Amongst the various factors that contribute towards foamy water, a chemical imbalance in the hot tub's water is the most commonly found trigger. When chemicals in the water are disproportional, excess foam is produced. In the long run, a chemical imbalance can also lead to discoloration of the hot tub's surface.
Another cause of foamy water is low calcium levels. When the amount of calcium in a hot tub's water is low, the surface tension decreases thus leading to the lathering of water. Low calcium hardness can also cause damage to the different parts of the hot tub.
Foamy water can also be caused due to beauty products that are applied externally on hair, body, and face. Products like body lotions, body oils, hair serums, hair oil, makeup, etc. can contaminate the water and lead to the formation of foam. These chemicals tend to build up and accumulate in the water until it is saturated and thus lead to the production of foam in the water.
There are several other factors that contribute to the formation of foam. The body secretes sweat and sebum which can mix in the hot tub water while you are soaking. Sometimes our clothes can also contribute to foam production. Soap residue and fabric softener from clothes have a high chance of getting mixed in the hot tub's water. Another contributor to foam is sunscreen. Even though these factors are microscopic in nature, they have the capacity to saturate the water and produce foam on the surface of the hot tub over time.
Getting Rid of Existing Foam
Once you find that the foam in your hot tub has reached a point where it has to be treated, start by assessing the quality of the water. TDS, pH levels, sanitizer levels, acidity, alkalinity are the various factors that need to be first assessed. While the best solution to get rid of foam is to empty the hot tub and fill in new water, there are also many products available in the market that can help dissolve the foam.
Clarifiers work well by clumping the foam together so that it can be filtered away. Sanitizing the water with excess chlorine, also called as a shock, is a popular method of ridding off foam. It is important to make sure to run the jets with the hot tub cover half open while performing a shock so that the excess gas can get released quickly. Anti-foam or de-foamer chemicals like BioGuard Anti-foam help in dissolving the foam.
The most commonly used remedy is to scoop out the foam from the hot tub manually. Although this is not a very practical solution, it does help in temporarily fixing the issue. If after trying all these methods you still notice a significant amount of foam in the hot tub, the best thing you could do is empty the tub and refill it, but with anti-foaming agents this time.
Preventing Foam From Reoccuring
An easy way of preventing foam from accumulating is to shower before you enter the hot tub. This will ensure that any sweat, sebum, body care products, etc. get rinsed off. Rinsing your hair is also a good way of preventing hair care products from entering the pool. Rinsing swimsuits and bathing clothes before you wear them to the hot tub is a good way of avoiding the fabric softener or detergent residues from building up in your hot tub.
If you really wish to spend ample time in the hot tub, make sure you are using a shower cap or baseball cap to avoid hair care products from entering the water. Do not invest in cheap hot tub chemicals as they don't help in the maintenance of the quality of the water. Avoid taking drinks to the hot tub as there are high chances of them getting spilled in the water. It is also best to minimize the times of eating at the hot tub by making use of floating bars.
Drain and clean the hot tub every there to four months. This will ensure that no dirt or debris gets accumulated. It is also equally important to clean the filters thoroughly as the filter system helps in filtering out excess dirt from the water. Alternatively, you can add scumballs in the cartridge of the filter and it will suck in all the dirt and debris that could create foam in the water.
Keep a strict maintenance schedule for the hot tub. This should include changing the water, replacing the filter, checking pH level, checking calcium hardness, checking chlorine levels, assessing sanitizer levels, etc. Regularly shocking the water also helps in clearing away dirt and dust. Allow the water to breathe by removing hot tub cover occasionally.
In conclusion, prevention is always better than cure, even in the matter of foamy hot tub water. Foamy water is not only an issue about water quality, but it also indicates the build-up of bacteria. It is very easy to prevent foam from producing in the first place by simple precautions like balancing the water chemistry and using shock treatment regularly. A proper maintenance schedule will ensure a foam-free hot tub experience for longer periods of time.


Battery charging via Solar pannel
 1. Hey guys, I recently conducted an experiment which involved charging a battery via a PV module and also logging the I and V values to calculate conversion efficiencies. I also logged the I and V values from two other circuits with a fixed resistance. I understand that every irradiation has a Maximum Power Point (MPPT) so a fixed resistance will never draw the maximum energy yield from the PV module. But when I saw the results I saw that the power conversion for the battery was good under high and low irradiances. My question is why is this? Does a battery have some sort of control circuit to vary its resistance? Thanks in advance.
 2. jcsd
 3. mgb_phys
 mgb_phys 8,952
 Science Advisor
 Homework Helper
 No, but depending on the battery type the terminal voltage and so the current availabel from the PV will change as it charges.
 For everythign you want to know about batteries see here
 4. I've looked through that but I still don't understand what is actually happening.
 5. As long as the PV output voltage is higher than the battery it will charge the battery. When the PV output drops, the battery will drain through the PV circuit. Many sailors have woken up to find drained batteries from either leaving their solar charger on at night or not installing diodes to keep the current flowing only to the battery.
 Are you certain that durring the low irradiance test the battery was not what you measured for power conversion?
 6. The forward voltage drop of a diode is roughly 0.6 volts, and is roughly 3 times the emitter-collector drop of a saturated PNP transistor, so using a simple regulator comprised of a simple control circuit and a PNP pass transistor on the + side of the charging voltage is better.
Have something to add?


Part 3: Running OVSDB between Juniper QFX5100 and VMware NSX for vCenter
The following components were used for this example:
 - VMware NSX for vSphere 6.2.0 Build _PHONE_
 - Juniper QFX5100, Junos 14.1X53-D27.3, SDN Package Version 14.1X53-D26.2
The very first step on the QFX5100 is to configure it to run
OVSDB and establish a communication channel to the
NSX controller.
In the example, the NSX controller is having the IP address
The Loopback interface is configured as vtep-source interface. This means that any packet that gets encapsulated by VXLAN is using as source IP address. The destination address is the VTEP IP address of the destination hypervisor or ToR Switch.Additionally, we instruct the switch which interfaces should be controlled by the NSX controller from now on. In this example we use ge-0/0/4. There should be no configuration on the interface.
In the vSphere Web Client we go to „Network and Security" => „Service Definitions" => „Hardware Devices" and click the green „+" to add a new device.
A hardware switch is identified by a name and a certificate which needs to be entered as shown below:
The certificate needs to be installed on the switch before contacting the NSX controller. The NSX controller uses the certificate to identify incoming connections for the exchange of OVSDB information.
After adding the device, a new entry shows up in the vSphere Client showing that the session is established.
On the Juniper Switch we can verify the control-session with a simple command:
Attaching Hardware ports to logical switches
Hardware ports can be attached in vSphere Web Client with „Networking and Security" at the following places:
 - Service-Definitions => Hardware Devices => right-click on device => Attach Logical Switch
 - Logical Switches => right-click on logical switch => Attach Hardware Port
Within NSX, Virtual Networks (VNs) are referred to as logical switches.
In this case we have a logical switch called "VN 1" that we link to the
hardware device and the physical port that should be attached as shown below.
NSX will only show available ports that have been enabled for OVSDB, in our case ge-0/0/4.
After confirming the change, the following configuration will automatically
become active on the QFX5100 for an untagged port.
If a port is tagged with a VLAN-ID of 100 on the NSX controller,
the following configuration would be seen on the QFX5100:
The Juniper Switch performs the configuration of the VXLAN and interface automatically based on the information
received via OVSDB from the NSX Controller. The name of the VLAN is actually the identifier of the logical switch in the NSX database. In order to check the status of the configured VXLAN the following command can be used.
A successful configuration on both sides of the OVSDB exchange can be confirmed by the flag „Created by both". Additionally, the MAC table of this virtual network can be seen on the QFX Switch.
The IP Address is the loopback of the QFX5100 switch that is used as tunnel source address. The address is the address of an ESXi hypervisor which is hosting a virtual machine which is part of the same logical network.
When capturing a live communication between the virtual machine 00:50:56:ad:02:32 located on hypervisor and the physical host 2c:6b:f5:7d:49:f7 which is a connected on the QFX switch, we can see how the overlay network works in practice.
The outer IP header shown in line three has been used by user datacenter network to forward the packet. We can see that the addresses here are actually the same that were shown in the command above as VTEP addresses.
Following the IP header we can see the VXLAN header with a VNI of 5004. The VNI is associated to a virtual network, as soon as it is created in NSX. The QFX5100 switch got this piece of information from the NSX controller via OVSDB when we associated the physical port with the virtual network. This field is used on the egress hypervisor / ToR Switch to match the packet into a certain virtual network.
In the following lines we finally can see the actual MAC addresses of the devices that were part of our example.


Software › visualization
10x Genomics
Chromium Single Cell Gene Expression
What is Loupe Browser?
Loupe Browser is a desktop application that provides interactive visualization functionality to analyze data from different 10x Genomics solutions. Loupe Browser allows you to easily interrogate different views of your 10x data to quickly gain insights into the underlying biology. Loupe is named for a jeweler's loupe, which is used to magnify and inspect the details of precious gemstones.
Loupe Browser supports the analysis of the following types of data:
Chromium Platform
Visium Platform
To use Loupe Browser, open any.cloupe file generated by the Cell Ranger analysis software. The Cell Ranger.cloupe file is embedded with the following information:
Once your data is in Loupe Browser, you can rapidly explore and gain insights from the data without the need to do any programming.
Loupe Browser Single Cell Gene Expression Tutorials
Loupe Browser provides many powerful analysis capabilities. To learn how to use Loupe Browser to analyze your gene expression data, review the following tutorials.
Loupe Browser is built to accelerate the following applications:
To walk through the features and uses of Loupe Browser, start the tutorial.


Batch query plan export
Before upgrading to a new Vertica version, you might want to use directed queries to save query plans for possible reuse in the new database.
Before upgrading to a new Vertica version, you might want to use directed queries to save query plans for possible reuse in the new database. You cannot predict which query plans are likely candidates for reuse, so you probably want to save query plans for many, or all, database queries. However, you run hundreds of queries each day. Saving query plans for each one to the database catalog through repetitive calls to CREATE DIRECTED QUERY is impractical. Moreover, doing so can significantly increase catalog size and possibly impact performance.
In this case, you can bypass the database catalog and batch export query plans as directed queries to an external SQL file. By offloading query plan storage, you can save any number of query plans from the current database without impacting catalog size and performance. After the upgrade, you can decide which query plans you wish to retain in the new database, and selectively import the corresponding directed queries.
Vertica provides a set of meta-functions that support this approach:
 - EXPORT_DIRECTED_QUERIES generates query plans from a set of input queries, and writes SQL for creating directed queries that encapsulate those plans.
 - IMPORT_DIRECTED_QUERIES imports directed queries to the database catalog from a SQL file that was generated by EXPORT_DIRECTED_QUERIES.


text:
An ongoing study in Yellowstone National Park seeks to measure the emissions of carbon dioxide (CO2) as a response to geologic activity and as a possible predictor of some geologic events. A story covering this study notes that researchers estimate that Yellowstone emits 45,000 tons of CO2 per day. That is about 16.5 million tons per year.
The EPA estimates that the average car emits between five and six tons of CO2 per year. So natural geologic activity in Yellowstone contributes CO2 equivalent to about 3 million cars. The current attempts by the EPA to limit CO2 emissions would be dangerous for the American economy, but they would have no impact on the millions of tons Yellowstone emits every year.
More seriously, the EPA regulations would also have little impact on the billions of additional tons of CO2 that China, India, and the developing world will emit each year in the decades ahead. As a result, the regulations would have damaging impacts on the American economy, but just like cap-and-trade restrictions, they would have negligible impact on world temperatures.
Read more informative articles at Heritage – The Foundry


text:
This action is used to get a tile index on a given layer. The layer is specified from the layer name given (a string, as used to name the layer in the Room Editor), and then you give an x and y position to find the tile to get the index of. The tile will be the one that the given position falls within in the room, and the index will be returned to the target variable. The x and y position can be flagged as being relative to the position of the calling instance, and the target variable can be flagged as a temporary (local) variable that can be used until the end of the event.
Argument Description Layer The layer to set the tile on x The x position to check y The y position to check Target The target variable to store the tile index
The above action block code checks for a mouse left button press and if one is detected it gets the index of the tile cell that the position of the mouse falls within. This tile index is then checked and if it is not 0, it is set to 0.


text:
HOW WILL THIS E-BOOK MAKE PLANNING EASIER?
Programming and Planning is a downloadable E-book in PDF format perfect for early childhood educators who want to know more about the steps of the planning cycle, what is really required and how to save time doing it! Includes planning templates you can print or download to edit on your computer.
Downloading this E-Book gives you:
- An easy to understand overview of the planning system Jodie uses with completed examples and photos to help you understand and visualise each step.
- The ability to meet EYLF outcomes without needing to write confusing codes, numbers and symbols on your program.
- A clear understanding of what the planning cycle is and how you can make it work for you without the usual programming stress
- An insight into what you REALLY need to do versus current EYLF myths and the endless 'you have to' confusing information.
- Presented in a back to basics format and tone that will help you to start programming effectively immediately!
- Over 160 pages of valuable information, tools, templates and tips
- Observation, reflection, forward planning and weekly program templates you can edit to get you started.
- The knowledge of how to link observations and reflections to your forward planning.
- Developmental checklists to use for ages 0-5 years.
What do you receive after purchase?
You will receive a confirmation email with an official receipt and links to download the following files immediately after payment is completed:
- E-book in PDF format to download and save to your computer.
- 15 Editable Templates (13 in Word, 2 in Publisher formats) Print and write or edit and save.
Learn more about what is really expected and how to develop your own programming style using different methods and easy strategies that will save you time – then get back to what you love and do well, playing and interacting with the children in your care!


text:
|Contin shown within the Highland council area|
|OS grid reference|
|Sovereign state||United Kingdom|
The church in Contin is dedicated to St Maelrubha or Máel Ruba and is on Contin Island which lies in the Black Water (Conon) and is reached from the rest of the village by two bridges, one foot and the other road. The present building dates back to the 18th century but there has probably been a church on this site since the 7th or 8th century.
According to a booklet "Parish of Contin 690 to 1990", based on research by Rev. A. C. Maclean F.S.A., J.P. Minister from 1906 to 1937, published by the Church of Contin "Between 1485 and 1487 the Macdonalds and some of their allies (about 1,000 men) meeting at Contin, on their way to a punitive raid against the Mackenzies of Kinellan, discovered the church was filled with the aged men, women and children trusting to its sanctuary. Alexander Macdonald ordered the door to be shut and the building to be surrounded so that none could escape. He gave orders to set the church on fire, and everyone within - several hundreds - were burnt to death. Vengeance from the Mackenzies and Macreas was swift. After the battle at Pairc, one or two hundred out of 1,800 to 2,000 Macdonalds and their followers, who had eventually gathered at Contin, were left to escape as they might."
- Runrig song-writer and percussionist Calum MacDonald lives in the village in the Old Manse. Coul House Hotel is situated in the hills to the North of the village.
- John Mackenzie, recipient of the Victoria Cross
- Dr Paul Monaghan, SNP MP for Caithness, Sutherland and Easter Ross since the UK 2015 General Election


Join the Community! Creating your account only takes a few minutes.
Join Now
I kept getting this message while trying to convert a 2007 PPTX to a 2003 PPT.:
You are attempting to save a file type that is blocked by your registry policy setting
Here is the solution I found that works REF KB#922847:
 1. Exit PowerPoint 2003.
 2. Click Start, click Run, type regedit in the Open box, and then click OK.
 3. Locate and then click one of the following registry subkeys:

 HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Common
 HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\11.0\Common

 4. On the Edit menu, point to New, and then click Key.
 5. Type OICEExemptions for the name for the key.
 6. On the Edit menu, point to New, and then click String Value.
 7. Type a string name, and then press ENTER. For example, type ExemptDirectory.
 8. Right-click the string name that you typed in step 7, and then click Modify.
 9. In the Value data box, type the path of the directory that contains the file, and then click OK. For example, if your document is in the C:\My Documents folder, type C:\My Documents in the Value data box.
Note You must create the folder. Any subfolders are not automatically exempted. For any additional folders that you would like to make exempt, repeat steps 6 to 9 by creating string values such as "ExemptDirectory1" and "ExemptDirectory2."

Helpdesk icon
Spiceworks Help Desk
The help desk software for IT. Free.
Track users' IT needs, easily, and with only the features you need.
This discussion has been inactive for over a year.
You may get a better answer to your question by starting a new discussion.
Oops, something's wrong below.


APL Backstack Extension
Use the backstack extension to give users the ability to navigate back to previously-view APL documents, similar to the HTML_History object.
The backstack extension is available on Amazon devices, but might not be available on all devices devices that support APL. Use the when property in your APL document to provide an alternate experience for devices that don't support backstack.
For details about how extensions work, see Extensions.
Extension summary
Minimum Supported APL Version APL 1.3
Extension URI aplext:backstack:10
Settings backstackId
Environment properties
Commands
Event handlers None.
Image filters None
Required in Skill Manifest? No
Auto-initialized settings? No
Backstack extension overview
Similar to the HTML_History object, the backstack extension allows for implicit sequential back navigation to previous documents, while also preserving state of those documents. The backstack extension adds new commands so that documents can directly manipulate the backstack and return to previous documents.
 - The backstack extension is an optional feature, and might not be available on all devices that support APL.
 - The backstack extension is relative to a single instance of an APL client. This is similar to HTML_History being relative to an individual tab in a browser.
 - Documents are added to the backstack on an opt-in basis, by providing a backstackId in the document settings.
 - The backstack can be used to return to previous documents in the stack, but can't go forward.
 - The backstack length can be queried using the backstack property in the environment property.
 - Documents in the backstack are implicitly returned to in reverse sequential order. They can be returned to non-sequentially through explicit use of their backstackId.
 - The backstack preserves and restores the state of documents returned to via back navigation.
 - The backstack implicitly clears all subsequent documents on return to any previous document in the stack.
 - The backstack can be explicitly cleared with the Clear command.
Understand the backstack
To use the backstack extension, request the extension in the document extensions property.
The URI for the backstack extension is "aplext:backstack:10".
This example requests the backstack extension and assigns it the name "Back".
{
 "type": "APL",
 "version": "1.9",
 "extensions": [
 {
 "name": "Back",
 "uri": "aplext:backstack:10"
 }
 ]
}
Use the environment.extension variable to check whether the user's device supports the backstack extension.
{ "type": "Text", "text": "The backstack extension is ${environment.extension.Back ? 'installed' : 'not installed'}" }
When you reference backstack in your document, always use the when clause with the environment.extension variable to make sure that the extension is supported on the user's device.
Add documents to the backstack
By default, APL documents are not added to the APL client's backstack (even when you request the backstack extension).
To include a document on the backstack, set the backstackId property in the document settings property for the document.
{
 "type": "APL",
 "version": "1.9",
 "extensions": [
 {
 "name": "Back",
 "uri": "aplext:backstack:10"
 }
 ],
 "settings": {
 "Back": {
 "backstackId": "myDocument"
 }
 }
}
For more details on the requirements for targeting a document in the backstack, see the GoBack command.
There are 2 ways that a user can navigate documents you have added to the backstack:
 1. Implicit (System Event) back navigation
 2. Explicit (Command Based) back navigation
Any navigation of the backstack implicitly clears the document being returned to, and all subsequent documents from the backstack, regardless of how navigation took place (implicit or explicit).
For example, assume documents A,B,C, & D have been added to the backstack. The user navigates back to document B. This removes B,C,& D from the backstack and only document A remains.
System event back navigation
A system back event is considered any event performed by the device's OS in response to user back input. This may include inputs such as:
 - Press of a physical back button on the device or paired remote control.
 - Press of a system-level UI back button (Android system tray).
 - The user saying an utterance such as 'back' or 'go back.'
On handling of a system back input event, the APL client follows these rules:
 - When the backstack property length is greater than zero, the current document is exited, and the previous document in the stack is restored. This is the same as running the GoBack.
 - When the backstack property lengthis zero, the current document AND the client is exited. This is the same as running the [Finish] command.
Command-based back navigation
The backstack extension provides support for explicit navigation of the backstack via the GoBack command. Run the GoBack command from any event handler to navigate the backstack in reverse sequential order. Assuming that the backstack extension has been registered as 'Back', send a GoBack command with:
{
 "type": "Back:GoBack"
}
Command-based back also allows for non-sequential navigation of the backstack through use of the backType property on the GoBack command.
{
 "type": "Back:GoBack",
 "backType": "id",
 "backValue": "myDocument"
}
In certain device use cases a system-level back input may not be available. The backstack environment property responsibleForBackButton can be queried to determine if the APL document is responsible for providing input to the backstack (because the system is not). When true, you can use the GoBack command for back navigation.
For example, an APL document using the backstack can draw its own 'back' button on the screen if the system-level back input is not available:
{ "when": "${environment.extension.Back.responsibleForBackButton}", "type": "TouchWrapper", "items": { "type": "Text", "text": "Press here to go back" }, "onPress": { "type": "Back:GoBack" } }
Clear the Backstack
Use the Clear command to explicitly clear the backstack. Run the Clear command from any APL event handler:
{
 "type": "TouchWrapper",
 "items": {
 "type": "Text",
 "text": "Clear the backstack"
 },
 "onPress": {
 "type": "Backstack:Clear"
 }
 }
Restore the document state from backstack
When returning to any document in the backstack, the document restores to the last active state before the document was exited and added to the backstack. In addition to standard rules of document inflation, the following rules apply:
 - All dynamic component properties are restored to their last active value.
 - All component stated properties are restored to their last active value.
 - Focus returns to the last component to have focus.
 - All navigable components are restored to their last active 'positions':
 - All media components are restored to their last active states:
 - Video – All video state properties are restored.
 - onMount handlers don't run when the backstack restores the document.
Note that any commands active when the document was exited are not restored.
Settings
The backstack extension has the following settings.
Name Type Default Description
backstackId String "" Reference name for this document used in commands
backstackId
The backstackId property determines whether the document is added to the backstack.
A document is added to the backstack when the document is replaced by a new document, not when the document is initially displayed on the screen. For example:
 1. APL initializes and displays document A, which has a backstackId set.
 2. Backstack length is 0.
 3. The device receives and displays document B.
 4. Backstack length is now 1, because document A has been added to the stack.
If the backstackId is not present or empty, the document will not be added to the backstack. If it is present, the document is added to the backstack.
There is no requirement that backstackId values be unique; duplicate backstackId values are permitted in the backstack. Be aware that with duplicates only the most recent document in the backstack can be reached with the GoBack command.
For example, to indicate a document should be added to the backstack, specify:
{
 "type": "APL",
 "version": "1.9",
 "extensions": [
 {
 "name": "Back",
 "uri": "aplext:backstack:10"
 }
 ],
 "settings": {
 "Back": {
 "backstackId": "myDocument"