Lab Creation
The labs first started when I was building proof of concept designs specific to current migration needs. I then modified them to be used by my user group. After multiple iterations, I came up with the current labs. I thought they may be of help to others, so I our group decided to publish them.
History
The original name for the group was awsandbeyond and began June 2015. I worked with a group of IT Architects supporting three
large Center of Medicare and Medicaid Services (CMS) programs. Our team consisted of Architects who where responsible for end to end architecutre.
I was handed the task to design a case management system for a bid that would be hosted in a FedRAMP certified cloud. At the time, Amazon Web Services (AWS)
was the only major cloud provider that was FedRAMP certified. The move to AWS as well as a shift towards opensource software was a big change, from design through implementation.
Quickly after I starting to work on the AWS bid, one of my colleagues was leaving the company.
It was clear that the cloud and open source was going to continue to be disruptive so I asked if he and another architect would be willing to have a
site to share information as we focused on different areas of the changing technology stack. They agreed, so I came up with a simple idea of using Google mail and Google drive as this repository. With AWS as the starting point and a vision that we had no idea what other clouds we would have to deal with, I named the account<EMAIL_ADDRESS>Creating the user group.
As I got further into AWS architecture and building prototypes, it became clear this would impact our various infrastructure and application teams. I wanted a way to share the knowledge I was acquiring and help the teams learn the emerging skills. I created a user group and used the<EMAIL_ADDRESS>drive to share scripts/labs I built specific to AWS build outs and migrations.
By this time, another project I was working on was evaluating AWS also, so again I needed to put together the technical architecture, but this time for an AWS migration.
I made more POCs and turned those into labs, and brought those to the user groups to do knowledge share.
Changing the name to Devopsandbeyond
After three years of working with my user group, I thought it would be a good idea
to publically publish the labs. The led me to change the name to Cloudandbeyond and
clean up some of the labs and publish.
As I got further into AWS architecture and building prototypes, it became clear this would impact our various infrastructure and application teams. I wanted a way to share the knowledge I was acquiring and help the teams learn the emerging skills. I created a user group and used the<EMAIL_ADDRESS>drive to share scripts/labs I built specific to AWS build outs and migrations.
The challenge with AWS can be summarized as:
What are we putting in AWS?
How are we putting it into AWS?
Who is putting it into AWS?
How are we securing it?
How are do we make it more available, performant
How do we manage changes?
Who is doing what do develop appropriate Roles?
The labs I created are from when I was learning AWS, and progressing deeper into the platform and cloud-native technology. I hope they provide value to you in this fast paced world.


Your last appointment was on 6/28/21 at 8:00am with Dr. Bostick
You have NO upcoming appointments scheduled
Heart Rate
80BPM
10% increase
Blood Pressure
120/80
5% decrease
Height
5ft. 6in.
no change
Weight
155lbs
8% decrease
BMI
18.5
10% increase
Spo2
99%
no change
Specialist
Date
Time
Status
Dr. Crusher
Internal Medicine
6/29/21
9:00am
upcoming
Dr. Pulaski
Internal Medicine
8/18/21
11:00am
cancelled
Dr. Pulaski
Internal Medicine
8/18/21
11:00am
cancelled
Tylenol
500mg
Two pills as needed for pain.
Not to Exceed 8 pills a day
Aspirin
500mg
Two pills as needed for pain.
Not to Exceed 8 pills a day
Vitamin C
1000mg
One pill daily with food
Specialist
Location
Date
Results
Dr Crusher
San Jose General Hospital
6/29/2021
Dr. Pulaski
Haight Street Clinic
6/19/2021


{{fanError | json}}
This project shows how applications can be built using Firebase, Angular and Node with typesafe and debuggable function calls.
This demo uses a generated shim to synchronously call the function and display the result. Add an extra delay to demonstrate the page spinner.
| Your Name: | |
| Favorite Show: | |
| Extra Delay: | |
| Function Response: |
{{hello}} |
This demo calls a function that throws an error and demonstrates how that error is propagated back to the client and made available from the FanErrorService.
This demo calls a function that reads people from a MySQL database. Follow the instructions at FanStack.com to set up SQL or you'll get an ECONNREFUSED error.
| {{person.personId}} | {{person.first}} | {{person.last}} | {{person.favoriteShow}} |


Esp32 Micropython With DHT11 Temperature Sensor
GO TO https://github.com/weijuinlee/esp32micropythondht11
Here’s a list of parts you need to build the circuit:
- DHT11 or DHT22 temperature and humidity sensor
- 10k Ohm resistor
- Breadboard
- Jumper wires
Code:
from machine import Pin
from time import sleep
import dht
sensor = dht.DHT22(Pin(14))
#sensor = dht.DHT11(Pin(14))
while True:
try:
sleep(2)
sensor.measure()
temp = sensor.temperature()-590
hum = sensor.humidity() - 1600
print('Temperature: %f C' %temp)
print('Humidity: %3.1f %%' %hum)
except OSError as e:
print('Failed to read sensor.')
Written on November 9, 2019


Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.
For the best experience please use the latest Chrome, Safari or Firefox browser.
By Sébastien RancoudTwitter @rancoud
Sébastien Rancoud
Developer Front/Back for 7 years
Today Lead Developer at Steaw, digital's agency
CMS oriented publishing
1 website on 5 in the world
Stats W3techs april 2014:
no CMS 63.7% - Wordpress 22% - Joomla 3.1% - Drupal 1.9%
A hosting supporting:
That's all
Edit colors
Edit menu
Add widgets
Template different per page
Custom Settings
1 title and 1 free text
1 featured image
Timestamp
New entry in administration
Template different
Add custom fields
Add automatically form field
Have structuring template (use new meta data)
Category
Tag
Different group
New entry for reading posts
E-commerce
Forum
CRM
YES
Cache's plugin (W3 Total Cache, WP Super Cache)
Varnish


{% extends "base.html" %} {% load bootstrap4 %} {% load i18n %} {% block head_title %}{% trans "Verify your email" %}{% endblock %} {% block content %}
You should have received an email at {{ user.email | urlize }} which you need to confirm to proceed. Remember to check the spam folder!


| PostgreSQL 9.5.19 Documentation | |||
|---|---|---|---|
| Prev | Up | Chapter 62. BRIN Indexes | Next |
The BRIN interface has a high level of abstraction, requiring the access method implementer only to implement the semantics of the data type being accessed. The BRIN layer itself takes care of concurrency, logging and searching the index structure.
All it takes to get a BRIN access method working is to implement a few user-defined methods, which define the behavior of summary values stored in the index and the way they interact with scan keys. In short, BRIN combines extensibility with generality, code reuse, and a clean interface.
There are four methods that an operator class for BRIN must provide:
BrinOpcInfo *opcInfo(Oid type_oid)
Returns internal information about the indexed columns' summary data. The return value must point to a palloc'd BrinOpcInfo, which has this definition:
typedef struct BrinOpcInfo { /* Number of columns stored in an index column of this opclass */ uint16 oi_nstored; /* Opaque pointer for the opclass' private use */ void *oi_opaque; /* Type cache entries of the stored columns */ TypeCacheEntry *oi_typcache[FLEXIBLE_ARRAY_MEMBER]; } BrinOpcInfo;
BrinOpcInfo.oi_opaque can be used by the operator class routines to pass information between support procedures during an index scan.
bool consistent(BrinDesc *bdesc, BrinValues *column,
ScanKey key)
Returns whether the ScanKey is consistent with the given indexed values for a range. The attribute number to use is passed as part of the scan key.
bool addValue(BrinDesc *bdesc, BrinValues *column,
Datum newval, bool isnull)
Given an index tuple and an indexed value, modifies the indicated attribute of the tuple so that it additionally represents the new value. If any modification was done to the tuple, true is returned.
bool unionTuples(BrinDesc *bdesc, BrinValues *a,
BrinValues *b)
Consolidates two index tuples. Given two index tuples, modifies the indicated attribute of the first of them so that it represents both tuples. The second tuple is not modified.
The core distribution includes support for two types of operator classes: minmax and inclusion. Operator class definitions using them are shipped for in-core data types as appropriate. Additional operator classes can be defined by the user for other data types using equivalent definitions, without having to write any source code; appropriate catalog entries being declared is enough. Note that assumptions about the semantics of operator strategies are embedded in the support procedures' source code.
Operator classes that implement completely different semantics are also possible, provided implementations of the four main support procedures described above are written. Note that backwards compatibility across major releases is not guaranteed: for example, additional support procedures might be required in later releases.
To write an operator class for a data type that implements a totally ordered set, it is possible to use the minmax support procedures alongside the corresponding operators, as shown in Table 62-2. All operator class members (procedures and operators) are mandatory.
Table 62-2. Procedure and Support Numbers for Minmax Operator Classes
| Operator class member | Object |
|---|---|
| Support Procedure 1 | internal function brin_minmax_opcinfo() |
| Support Procedure 2 | internal function brin_minmax_add_value() |
| Support Procedure 3 | internal function brin_minmax_consistent() |
| Support Procedure 4 | internal function brin_minmax_union() |
| Operator Strategy 1 | operator less-than |
| Operator Strategy 2 | operator less-than-or-equal-to |
| Operator Strategy 3 | operator equal-to |
| Operator Strategy 4 | operator greater-than-or-equal-to |
| Operator Strategy 5 | operator greater-than |
To write an operator class for a complex datatype which has values included within another type, it's possible to use the inclusion support procedures alongside the corresponding operators, as shown in Table 62-3. It requires only a single additional function, which can be written in any language. More functions can be defined for additional functionality. All operators are optional. Some operators require other operators, as shown as dependencies on the table.
Table 62-3. Procedure and Support Numbers for Inclusion Operator Classes
| Operator class member | Object | Dependency |
|---|---|---|
| Support Procedure 1 | internal function brin_inclusion_opcinfo() | |
| Support Procedure 2 | internal function brin_inclusion_add_value() | |
| Support Procedure 3 | internal function brin_inclusion_consistent() | |
| Support Procedure 4 | internal function brin_inclusion_union() | |
| Support Procedure 11 | function to merge two elements | |
| Support Procedure 12 | optional function to check whether two elements are mergeable | |
| Support Procedure 13 | optional function to check if an element is contained within another | |
| Support Procedure 14 | optional function to check whether an element is empty | |
| Operator Strategy 1 | operator left-of | Operator Strategy 4 |
| Operator Strategy 2 | operator does-not-extend-to-the-right-of | Operator Strategy 5 |
| Operator Strategy 3 | operator overlaps | |
| Operator Strategy 4 | operator right-of | Operator Strategy 2 |
| Operator Strategy 5 | operator does-not-extend-to-the-right-of | Operator Strategy 1 |
| Operator Strategy 6, 18 | operator same-as-or-equal-to | Operator Strategy 7 |
| Operator Strategy 7, 13, 16, 24, 25 | operator contains-or-equal-to | |
| Operator Strategy 8, 14, 26, 27 | operator is-contained-by-or-equal-to | Operator Strategy 3 |
| Operator Strategy 9 | operator does-not-extend-above | Operator Strategy 11 |
| Operator Strategy 10 | operator is-below | Operator Strategy 12 |
| Operator Strategy 11 | operator is-above | Operator Strategy 9 |
| Operator Strategy 12 | operator does-not-extend-below | Operator Strategy 10 |
| Operator Strategy 20 | operator less-than | Operator Strategy 4 |
| Operator Strategy 21 | operator less-than-or-equal-to | Operator Strategy 4 |
| Operator Strategy 22 | operator greater-than | Operator Strategy 1 |
| Operator Strategy 23 | operator greater-than-or-equal-to | Operator Strategy 1 |
Support procedure numbers 1-10 are reserved for the BRIN internal functions, so the SQL level functions start with number 11. Support function number 11 is the main function required to build the index. It should accept two arguments with the same datatype as the opclass, and return the union of them. The inclusion opclass can store union values with different datatypes if it is defined with the STORAGE parameter. The return value of the union function should match the STORAGE datatype.
Support procedure numbers 12 and 14 are provided to support irregularities of built-in datatypes. Procedure number 12 is used to support network addresses from different families which are not mergeable. Procedure number 14 is used to support empty ranges. Procedure number 13 is an optional but recommended one, which allows the new value to be checked before it is passed to the union function. As the BRIN framework can shortcut some operations when the union is not changed, using this function can improve index performance.
Both minmax and inclusion opclasses support cross-datatype operators, though with these the dependencies become more complicated. The minmax opclass requires a full set of operators to be defined with both arguments having the same datatype. It allows additional datatypes to be supported by defining extra sets of operators. Inclusion opclass operator strategies are dependent on another operator strategy as shown in Table 62-3, or the same operator strategy as themselves. They require the dependency operator to be defined with the STORAGE datatype as the left-hand-side argument and the other supported datatype to be the right-hand-side argument of the supported operator. See float4_minmax_ops as an example of minmax, and box_inclusion_ops as an example of inclusion.


{% include themes/hacking-in-the-dark/fragments/js/olark.html %} {% include themes/hacking-in-the-dark/fragments/js/google_plusone.html %} {% include themes/hacking-in-the-dark/fragments/js/twitter.html %}


Files | |
| file | CCamera.cpp |
| file | CCamera.h [code] |
| file | CCoordinateFrameSceneObject.cpp |
| file | CCoordinateFrameSceneObject.h [code] |
| file | CDirectionalLight.cpp |
| file | CDirectionalLight.h [code] |
| file | CGeometryCreator.cpp |
| file | CGeometryCreator.h [code] |
| file | CLineSceneObject.cpp |
| file | CLineSceneObject.h [code] |
| file | COrthographicCamera.cpp |
| file | COrthographicCamera.h [code] |
| file | CPerspectiveCamera.cpp |
| file | CPerspectiveCamera.h [code] |
| file | CPointLight.cpp |
| file | CPointLight.h [code] |
| file | CRenderPass.cpp |
| file | CRenderPass.h [code] |
| file | CSceneManager.cpp |
| file | CSceneManager.h [code] |
| file | CSimpleMesh.cpp |
| file | CSimpleMesh.h [code] |
| file | CSimpleMeshSceneObject.cpp |
| file | CSimpleMeshSceneObject.h [code] |
| file | CSimpleSceneObject.cpp |
| file | CSimpleSceneObject.h [code] |
| file | ICamera.h [code] |
| file | ILight.cpp |
| file | ILight.h [code] |
| file | ionScene.h [code] |
| file | ISceneObject.cpp |
| file | ISceneObject.h [code] |
Generated on Sun May 6 2018 for ionEngine v0.4.5


new TibberFeed(tibberQuery, timeout, returnAllFields, connectionTimeout)
Constructor for creating a new instance if TibberFeed.
Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
tibberQuery |
TibberQueryBase | TibberQueryBase object. | |
timeout |
number | 60000 | Feed idle timeout. The feed will reconnect after being idle for more than the specified number of milliseconds. |
returnAllFields |
boolean | false | Specify if you want to return all fields from the data feed. |
connectionTimeout |
number | 10000 | Feed connection timeout. |
- Source:
- See:
Methods
clearTimer(timer)
Clear timeout for a timer.
Parameters:
| Name | Type | Description |
|---|---|---|
timer |
NodeJS.Timer | Timer handle to clear |
- Source:
close()
Close the Tibber feed.
- Source:
closeConnection()
Gracefully close connection with Tibber.
- Source:
(async) connect()
Connect to Tibber feed.
- Source:
(async) connectWithDelay()
Connect to feed with built in delay, timeout and backoff.
- Source:
error(message)
Log function to emit error log data to subscribers.
Parameters:
| Name | Type | Description |
|---|---|---|
message |
any | Log message |
- Source:
getBackoffWithJitter(attempt) → {number}
Exponential backoff with jitter
Parameters:
| Name | Type | Description |
|---|---|---|
attempt |
number | Connection attempt |
- Source:
Returns:
- Type
- number
getRandomInt(max) → {number}
Generate random number with a max value.
Parameters:
| Name | Type | Description |
|---|---|---|
max |
number | Maximum number |
- Source:
Returns:
Random number.
- Type
- number
heartbeat()
Heartbeat function used to keep connection alive.
Mostly for internal use, even if it is public.
- Source:
initConnection()
Initialize connection with Tibber.
- Source:
(async) internalConnect()
Internal connection method that handles the communication with tibber feed.
- Source:
log(message)
Log function to emit log data to subscribers.
Parameters:
| Name | Type | Description |
|---|---|---|
message |
string | Log message |
- Source:
sendQuery(query)
Send websocket query to Tibber
Parameters:
| Name | Type | Description |
|---|---|---|
query |
IQuery | Tibber GQL query |
- Source:
startSubscription(subscription, variables)
Subscribe to a specified resource.
Parameters:
| Name | Type | Description |
|---|---|---|
subscription |
@typedef string Name of the resource to subscribe to. | |
variables |
@typedef Record |
- Source:
stopSubscription(operationId)
Stops subscribing to a resource with a specified operation Id
Parameters:
| Name | Type | Description |
|---|---|---|
operationId |
number | Operation Id to stop subscribing to. |
- Source:
terminateConnection()
Forcefully terminate connection with Tibber.
- Source:
warn(message)
Log function to emit warning log data to subscribers.
Parameters:
| Name | Type | Description |
|---|---|---|
message |
string | Log message |
- Source:


escape-html
Escape string for use in HTML
Example
var escape = require('escape-html');
var html = escape('foo & bar');
// -> foo & bar
Benchmark
$ npm run-script bench
><EMAIL_ADDRESS>bench nodejs-escape-html
> node benchmark/index.js
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>modules@11
<EMAIL_ADDRESS>1 test completed.
2 tests completed.
3 tests completed.
no special characters x 19,435,271 ops/sec ±0.85% (187 runs sampled)
single special character x 6,132,421 ops/sec ±0.67% (194 runs sampled)
many special characters x 3,175,826 ops/sec ±0.65% (193 runs sampled)
License
MIT


Welcome to Greencrate
Recipes and ingredients sent straight to your door.
All for only $8 per meal.
Register and Order
After registering, you'll let us know which days you want a food kit, and at approximately what time (in between 4-7pm).  If you are lacking some core materials, we can send you some for free on your first kit.
Assemble and Prepare
On our end, we bulk purchase healthy and affordable foods from farmers, lowering costs for both us and you! From our menu designs, we create food kits for each day, containing ingredients for our recipe of the day, and a recipe card with detailed instructions on how to create a beautiful, awesome meal!
Transport and Deliver
We conveniently deliver the food kit to your house or place of residence, of which your time and day you can choose. We eliminate the time and resource investment needed to head to several grocery and specialty stores, as well as auxiliary transporation costs. In addition, the kits are reusable, so once you're done we'll pick up your leftover boxes!
Cook and Enjoy
After receiving the kit, you can cook each recipe (with the aforementioned included recipe cards) in less than 30 minutes and using only a few basic materials. Hopefully, you learn some pretty rocking awesome cooking skills!
Why choose Greencrate?
This service is awesome!
10/10, would recommend again!
Greencrate is the best food services I've ever used!


Spot the for loop, array, object, property and method.
var users = [
{
name: 'Helen',
greet: function() {
console.log('Hola, Im ' + this.name);
}
},
{
name: 'Pete',
greet: function() {
console.log('Hey, its ' + this.name);
}
}
];
for (var i = 0; i < users.length; i++) {
users[i].greet();
}
Your Content
+ HTML: Structure
+ CSS: Presentation
+ Javascript: Behavior/Interactivity
= Your Website
A website is a way to present your content to the world, using HTML and CSS to present that content & make it look good.
Photo credit: Nic's events cc
Photo credit: pumpkincat210 cc
HTML elements "nest" inside one another
Oftentimes, people think of HTML as something flat -- a bunch of text with tags in the middle.
<!DOCTYPE html>

<title>Test Page</title>

My Page

Hello World!

However, it is something much more than that. Any HTML document is a tree structure defined by the DOM (Document Object Model).
Your browser automatically loads the content of a webpage into a Document
object which serves as the entry point into a web page's content.
Using the document
variable you can:
Photo credit: Jeffery Beall cc
ID - Should only apply to one element on a webpage, i.e., you might have an id of banner
on your webpage's banner.
The #
is how you find ids in CSS.
Class - Lots of elements can have the same class, i.e., There can be many elements with a warning
class on one webpage.
The .
is how you find classes in CSS.
You can find elements by id
using the method:
document.getElementById(id);
For example, to find:

We would use:
var imgKitten = document.getElementById('kittenPic');
document.querySelector(cssSelector);
document.querySelectorAll(cssSelector); // Whats the difference?
How would we find a single element with id my-kat?
var myCatElement = document.querySelector('#my-cat');
How about all elements with a class of cats?
var catElements = document.querySelectorAll('.cats');
Photo credit: Darryl Kenyon cc
You can access and change attributes of DOM elements using dot notation.
To change this element:

We could change the src attribute this way:
var imgKitten = document.getElementById('kittenPic');
// will return src attribute on image
var imageSrc = imgKitten.src;
// will set our src to a new src
imgKitten.src = 'http://placekitten.com/g/600/500';
You can also use getAttribute
or setAttribute

We could change the src attribute this way:
var imgKitten = document.getElementById('kittenPic');
// will return src attribute on image
imgKitten.getAttribute('src');
// will set our src to a new src
imgKitten.setAttribute('src', 'http://placekitten.com/g/600/500');
You can change the style of an element by adding or removing a class with some CSS associated.
.highlight { background-color: yellow; }
var myCatElement = document.querySelector('#my-cat');
myCatElement.className = 'highlight'; // Add highlight class
myCatElement.className = ''; // Remove highlight class
Find an element and store it in a variable. Add a class to the element which applies some css.
Each DOM element has an innerHTML
property with the HTML and content of its children. You can use the property to retrieve or change the HTML of a element.
For example, you can overwrite the entire body:
var pageBody = document.querySelector('body'); // also document.body
pageBody.innerHTML = '
Oh Noes!

I changed the whole page!
'
Or just add some new content to the end
pageBody.innerHTML += '...just adding this at the end of the page.';
Each DOM element has an textContent
property with its text content. You can use the property to retrieve or change the text of a element.
var myParagraph = document.querySelector('p.my-paragraph');
myParagraph.textContent = 'Hello There!';
The document
object also has methods to create elements from scratch:
document.createElement(tagName);
document.createTextNode(text);
element.appendChild(element);
var pageBody = document.body;
// create our image tag with attributes
var newImg = document.createElement('img');
newImg.src = 'http://placekitten.com/g/500/200';
newImg.className = 'my-image';
// add our image to the body
pageBody.appendChild(newImg);
// create a paragraph tag with content
var newParagraph = document.createElement('p');
var paragraphText = document.createTextNode('Squee!');
newParagraph.appendChild(paragraphText);
// add our new paragraph to the body
pageBody.appendChild(newParagraph);
Create a new paragraph element and add it to a div
on your page.
Try modifying the text content of an existing html tag.
An event is when "something happens" on a web page. It may be an user interaction such as a click or changing the value of a field, but it can also be something that is not triggered by the uer such as an image or the entire page finishing loading. When can "listen" to events to run code when they occur.
For example, JavaScript creates an event when a user clicks an element.
element.addEventListener('click', function(event) {
// code to be executed when user clicks
});
There are a variety of events. Some of the more common events are:

Using the window load event, we can wait to run our code until the page is ready.
window.addEventListener('load', function() {
document.body.innerHTML += 'Now its ok!
';
});
The DOMContentLoaded event fires when the DOM is ready, but assets like images and css may not have finished downloading.
document.addEventListener('DOMContentLoaded', function() {
document.body.innerHTML += 'This works too!
';
});
Moving your script to right before the closing  tag will also work.

You can call a function from the addEventListener:
<button id="myBtn">Click Me!</button>
var button = document.getElementById("myBtn");
button.addEventListener("click", function (event) {
alert("Hi!");
});
or
var button = document.getElementById("myBtn");
var sayHi = function (event) {
alert("Hi!");
};
button.addEventListener("click", sayHi);
Download the class 4 sample files
use console.log to print a message when the change event fires on one of the fields.
Elements like links, checkboxes and forms have default behaviors determined by the browser. However, the event
object has a built-in method to prevent the default behavior
Our anchor link in HTML
GDI
Code to prevent going to link's href on click
var link = document.getElementById("myLink");
link.addEventListener("click", function(event) {
event.preventDefault();
});
Photo credit: Alan Berning cc
The event's currentTarget
references the element the event listener was attached to.
Our button in HTML:
<button id="myBtn">Click Me!
This code adds styles and text to our clicked button
myButton = document.getElementById("myBtn");
myButton.addEventListener("click", function(event) {
btn = event.currentTarget;
btn.style.backgroundColor = 'red';
btn.innerHTML = 'Clicked!';
};
You may also see code that references the keyword this
as the "target".
Write code that targets this link:
Girl Develop It
When a user clicks the link, print the value of the href attribute instead of going to the Girl Develop It homepage.
Bonus Use the window.open method to open the href in a new browser window/tab.
Photo credit: Rym DeCoster cc
You can collect information from users to use in your code. The most common method is an HTML form
<form id="userForm">
First Name:
<input type="text" id="firstName"/>
<input type="radio" name="married" value="Yes" checked /> Yes
<input type="radio" name="married" value="No" /> No
<input type="submit" id="submitBtn" value="Submit" />
</form>
You retrieve the values of form elements using the value
method.
var name = document.getElementById('firstName').value;
console.log(name);
You can retrieve the value of a form at any time. Even when an event like blur
is triggered (when a form element loses focus).
Radio buttons usually do not have IDs, so you will need to use a for
loop to get the value on each radio:
var radios = document.getElementsByName('married');
var length = radios.length;
for (var i = 0; i < length; i++) {
if (radios[i].checked) {
var radioButtonValue = radios[i].value;
// only one radio can be checked, so stop now
break;
}
}
If you want to handle the submission of a form yourself instead of sending the data to the server, you will want to prevent the default behavior.
var myForm = document.getElementById('myForm');
var firstName = document.getElementById('firstName');
myForm.addEventListener("submit", function(event) {
event.preventDefault();
console.log(firstName.value);
});
jQuery is a utility library written in javascript which makes common tasks more convenient.
var $form = jQuery('.my-form');
$form.on('submit', function() {
console.log('Form submitted!');
});
jQuery('#content').append('Another paragraph!
');
jQuery('.header').toggleClass('my-new-class');
$('#slideshow').carousel({
autoPlay: true
});
Lets build a tip calculator! Start with these files


The Lion is involved.
Word has it that an unprotected target is preferred to ensure the likelihood of success.
The Lion doesn't operate in Chiland.
The Lion attacks in daylight.
All of the members of the Azur group are now in custody.
Security forces are providing highly visible, around the clock protection to all visiting dignitaries in the region.
The Lion is planning something in April on the anniversary of his father's death.
The Brown group is recruiting locals - intentions unknown.
The Purple or Gold group may be involved.
There is a lot of activity involving the Violet group.
Members of the Purple group have been visiting Omegaland.
The Azur group has a history of attacking embassies.
The attackers are focusing on a high visibility target.
A new train station is being built in the capital of country Tauland.
Tauland's embassy in Upsilonland has a flat roof.
Until recently most of the dignitaries in Tauland rode in Mercedes.
Dignitaries in Chiland have motorcycle escorts.
No traces of members from the Coral group have been found in Omegaland.
The Violet group is planning something big on the 5th.
The Lion will not risk working with locals.
Tauland, Upsilonland, Chiland, Psiland, and Omegaland are providing visible, around the clock protection to their own dignitaries at home.
Countries Chiland, Psiland, and Omegaland are taking steps to protect their embassies abroad.
The target is a coalition member embassy, visiting dignitary, or financial institution (Tauland, Upsilonland, Chiland, Psiland, or Omegaland).
The Jackal has been seen in Tauland.
Only the Coral and Violet groups have a capacity to hit protected targets.
Reports from Tauland, Chiland, and Psiland indicate surveillance ongoing at coalition embassies.
Upsilonland is mountainous.
Tauland is land locked.
The Azur and Brown groups prefer to attack at night.
The Coral group prefers to attack at night.
The Azur group does not attack on its holy days.
The Azur and Violet groups use only their own operatives, never employing locals.
Members of the Violet and Chartreuse groups were active in planning protests at a recent financial summit.
The Coral and Violet group operatives have entered Psiland.
The Violet and Chartreuse groups want to attack the interests of Chiland, Psiland, and Omegaland.
The Violet group prefers to operate in daylight.
The Azur, Brown, and Coral groups want to attack the interests of Tauland, Upsilonland, or Chiland.
The Lion was born in Tauland.
There is no new information about Brown group operations in Chiland.
The Tauland embassy in Upsilonland is hosting an international conference on the 10th.
The Coral, Chartreuse, and Purple groups are capable of attacking year round.
The Lion was born in June.
The Purple group prefers to attack in daylight.
The Brown group needs time to regroup.
The Chartreuse group is not involved.
Caches of explosives have recently been found in Upsilonland, Chiland, and Psiland.
Financial institutions in Tauland, Chiland, and Omegaland were recently attacked there is evidence of more attacks.
Bloggers are discussing the role of financial institutions in oppressing the Coral, Violet, and Chartreuse groups.
Chiland is in the process of deploying troops to protect the embassies of coalition partners.
There has been an increase in messages intercepted in Psiland.
Attacking buildings when there are many people present increases casualties.
The Lion is known to work only with the Azur, Brown, or Violet groups.
All high value targets belonging to Tauland and Upsilonland are well protected.
All high value targets of Omegaland are well protected.
The attack will be at 11:00 AM.
Reports from the Coral group indicate a reorganization.
The Chartreuse group has close ties with local media.
The Purple and Gold groups have blood ties.
The Brown group has been known to use IED's.
Dignitaries in Upsilonland employ private guards.
Upsilonland's embassy in Tauland has two helicopter pads.
Locals in Tauland, Upsilonland, and Omegaland are being recruited.
The Brown group members have entered Tauland and Upsilonland.
The Chartreuse, Purple, and Gold groups are known to attack at any time of the day.
The Azur, Brown, Coral, Violet, or Chartreuse groups may be planning an attack.
Reports that uniforms were stolen in Tauland, Upsilonland, and Psiland.
The Azur, Brown, Coral, and Violet groups have the capacity to operate in Tauland, Upsilonland, Chiland, Psiland, and Omegaland.
There are fewer attacks in the dead of winter (January thru March).


We aggregate content!
- engage revolutionary methodologies
- e-enable scalable infomediaries
- redefine B2C platforms
- innovate one-to-one mindshare
- whiteboard end-to-end vortals
- extend frictionless ROI
- unleash back-end vortals
- integrate revolutionary metrics
- empower revolutionary e-markets
- engineer world-class niches
- exploit global platforms
- syndicate B2C e-tailers
- facilitate innovative web-readiness
- engineer visionary models


2019 American Music Awards: Taylor Swift – Artist Of The Decade Award To Billie Eilish – New Artist Of The Year, Winners’ List REVEALED
The big night was hosted by Ciara and had a few memorable speeches by Taylor Swift and Billie Eilish. Swift, who was nominated in five categories, broke the record for most AMA wins of all time
by Koimoi.com Team2019 American Music Awards were one hell of a night. From Taylor Swift winning Artist Of The Year to Shawn Mendes and Camila Cabello winning Best collaboration Of The Year award. The night was one star studded affair attended by Halsey, Lizzo, Billie Eilish and Lil Nas X.
The big night was hosted by Ciara and had a few memorable speeches by Taylor Swift and Billie Eilish. Swift, who was nominated in five categories, broke the record for most AMA wins of all time; she’s already won 23 AMAs throughout her career and tonight’s win has made history. She has crossed Michael Jackson’s record too.
Here is the list of all the American Music Awards Winners 2019:
ARTIST OF THE YEAR
Drake
Ariana Grande
Halsey
Post Malone
**WINNER: Taylor Swift
NEW ARTIST OF THE YEAR
Luke Combs
**WINNER: Billie Eilish
Lil Nas X
Lizzo
Ella Mai
COLLABORATION OF THE YEAR
Lady Gaga & Bradley Cooper, “Shallow”
Lil Nas X ft. Billy Ray Cyrus, “Old Town Road”
Marshmello & Bastille, “Happier”
**WINNER: Shawn Mendes & Camila Cabello, “Señorita”
Post Malone & Swae Lee, “Sunflower (Spider-Man: Into the Spider-Verse)”
TOUR OF THE YEAR
**WINNER: BTS
Ariana Grande
Elton John
P!nk
Ed Sheeran
FAVORITE MUSIC VIDEO
Billie Eilish, “bad guy”
Ariana Grande, “7 rings”
Halsey, “Without Me”
Lil Nas X ft. Billy Ray Cyrus, “Old Town Road”
**WINNER: Taylor Swift, “You Need to Calm Down”
FAVORITE SOCIAL ARTIST
**WINNER: BTS
Billie Eilish
EXO
Ariana Grande
Shawn Mendes
FAVORITE MALE ARTIST – POP/ROCK
Drake
**WINNER: Khalid
Post Malone
FAVORITE FEMALE ARTIST – POP/ROCK
Billie Eilish
Ariana Grande
**WINNER: Taylor Swift
FAVORITE DUO OR GROUP – POP/ROCK
**WINNER: BTS
Jonas Brothers
Panic! At The Disco
FAVORITE ALBUM – POP/ROCK
Billie Eilish, When We All Fall Asleep, Where Do We Go?
Ariana Grande, thank u, next
WINNER: Taylor Swift, Lover
FAVORITE SONG – POP/ROCK
**WINNER: Halsey, “Without Me”
Jonas Brothers, “Sucker”
Lil Nas X ft. Billy Ray Cyrus, “Old Town Road”
Panic! At The Disco, “High Hopes”
Post Malone & Swae Lee, “Sunflower (Spider-Man: Into the Spider-Verse)”
FAVORITE MALE ARTIST – COUNTRY
**WINNER: Kane Brown
Luke Combs
Thomas Rhett
FAVORITE FEMALE ARTIST – COUNTRY
Kelsea Ballerini
Maren Morris
**WINNER: Carrie Underwood
FAVORITE DUO or GROUP – COUNTRY
**WINNER: Dan + Shay
Florida Georgia Line
Old Dominion
FAVORITE ALBUM – COUNTRY
Kane Brown, Experiment
Dan + Shay, Dan + Shay
**WINNER: Carrie Underwood, Cry Pretty
FAVORITE SONG – COUNTRY
Luke Combs, “Beautiful Crazy”
**WINNER: Dan + Shay, “Speechless”
Blake Shelton, “God’s Country”
FAVORITE ARTIST – RAP/HIP-HOP
**WINNER: Cardi B
Drake
Post Malone
FAVORITE ALBUM – RAP/HIP-HOP
Meek Mill, Championships
**WINNER: Post Malone, Hollywood’s Bleeding
Travis Scott, Astroworld
FAVORITE SONG – RAP/HIP-HOP
**WINNER: Lil Nas X ft. Billy Ray Cyrus, “Old Town Road”
Post Malone, “Wow.”
Travis Scott, “SICKO MODE”
FAVORITE MALE ARTIST – SOUL/R&B
Chris Brown
Khalid
**WINNER: Bruno Mars
FAVORITE FEMALE ARTIST – SOUL/R&B
**WINNER: Beyoncé
Lizzo
Ella Mai
FAVORITE ALBUM – SOUL/R&B
Chris Brown, Indigo
**WINNER: Khalid, Free Spirit
Ella Mai, Ella Mai
FAVORITE SONG – SOUL/R&B
**WINNER: Khalid, “Talk”
Lizzo, “Juice”
Ella Mai, “Trip”
FAVORITE ARTIST – ALTERNATIVE ROCK
*WINNER*: Billie Eilish
Imagine Dragons
Panic! At The Disco
FAVORITE ARTIST – ADULT CONTEMPORARY
Maroon 5
P!nk
**WINNER: Taylor Swift
FAVORITE ARTIST – LATIN
Bad Bunny
**WINNER: J Balvin
Ozuna
FAVORITE ARTIST – CONTEMPORARY INSPIRATIONAL
**WINNER: Lauren Daigle
for KING & COUNTRY
MercyMe
FAVORITE ARTIST – ELECTRONIC DANCE MUSIC (EDM)
Avicii
**WINNER: Marshmello
The Chainsmokers
FAVORITE SOUNDTRACK
A Star is Born by Lady Gaga & Bradley Cooper
**WINNER: Bohemian Rhapsody by Queen
Spider-Man: Into the Spider-Verse


Library: Algorithms
Function
Algorithm that moves all occurrences of elements that satisfy the given predicate from a range to the end of the range, and returns an iterator pointing to the first moved occurrence
#include <algorithm> namespace std { template <class ForwardIterator, class Predicate> ForwardIterator remove_if(ForwardIterator start, ForwardIterator finish, Predicate pred); }
The remove_if() algorithm eliminates all the elements referred to by iterator i in the range [start, finish) for which the following corresponding condition holds: pred(*i) == true. The remove_copy_if() algorithm returns an iterator that points to the end of the resulting range. The remove_copy_if() algorithm is stable, which means that the relative order of the elements that are not removed is the same as their relative order in the original range.
The remove_copy_if() algorithm does not actually reduce the size of the sequence. It 1) copies the values that are to be retained to the front of the sequence, and 2) returns an iterator that describes where the sequence of retained values ends. Elements that follow this iterator are simply the original sequence values, left unchanged. Here's a simple example:
Say we want to remove all even numbers from the following sequence:
123456789
Applying the remove_if() algorithm results in the following sequence:
13579|XXXX
The vertical bar represents the position of the iterator returned by remove_if(). Note that the elements to the left of the vertical bar are the original sequence with the even numbers removed. The elements to the right of the bar are simply the untouched original members of the original sequence.
If you want to actually delete items from a container, use the following technique:
container.erase(remove(start,finish,value),container.end());
Exactly finish - start applications of the corresponding predicate are done.
// // remove.cpp // #include <algorithm> // for copy, remove, remove_copy, remove_if #include <functional> // for unary_function #include <iostream> // for cout, endl #include <iterator> // for ostream_iterator #include <vector> // for vector template<class Arg> struct not_zero: public std::unary_function<Arg, bool> { bool operator() (const Arg &a) const { return a != 0; } }; int main () { // For convenience. typedef std::vector<int, std::allocator<int> > Vector; typedef std::ostream_iterator<int, char, std::char_traits<char> > Iter; // Populate a vector with elements from an array. const Vector::value_type arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; Vector v (arr + 0, arr + sizeof arr / sizeof *arr); // Write out the contents to cout. std::copy (v.begin (), v.end (), Iter (std::cout," ")); std::cout << std::endl << std::endl; // Move the 7 to the end of the vector. Vector::iterator result = std::remove (v.begin (), v.end (), 7); // Delete the 7 from the vector. v.erase (result, v.end ()); std::copy (v.begin (), v.end (), Iter (std::cout, " ")); std::cout << std::endl << std::endl; // Remove all non-zero elements beyond the fourth element. v.erase (std::remove_if (v.begin () + 4, v.end (), not_zero<int> ()), v.end ()); std::copy (v.begin (), v.end (), Iter (std::cout, " ")); std::cout << std::endl << std::endl; // Now remove all 3s on output. std::remove_copy (v.begin (), v.end (), Iter (std::cout, " "), 3); std::cout << std::endl << std::endl; // Now remove everything satisfying predicate on output. std::remove_copy_if (v.begin (), v.end (), Iter (std::cout, " "), not_zero<int>()); // Return 0 on success, a non-zero value on failure return !!v.empty (); } Program Output:
1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 8 9 10 1 2 3 4 1 2 4
remove(), remove_copy(), remove_copy_if()
ISO/IEC 14882:1998 -- International Standard for Information Systems -- Programming Language C++, Section 25.2.7


Tortellini
Ingredients
- Tortellini
- 1-2 eggs
- Cooking cream
- Cheese (optional)
Directions
- Buy tortellini (prefer meat or spinach).
- Bring water to a boil.
- Add salt to water only after boiling.
- Add tortellini in.
- Cook for 3 minutes.
- Drain water from the pot while keeping tortellini in.
- Add cooking cream and mix at medium heat until reduced a bit so it’s more creamy.
- Turn off the heat and add 1 or 2 eggs.
- Mix in and let eggs cook using heat from the pot and tortellini.
- Serve on a plate. Add pepper, more salt if needed, and optionally, shredded cheese on top for extra creaminess.
Contribution
Recipe tags:
italian
pasta
quick
cheesefare


National Statistics
Outcome measures at national and local authority (LA) level in England for children continuously looked after for at least 12 months.
PDF , 1.18MB , 25 pages
MS Excel Spreadsheet , 286KB
MS Excel Spreadsheet , 1.62MB
PDF , 500KB , 9 pages
ZIP , 9KB
MS Word Document , 24KB
This statistical first release (SFR) provides information at national and local authority ( LA ) level on the outcomes for children who have been looked after continuously for at least 12 months at 31 March 2013. This is the fourth year that this annual release has been published.
Outcomes reported include educational attainment, special educational needs ( SEN ), exclusions from school, health including emotional and behavioural health, offending and substance misuse.
Looked-after children have poorer educational outcomes than non-looked-after children. A high proportion (67.8%), have special educational needs and their emotional and behavioural health is often a cause for concern. However, despite poor outcomes, there have been improvements for nearly all of the measures in this statistical release.
The percentage of looked-after children achieving 5 or more A* to C GCSEs or equivalent including English and mathematics has increased from 11.0% in 2009 to 15.3% in 2013.
The attainment gaps between looked-after and non-looked-after children for the main key stage 1, 2 and 4 measures have decreased or remained the same from 2012 to 2013. However the gaps are still large, especially for key stage 4, where 15.3% of looked after children achieved 5 or more A* to C GCSEs or equivalent including English and mathematics compared with 58.0% of non-looked-after children. Although this gap has narrowed in recent years to 42.7 percentage points, it is still higher than it was in 2009.
During the year ending 31 March 2013, 6.2% of looked-after children aged 10 to 17 had been convicted or subject to a final warning or reprimand and 3.5% of all looked-after children had a substance misuse problem.
Looked-after children are twice as likely to be permanently excluded from school and nearly three times more likely to have a fixed term exclusion than all children. Around half of all looked after children aged 5 to 16 were considered to be ‘borderline’ or ‘cause for concern’ in relation to their emotional and behavioural health.
Additional analysis of absence rates for children looked after continuously for at least 12 months was published on 2 April 2014. Authorised, unauthorised, overall and persistent absence have been presented in national table 12 and local authority table LA10 from 2009 to 2013. Comparisons to all children are also included.
Queries should be directed to:
Lucy Blyth
Email<EMAIL_ADDRESS>Telephone: 0207 340 7322
Published: 11 December 2013
Updated: 2 April 2014
From: Department for Education
Part of: Statistics: looked-after children