CompartmentalSystems.start_distributions¶
Module for computing age distributions or moments thereof to be used as start distributions in subsequent simulations.
The age distribution at the start \(t_0\) is NOT defined by the reservoir model and the initial values. In fact EVERY age distribution can be chosen. The implemented algorithms will correctly project it to any time \(t\). This module provides several ways to generate such a distribution.
The functions containing the word ‘distributions’ usually return a vector valued function of age representing pool wise age distributions that are NOT normalized (Integrating of a vector component over all ages yields the mass of the corresponding pool.) , and in some cases a start vector that should be used in the subsequent simulation for which the start age distribution is computed.
The functions containing the word ‘moments’ usually return an array: moments x pools, containing the moments of the pool ages . representing the initial values needed for the moment systems e.g. the mean of a start distribution to be used as initial value for the mean age system. The length of the list is determined by the maximum order of the moment system to be solved. In some cases a consistent start vector is also provided.
Zero start age distributions¶
The distributions eaisiest to imagine are those that start with zero age:
The one with all pools empty provided by: :py:meth:`start_age_distributions_from_zero_initial_content and the respective moments by: :py:meth:`start_age_moments_from_zero_initial_content
The one where all initial mass has age zero, provided by: :py:meth:`start_age_distributions_from_zero_age_initial_content
Established distributions¶
However for many applications one is interested in the CHANGE of an age distribution that has been established over a (possibly infinitely) long period of time.
Spinup
If we start the computation with all pools empty at time \(0\) and run it till time \(t = a_{max}\), the resulting distribution will be non zero only in the interval \([0,a_{max}]\). Such a distribution is provided by:
start_age_distributions_from_empty_spinup()
and the moments by: :py:meth:`start_age_moments_from_empty_spinupNote that the finiteness of the spin up time has to be considered in the choice of questions that can be asked. For instance do not mistake the fact that the percentage of material older than \(a_{max}\) will increase over time for a property of the system, where it is actually a property of the start distribution resulting from the finiteness of the spin up time.
Distributions induced by steady states of the autonomous system, if those exist.
If the term ‘established’ is taken to the limit of infinity one can look for a related system that has persisted unchanged for all times \(t<t_0\) and start with the age distribution created by such a system. Such a distribution can only occur if the system has been in a steady state. For a general non-autonomous system this is very unlikely that such a steady state exist at all. However we can consider a related autonomous system resulting from ‘freezing’ the general non-autonomous system at a time \(t_0\). Even for such an autonomous system it is uncertain if and where equilibria exist. This has to be checked before an equilibrium age distribution can be computed. Actually the following steps have to be performed:
Transform the general nonlinear non-autonomous system into a nonlinear autonomous system by freezing it at time \(t=t_0\):
Compute \(u_0(x)=u(t_0,x_0)\) and \(B_0(x)=B(t_0,x_0)\)
Look for an equilibrium \(x_{fix}\) of the frozen system such that \(0=B_0(x_{fix})+u_0(x_{fix})\). If the frozen system is linear the we can compute the fixed point explicitly : \(x_{fix}=B_0^{-1}u_0\). In general the frozen system will be nonlinear and we will have to look for the fixed point numerically.
Compute the age distribution of the system at equilibrium \(x_{fix}\). This can be done using the formulas for linear autonomous pool models. (At the fixed point the nonlinear system is identical to a linear one. This is a special case of the general idea of linearizing a nonlinear model with respect to a trajectory, which in case of a fixed point is constant.)
All these steps are performed by
start_age_distributions_from_steady_state()
andstart_age_moments_from_steady_state()
.Note that \(x_{fix}\) is the compatible start vector that has to be used along with this start distributions for the following computation.
Functions
|
|
|
If a fixedpoint of the frozen system can be found, create a linear autonomous model as an equivalent for the frozen (generally nonlinear) system there. |
Finite age spin up from empty pools |
|
Compute the age distribution of the system at equilibrium \(x_{fix}\) , by means of a linear autonomous pool model with identical age distributions. |
|
|
Returns the age distribution (function) for a system into which all initial mass is injected instantaneous at \(t=0\). |
Returns the age distribution (function) for an empty system. |
|
|
Compute the age moments of the system at equilibrium \(x_{fix}\) , by means of a linear autonomous pool model with identical age distributions. |
The function returns an array of shape (max_order, srm.nr_pools) |


--- layout: post title: Episode 075 | Pavneet Singh Saund - Pushing Boundaries link: http://traffic.libsyn.com/developeronfire/DeveloperOnFire-75-PavneetSinghSaund.mp3 length: 36700160 speaker: Dave Rael duration: '38:44' subtitle: 'Developer On Fire: Pavneet Singh Saund' guest_name: Pavneet Singh Saund image: /assets/images/PavneetSinghSaund.jpg guest_blog: http://pavsaund.com/ guest_twitter: pavsaund disqus_url: http://developeronfire.com/Podcast/Episodes/pavneet-singh-saund-pushing-boundaries episode_number: 75 book_recommendations: - { url: "http://www.amazon.com/dp/020161622X/?tag=devonfir-20", title: "The Pragmatic Programmer: From Journeyman to Master", author: "Andrew Hunt and David Thomas"} - { url: "http://www.amazon.com/dp/1892005034/?tag=devonfir-20", title: "Nonviolent Communication: A Language of Life", author: "Marshall B. Rosenberg"} tags: - { url: "http://www.amazon.com/dp/020161622X/?tag=devonfir-20", title: "The Pragmatic Programmer: From Journeyman to Master", author: "Andrew Hunt and David Thomas"} - { url: "http://www.amazon.com/dp/1892005034/?tag=devonfir-20", title: "Nonviolent Communication: A Language of Life", author: "Marshall B. Rosenberg"} redirect_from: - "/75/" - "/075/" - "/0075/" - "/pavneet-singh-saund-pushing-boundaries/" - "/Pavneet-Singh-Saund/" - "/PavneetSinghSaund/" - "/Podcast/Episodes/75/" - "/Podcast/Episodes/075/" - "/Podcast/Episodes/0075/" - "/Podcast/Episodes/pavneet-singh-saund-pushing-boundaries/" - "/Podcast/Episodes/Pavneet-Singh-Saund/" - "/Podcast/Episodes/PavneetSinghSaund/" guid: http://developeronfire.com:80/Podcast/Episodes/pavneet-singh-saund-pushing-boundaries ---
Pavneet is a web developer and team lead, currently working for Scandinavia's largest e-commerce player, Komplett Group. He has a passion for creating solutions that make users' lives easier. Pavneet has worked across the .NET stack and has found an ever-growing love for JavaScript in the front-end, but still has a tendency to cascade himself into trouble. Pavneet is involved in the local community as founder of Slack community Vestfold Developers and chapter lead for Norwegian .Net User Group Vestfold. He's also contributer to open-sourced projects Forseti (Javascript test runner) and Bifrost (Line of Business application framework based on CQRS and DDD, and healthy development practices). He fills his spare time family, friends and running.
1. Listen first and then listen more
2. Don't just do something, stand there
3. Enable others succeed


You can search for climate data in ~9000 urls by querying with text or url (AI based semantic search):
e.g. "energy data in US" , "https://en.wikipedia.org/wiki/Climate_of_Dhaka" , "green jobs" ,"regenerative
agriculture in India" , "satellite data Amazon rainforest"


resume
blog
about
portfolio
Dope Sweater
This is a t-shirt I designed for Dope Sweater, a regional touring band from Indianapolis.


OOPSIE WOOPSIE >ω<!! Uwu We made a fucky wucky!! A wittle fucko boingo! The code monkeys at our headquarters are working VEWY HAWD to fix this!


Sporting wonders have come so thick and fast since last summer that we decided it... time
Football 315 3Sporting wonders have come so thick and fast since last summer that we decided it... time
Football 315 3Sporting wonders have come so thick and fast since last summer that we decided it... time
Football 315 3


Tadhg O'Halloran (b. 1986), is an Irish photographer based in Cork, where he studied photography at St. Johns College.
His work tends to be personal documentary-style black-and-white photographs of his friends, hometown and landscapes.
He has had various solo and group exhibitions in both Rome and Cork. He built and is currently running a darkroom in Cork City that is shared with other photographers and artists.
The photos on this website form part of a series of photographs where Tadhg tries to define moments of life as he saw it. They are an attempt of forming the world around into photographs and to offer a glimpse of something that he perceived.
Tadhg's work was published in online photography zine Howl; the artist also took over Instagram Cork Photo in February of this year:
Check out the photography on Howl
Go to Cork Photo's Instagram


menu
Section Computer
Depth [mm]
Flange Width [mm]
Web Thickness [mm]
Flange Thickness [mm]
Root Radius [mm]
Compute


Id: 434
Name: Super Weird Rick
Status: unknown
Species: Human
Type:
Gender: Male
OriginName: unknown
OriginUrl:
LocationName: unknown
LocationUrl:
Image: https://rickandmortyapi.com/api/character/avatar/434.jpeg
Episode: ['https://rickandmortyapi.com/api/episode/10']
Url: https://rickandmortyapi.com/api/character/434
Created: 2018-04-16T22:16:17.789Z


Profile
Interested in understanding how to design software solutions to maximize the value that software development teams can deliver.
Taking high level decisions with attention to system integration and feasibility.
Focusing on code quality and Domain-Driven Design with .NET and Angular.
More than 15 years of enterpise-level experience.
<EMAIL_ADDRESS>Mobile
(+34) 635 919 292
Address
Malaga, Spain
SKILLS
SOFTWARE DEVELOPMENT
- DDD
- SOLID Principles
- Design Patterns
- Microservices
- TDD
- Payment gateways
- Identity Providers
- Multi-factor authentication
- Agile Methodologies
- Scrum
BACK-END
- .NET Framework & Core
- EF 6 & Core
- ASP.NET Web API
- ASP.NET MVC
- C#
- SQL
- Signal R
- Orchard CMS
FRONT-END
- AngularJS & Angular
- TypeScript
- RxJS
- Angular Reactive Forms
- Angular Material design
- Progressive Web Apps
- Angular Flex layout
- Micro frontends
- Webpack
- Grunt
- NPM
- HTML5
- CSS
DEVOPS
- Azure DevOps
- CI/ CD pipelines
- Docker
CLOUD
- Azure Developer
- Alexa Skills Kit (ASK)
- AWS Lambda
OLD STACK & Others
- Android SDK
- Microsoft Silverlight
- ASP.NET Web Forms
- Microsoft WPF
Work Experience
March 2017 - Present
CLC World
Software Engineering Manager / Technical lead
- Built up and led a team using mainly .NET technologies and Angular as our front-end framework
to ...
- Extend our PMS functionality
- Build new Web sites for our clients hosted on Azure
- Implement Third party integrations
- Introduced Azure DevOps …
- Migrating all our repositories to Azure
- Introducing CI / CD pipelines
- Creating a customed Agile template adapted to the existing workflows within the company.
- Identified Technical Debt in both the code-base and infrastructure and getting consensus with higher management to tackle these issues while still delivering features.
- Coordinated team agreements on coding standards, testing, design patterns, etc, on a weekly basis (or sooner if something's controversial came up) to ensure we got a consensus upon standard of code.
- Being the Head of Software Development, I played different roles (Software Development Manager, Technical Lead and Scrum master).
January 2010 - March 2017
CLC WORLD
Technical lead / Senior Software Developer
- Led a team to deliver a modern Digital Sales Aid solution with a Real Time Dashboard for the sales managers and for which I designed an Architecture (taking some concepts of Microservices) with a tech stack based on .NET technologies (.NET framework, ASP.NET Web API, Signal R and Entity Framework 6) and Angular as the front-end solution.
- Collaborated on the development of our Members’ web site using the Orchard, an Open source CMS, built on top of ASP.NET MVC framework. Apart from all the CMS development the web site also had to communicate with our on-premise PMS database, using our API solution built with ASP.NET Web API.
April 2009 - January 2010
CLC WORLD
(London)
Software Developer
- I moved to London and collaborated with other London based IT members on the rollout our Marketing CRM solution.
- During this period I had to travel between the cities of London, Essex and Manchester, to coordinate the rollout, in collaboration with our team based in Spain. I also attended meetings with different stakeholders and product owners to gather new requirements and develop new functionalities together with the rest of the team.
December 2006 - April 2009
CLC WORLD
Software Developer
- Developed together with our software developer team a Marketing CRM based on the business’ needs.
March 2005 - April 2006
CLC WORLD
Tech Support
- During this period apart from giving Technical support across the company, I tried to learn as much as I could, from the System Administrator’ responsibilities.
Education
1999 - 2001
Higher National Diploma
Software Engineering
CENEC (Malaga)
1997 - 1999
High School
Science and Mathematics
I.E.S (Arroyo de la Miel)


There are missing system modules which Open-CRAVAT needs.
Click this button to install them:
System updates in progress...
System configuration file:
Jobs dir: Modules dir: Limit the sum of input file sizes to: MB Maximum number of concurrent jobs: Maximum number of concurrent annotators per job: Allow collection of CRAVAT metrics:


JavaScript is disabled on your browser.
Skip navigation links
Overview
Package
Class
Tree
Deprecated
Index
Help
Prev Letter
Next Letter
Frames
No Frames
All Classes
SEARCH:
JavaScript is disabled on your browser.
A
B
C
D
E
F
G
H
I
K
L
M
N
O
P
R
S
T
U
V
W
X
Y
U
UAction
- Class in
ure.actions
UAction()
- Constructor for class ure.actions.
UAction
UActionEmote
- Class in
ure.actions
UActionEmote(String)
- Constructor for class ure.actions.
UActionEmote
UActionGet
- Class in
ure.actions
UActionGet()
- Constructor for class ure.actions.
UActionGet
UActionGet(UThing)
- Constructor for class ure.actions.
UActionGet
UActionWalk
- Class in
ure.actions
UActionWalk(int, int)
- Constructor for class ure.actions.
UActionWalk
UActor
- Class in
ure.actors
UActor()
- Constructor for class ure.actors.
UActor
UActorCzar
- Class in
ure.actors
UActorCzar()
- Constructor for class ure.actors.
UActorCzar
UActorCzar.ActorDeserializer
- Class in
ure.actors
UAnimator
- Interface in
ure
UArea
- Class in
ure.areas
Created by gilmore on 6/18/2018.
UArea(int, int, UTerrainCzar, String)
- Constructor for class ure.areas.
UArea
UArea(String, UTerrainCzar)
- Constructor for class ure.areas.
UArea
UArea.Listener
- Interface in
ure.areas
UBehavior
- Class in
ure.behaviors
UBehavior()
- Constructor for class ure.behaviors.
UBehavior
UBehaviorWander
- Class in
ure.behaviors
UBehaviorWander()
- Constructor for class ure.behaviors.
UBehaviorWander
UCamera
- Class in
ure.ui
A view pane into a UREArea
UCamera(URenderer, int, int, int, int)
- Constructor for class ure.ui.
UCamera
UCartographer
- Class in
ure.areas
UCartographer(UTerrainCzar, UThingCzar, UActorCzar)
- Constructor for class ure.areas.
UCartographer
UCell
- Class in
ure.areas
Created by gilmore on 6/20/2018.
UCell(UArea, int, int, UTerrain)
- Constructor for class ure.areas.
UCell
UCollection
- Class in
ure
Created by gilmore on 6/20/2018.
UCollection(UContainer)
- Constructor for class ure.
UCollection
UColor
- Class in
ure.math
UColor(float, float, float)
- Constructor for class ure.math.
UColor
UColor(int, int, int)
- Constructor for class ure.math.
UColor
UColor(UColor)
- Constructor for class ure.math.
UColor
UCommander
- Class in
ure
Receive input and dispatch game commands or UI controls.
UCommander(UActor, URenderer, UThingCzar, UActorCzar, UCartographer)
- Constructor for class ure.
UCommander
UContainer
- Interface in
ure
ULandscaper
- Class in
ure.areas
ULandscaper(UTerrainCzar, UThingCzar)
- Constructor for class ure.areas.
ULandscaper
ULight
- Class in
ure.ui
An instance of a light source somewhere in an area Not a thing, but a thing can create one
ULight(int[], int, int)
- Constructor for class ure.ui.
ULight
ULight(UColor, int, int)
- Constructor for class ure.ui.
ULight
ULightcell
- Class in
ure.ui
Created by gilmore on 6/20/2018.
ULightcell(UCamera)
- Constructor for class ure.ui.
ULightcell
UModal
- Class in
ure.ui
UModal(int, int, URenderer, UCamera, UColor)
- Constructor for class ure.ui.
UModal
UNPC
- Class in
ure.actors
UNPC()
- Constructor for class ure.actors.
UNPC
unRegisterActor(UActor)
- Method in class ure.
UCommander
unRegisterTimeListener(UTimeListener)
- Method in class ure.
UCommander
UParticle
- Class in
ure.ui
UParticle(UArea, int, int, int)
- Constructor for class ure.ui.
UParticle
UPath
- Class in
ure.math
UPath()
- Constructor for class ure.math.
UPath
UPlayer
- Class in
ure.actors
UPlayer(String, char, UColor, boolean, UColor, int, int)
- Constructor for class ure.actors.
UPlayer
ure
- package ure
ure.actions
- package ure.actions
ure.actors
- package ure.actors
ure.areas
- package ure.areas
ure.behaviors
- package ure.behaviors
ure.examplegame
- package ure.examplegame
ure.math
- package ure.math
ure.render
- package ure.render
ure.terrain
- package ure.terrain
ure.things
- package ure.things
ure.ui
- package ure.ui
URenderer
- Interface in
ure.render
URenderer.KeyListener
- Interface in
ure.render
URendererOGL
- Class in
ure.render
URendererOGL()
- Constructor for class ure.render.
URendererOGL
UREStatusPanel
- Class in
ure.ui
UREStatusPanel(int, int, int, int, int, int, UColor, UColor, UColor)
- Constructor for class ure.ui.
UREStatusPanel
UScrollPanel
- Class in
ure.ui
UScrollPanel(int, int, int, int, int, int, UColor, UColor, UColor)
- Constructor for class ure.ui.
UScrollPanel
useTerrain(UTerrain)
- Method in class ure.areas.
UCell
USimplexNoise
- Class in
ure.math
USimplexNoise()
- Constructor for class ure.math.
USimplexNoise
USimplexNoise(long)
- Constructor for class ure.math.
USimplexNoise
USimplexNoise(short[])
- Constructor for class ure.math.
USimplexNoise
UTerrain
- Interface in
ure.terrain
UTerrain defines all the public methods of terrain.
UTerrainCzar
- Class in
ure.terrain
Load and manage all the terrain types and dole them out as needed.
UTerrainCzar(Class<TerrainDeco>)
- Constructor for class ure.terrain.
UTerrainCzar
UTerrainCzar.TerrainDeserializer
- Class in
ure.terrain
UThing
- Interface in
ure.things
UThingCzar
- Class in
ure.things
UThingCzar()
- Constructor for class ure.things.
UThingCzar
UThingCzar.ThingDeserializer
- Class in
ure.things
UTimeListener
- Interface in
ure
A
B
C
D
E
F
G
H
I
K
L
M
N
O
P
R
S
T
U
V
W
X
Y
Skip navigation links
Overview
Package
Class
Tree
Deprecated
Index
Help
Prev Letter
Next Letter
Frames
No Frames
All Classes
JavaScript is disabled on your browser.


Go to the source code of this file.
◆ CHP_CalculateValueOfCoin()
| void CHP_CalculateValueOfCoin |
( |
sim_t * |
pSim, |
|
|
int |
|
|
) |
| |
Function calculates the right values regrading money
Definition at line 75 of file CoinHandelingProcedure.c.
81 swprintf(buffer,
BUFFSIZE, L
"Adding \u20AC%.2f to internal account", (
double)money / 100);
82 WTDB_Debug(L
"CHP_CalculateValueOfCoin", buffer);
89 WTDB_Debug(L
"CHP_CalculateValueOfCoin", L
"Invalid money registered");
90 WTDB_Display(L
"The object you inserted isn't a valid valuta\r\n---\r\n404 Not Found");
◆ CHP_CheckCoins()
| void CHP_CheckCoins |
( |
sim_t * |
pSim, |
|
|
int |
|
|
) |
| |
This function Writes the right values for each money related screen buffer
Definition at line 52 of file CoinHandelingProcedure.c.
54 wchar_t bufferEdited[
BUFFSIZE] = { 0 };
60 WTDB_Debug(L
"CHP_CheckCoins", L
"Screenbuffer is changed");
62 swprintf(bufferEdited, 128, L
"Inserted \u20AC%.2f currently in th machine is \u20AC%.2f", (
double)money / 100, (
double)pSim->
moneyInMachine / 100);
68 WTDB_Debug(L
"CHP_CheckCoins", L
"No money left in wallet");
69 WTDB_Display(L
"The object you inserted isn't a valid valuta\r\n---\r\n404 Not Found");
◆ CHP_CheckIfEnough()
| void CHP_CheckIfEnough |
( |
sim_t * |
pSim, |
|
|
int |
, |
|
|
HWND |
|
|
) |
| |
This function Checks if there is enough money to by a drink
Definition at line 5 of file CoinHandelingProcedure.c.
8 wchar_t bufferEdited[
BUFFSIZE] = { 0 };
17 WTDB_Debug(L
"CHP_CheckIfEnough", L
"Was sufficent amount pay for drink");
24 WTDB_Debug(L
"CHP_CheckIfEnough", L
"Drink dispensed");
25 wsprintf(bufferEdited, L
"Enjoy you %s", drinks.
drinkName);
31 WTDB_Debug(L
"CHP_CheckIfEnough", L
"Wasn't sufficent amount pay for drink");
38 WTDB_Debug(L
"CHP_CheckIfEnough", L
"Debit transaction came through");
39 WTDB_Debug(L
"CHP_CheckIfEnough", L
"Payment complete");
44 WTDB_Debug(L
"CHP_CheckIfEnough", L
"Drink dispensed");
45 wsprintf(bufferEdited, L
"Enjoy you %s", drinks.
drinkName);


SpaceX's Starship prototype blows its top during Texas test
by Paul BrinkmannAn early prototype of SpaceX's Starship rocket blew its top during a test Wednesday at the company's construction yard in Boca Chica, Texas.
Images captured by two independent videographers from outside the plant - LabPadre and SPadre on YouTube - showed the top of the rocket flying into the air as a cloud of white vapor vented. Vapor and condensation engulfed the plant for several minutes before dissipating.
SpaceX will now move toward flight design for the stainless steel rocket, company founder and CEO Elon Musk said on Twitter soon afterward.
"This had some value as a manufacturing pathfinder, but flight design is quite different," Musk tweeted.
A company statement said there were no injuries, and said the mishap wasn't a serious setback.
"The purpose of the test was to pressurize systems to the max, so the outcome was not completely unexpected," the statement said. "The decision had already been made to not fly this test article."
At the end of September, Musk hosted an event in front of the same rocket, saying he planned to see it in a test flight.
"This thing is going to take off, fly to 65,000 feet, about 20 kilometers, and come back and land, in about one or two months," he said at the time.
Musk said he hoped to reach Earth orbit with a Starship prototype in about six months, with human passengers by next year. The company has plans to go to the moon and Mars, and to use Starship for planetary commercial flights.
SpaceX is building a second Starship at an industrial park in Cocoa, Fla.
Source: United Press International


Ott vagy még:
Description:
You need to fill this field.
Please enter a palindrome:
This value is required.
Please enter a multiple of 3:
This value is required.
Please provide a file smaller than 42Kb:
This value is required.


The url-parse
method exposes two different API interfaces. The
url
interface that you know from Node.js
and the new URL
interface that is available in the latest browsers.
Since 0.1
we’ve moved away from using the DOM’s element for URL parsing
and moving to a full Regular Expression solution. The main reason for this
change is to make the URL parser available in different JavaScript environments
as you don’t always have access to the DOM like
Worker
environments. This
module still have a really small foot print as this module’s main intention is
to be bundled with client-side code. The only problem however with a RegExp
based solution is that it required a lot of lookups causing major problems in
FireFox. So the last and the current solution was a pure string parsing
solution which chops up the URL in smaller pieces.
In addition to URL parsing we also expose the bundled querystringify
module.
This module is designed to be used using either browserify or node.js it’s released in the public npm registry and can be installed using:
npm install url-parse
All examples assume that this library is bootstrapped using:
```js ‘use strict’;
var URL = require(‘url-parse’); ```
To parse an URL simply call the URL
method with the URL that needs to be
transformed in to an object.
js
var url = new URL('https://github.com/foo/bar');
The new
keyword is optional but it will save you an extra function invocation.
In the example above we’ve demonstrated the URL interface, but as said in the
module description we also support the node.js interface. So you could also use
the library in this way:
```js ‘use strict’;
var parse = require(‘url-parse’) , url = parse(‘https://github.com/foo/bar’, true); ```
The returned url
instance contains the following properties:
protocol
: Requested protocol without slashes (e.g. http:
).username
: Username of basic authentication.password
: Password of basic authentication.auth
: Authentication information portion (e.g. username:password
).host
: Host name with port number.hostname
: Host name without port number.port
: Optional port number.pathname
: URL path.query
: Parsed object containing query string, unless parsing is set to false.hash
: The “fragment” portion of the URL including the pound-sign (#
).href
: The full URL.A simple helper function to change parts of the URL and propagating it through
all properties. When you set a new host
you want the same value to be applied
to port
if has a different port number, hostname
so it has a correct name
again and href
so you have a complete URL.
```js var parsed = parse(‘http://google.com/parse-things’);
parsed.set(‘hostname’, ‘yahoo.com’); console.log(parsed.href); // http://yahoo.com/parse-things ```
It’s aware of default ports so you cannot set a port 80 on an URL which has
http
as protocol.
The returned url
object comes with a custom toString
method which will
generate a full URL again when called. The method accepts an extra function
which will stringify the query string for you. If you don’t supply a function we
will use our default method.
js
var location = url.toString(); // http://example.com/whatever/?qs=32
You would rarely need to use this method as the full URL is also available as
href
property. If you are using the URL.set
method to make changes, this
will automatically update.
The testing of this module is done in 3 different ways:
npm test
command.npm run coverage
testling
to startup a test server. We do assume
that you testling
installed globally, if not please run npm install -g
testling
and after that testling -u
in the root of this repository. When
you visit the outputted URL all unit tests that were written from the Node
can now be ran inside browsers.


{% extends "base.html" %} {% block title %}About ANC Finder{% endblock %} {% block body %}
ANC Finder is a project of Code for DC, which is a Code for America Brigade. We’re volunteers interested in using technology and open data to improve our civic lives.
We welcome your feedback and ideas: email us at<EMAIL_ADDRESS>Our goal is to strengthen DC's unique hyper-local level of government called Advisory Neighborhood Commissions (ANCs). This is a work in progress.
Come to our next meeting if you would like to get involved.
You can also help:


Before Change
// Add any potential unconditional model-level loss.
losses += self.get_losses_for(None)
unique_tensors = list(
set(x for x in losses if not isinstance(x, (float, int))))
non_tensors = [x for x in losses if isinstance(x, (float, int))]
return unique_tensors + non_tensors
@property
After Change
losses += self.get_losses_for(None)
unique_tensors = []
unique_tensors_ids = set()
for x in losses:
if not isinstance(x, (float, int)):
if id(x) not in unique_tensors_ids:
unique_tensors.append(x)


Welcome to Songify
Enter name to access your account
Go
Home
Best Of 2017 Songs
Monsoon Magic
Romantic Songs
Sufi Songs
Title
Artist
Album
Duration


Medicare takes the protection
of your health information very seriously.
Help us to protect your information by providing us
with information to
protect your account:
- Secret Questions and Answers
- Your mobile phone number (if you have one)
We will use your secret questions and their answers
to challenge you when
you connect a new Sub-account to BlueButton 2.0.
If you provide a mobile phone number and the
cellphone carrier name you
can choose to have a pin code sent to your cellphone when
you connect to the BlueButton 2.0 service.
Provide your first secret question and the answer to
that question.
Use something that only you, or those you trust, might
know.
For example: What was the name of your first pet?
Provide your second secret question and the answer to
that question.
Use something that only you, or those you trust,
might know.
For example: What was the color of your favorite
car?
Provide your third secret question and the answer to
that question.
Use something that only you, or those you trust, might
know.
For example: Where is your favorite vacation
place?
Question
You don't need a fancy smartphone.
Even the simplest mobile phone can receive a text
message. Tell us your
phone number and the mobile phone company you use and
you can then choose to
have a 4-digit pin code sent to that phone when you
login.


{extend "session"} {* Get latest products *} {$featured_products = "/products"|get:[ is_active => true, limit => 8 ]}


If you are reading this, It's Too Late.
A simple database for healthy living. Brought to you by Vanderbilt Students.
Select A Health Risk Below


About
Research Interest
RTL Design, PD design, Processor designing, Computer architecture, Digital VLSI system, Modulo arithmetic systems, RNS & LNS systems, Low power system, FPGA based digital system design, Analog circuit designs.
Core Compitence
- Thorough knowledge of digital electronics, microprocessors, semiconductor devices, CMOS fundamentals, and advanced analog circuits.
- Hands-on experience on RTL To GDS II flow design using Cadence industrial tools with SCL180nm and GPDK45nm technology.
- Hands on experience on front-end design of digital systems: RTL design using Xilinx ISE and Vivado (VHDL as well as Verilog)
- Worked on methods like corner cases, file I/O for testing for verification of RTL design.
- Designed an energy efficient radix-8 RNS RSIC processor based on residue number system with semicustom flow using GPDK 45 nm during Ph.D. research.
- Comprehensive understanding of floor planning, place & route, timing closure, signal integrity, physical verification, STA, Parameter extraction
- Hands-on Experience in analog design flow: schematic design, simulation, layout, and parasitic extraction on Mentor Graphics design architecture.
Tools and Language Details
- HDL VHDL, Verilog
- Programming: Python (Beginner), TCL, Shell Scripting (Beginner)
- EDA Tools: Cadence, Mentor Graphics, Xilinx, Multisim, LTSpice, MATLAB (basic).
- VLSI Front-end: Xilinx® ISE, Xilinx® Vivado, Cadence (Incisive, Genus Synthesis Solution, Conformal Equivalence Checker, Innovus Implementation System, Tempus)
- VLSI Back-end: Mentor Graphics (Design Architecture and Caliber)
- Open-Source Tools: RISC-V (Yosys, Magic, Electric), Multisim, LT-Spice, Anaconda, I-Verilog, GHDL, GTK- Wave
- Editors: Microsoft Word, LaTex, Vim, Gedit
- Operating System: Windows (7/8/9/10), Linux (Ubuntu, CentOS)
Looking for an opportunity to work in a challenging position combining my skills in Software Engineering, which provides professional development, interesting experiences and personal growth.
Experience
- Developed and managed the backend of an e-commerce platform using Flask, MongoDB, and AWS.
- Worked on three web applications targeting customers, selling vendors, and admin users; built 50+ RESTful APIs with functionalities such as login/sign up, view a product, add a product to cart, checkout the order, etc.
- Tools: Python, Flask, MongoDB
- Increased the speed of the video analytics app by 20% by using a customized YOLOv3 algorithm to perform object detection and DeepSORT algorithm for multi-object tracking.
- Tools: Python, Flask, OpenCV, Keras, Tensorflow, PyTorch
Skills
Languages and Databases
Libraries
Frameworks
Other
Education
Sardar Vallabhbhai National Institute of Technology
Surat
Degree: Ph.D. Electronics
Engineering
(VLSI)
Percentage: 96.7 %
- Distributed Database Systems
- Cloud Computing
- Foundations of Algorithms
Relevant Courseworks:
Sir Padampat Singhania University
Bhatewar, Udaipur, Rajasthan
Degree: M.Tech in Electronics &
Communication
(VLSI and
Embedded)
CGPA: 68.58%
- Data Structures and Algorithms
- Database Management Systems
- Operating Systems
- Machine Learning
- Computer Vision
Relevant Courseworks:
University College of Engineering,
Kota
Degree: B.Tech in Electronics &
Communication
CGPA: 74.52%
- Data Structures and Algorithms
- Database Management Systems
- Operating Systems
- Machine Learning
- Computer Vision
Relevant Courseworks:
Birla Technical Training Institutes
Pilani
Degree: Diploma in Electronics
CGPA: 78.32%
- Data Structures and Algorithms
- Database Management Systems
- Operating Systems
- Machine Learning
- Computer Vision
Relevant Courseworks:


Get MS Knowledge Base Alerts via RSS
Here. "If you haven’t heard of kbAlertz, it’s a website I setup to email me (and other subscribers) when Microsoft publishes new KB articles for their technologies. I’ve finally gotten around to exposing the Kbs as a RSS feed. Basically, pick the technology you want to subscribe to, and I’ll expose the latest 10 Microsoft Knowledge base articles as a RSS feed."


The build-in arrays has a .NET type object[] and can store any values. The element of array may be accessed in a usual way: Array[index].
See Also
Language Description->Variables | Language Description->Expressions
| Script.NET programming language |
| Language Description->Arrays |
The build-in arrays has a .NET type object[] and can store any values. The element of array may be accessed in a usual way: Array[index].
Language Description->Variables | Language Description->Expressions


Decentralized Star Notary Project
Write a smart contract with functions
| Criteria | Meet Specification |
|---|---|
|
Define and implement interface |
Smart contract implements the ERC-721 or ERC721Token interface |
|
Add metadata to the star token |
The star token should have these pieces of metadata added:
|
|
Configure uniqueness with the stars |
Smart contract prevents stars with the same coordinates from being added |
|
Smart contract contains required functions |
Smart contract implements all these functions - createStar(), putStarUpForSale(), buyStar(), checkIfStarExist(), mint(), approve(), safeTransferFrom(), SetApprovalForAll(), getApproved(), isApprovedForAll(), ownerOf(), starsForSale(), tokenIdToStarInfo() Expected response for tokenIdToStarInfo():
|
Test smart contract code coverage
| Criteria | Meet Specification |
|---|---|
|
Properly test all required functions |
Project contains tests for the following functions and all tests are approved without error: createStar(), putStarUpForSale(), buyStar(), checkIfStarExist(), mint(), approve(), safeTransferFrom(), SetApprovalForAll(), getApproved(), isApprovedForAll(), ownerOf(), starsForSale(), tokenIdToStarInfo() |
Deploy smart contract on a public test network (Rinkeby)
| Criteria | Meet Specification |
|---|---|
|
Deploy smart contract on a public test network |
|
|
Project submission includes transaction ID and contract address |
Project submission includes a document (.md, .txt) that includes:
Hint: You can view Transaction ID and Contract ID from a blockchain explorer (e.g. Etherscan). Example Contract ID: https://rinkeby.etherscan.io/address/0xfb0720c0715e68f80c0c0437c9c491abfed9e7ab#code |
Modify client code to interact with a smart contract
| Criteria | Meet Specification |
|---|---|
|
Client code interacts with smart contract |
Front-end is configured to:
|
Tips to make your project standout:
Optional: Configure RESTful API endpoint to return a registered star
NOTE: This section is not required for your project to pass.
- Utilizing your previous coursework expereince in course three, create a new web API using Node.js and a RESTful framework. Include a library that will connect with your smart contract using a web3 instance.
- Configure an endpoint function that will use the web3 instance to communicate with your smart contract and return a star by the star token ID. The endpoint must utilize a GET method with URL path for star token ID.
Route path example:
method: 'GET',
path: '/star/{starTokenId}'
- Endpoint returns a json object
JSON response example:
["Star power 103!", "I love my wonderful star", "ra_032.155", "dec_121.874", "mag_245.978"]


I'm a junior business major and I have my own club!
Join us!
Tons of fun games, chance to network with others and a live band!
I need someone to help me through Math 150B.
To anyone in CPSC 131, if you would like to join my study group email me @ student@csu.fullerton.edu.


Hold Dabur India; target of Rs 484: Prabhudas Lilladher
Prabhudas Lilladher recommended Hold rating on Dabur India with a target price of Rs 484 in its research report dated November 05, 2019.
by Broker ResearchPrabhudas Lilladher's research report on Dabur India
Dabur India has given cautious outlook following 4.8% volume growth in 2Q. Dabur is taking initiatives on new product launches and distribution expansion to drive growth, although no green shoots as visible as of now. We believe that quality of growth has not been good as large categories like Oral care and hair care are under pressure. In addition, Juices as a category is facing structural growth issues. Visibility in IBD remains hazy given growth challenges in middle east, Namaste and Hobi.
Outlook
We estimate 11.1% sales and 14.7% PAT CAGR over FY19-22 and value the stock at 39xSeptFY21 EPS to arrive at target price of Rs484. Retain "Hold".
For all recommendations report, click here
Disclaimer: The views and investment tips expressed by investment experts/broking houses/rating agencies on moneycontrol.com are their own, and not that of the website or its management. Moneycontrol.com advises users to check with certified experts before taking any investment decisions.
Special Thursday Expiry on 10th 7th Nov
Early Closure to The Great Diwali Discount. Last Chance to get Moneycontrol PRO for a year @ Rs. 289/- only
Coupon code: DIWALI


Pizza Pricing
问题描述 :
Pizza has always been a staple on college campuses. After the downturn in the economy, it is more important than ever to get the best deal, namely the lowest cost per square inch. Consider, for example, the following menu for a store selling circular pizzas of varying diameter and price:
One could actually compute the costs per square inch, which would be approximately 10.2￠, 7.6￠, and 7.1￠ respectively, so the 12-inch pizza is the best value. However, if the 10-inch had been sold for $5, it would have been the best value, at approximately 6.4￠ per square inch.
Your task is to analyze a menu and to report the diameter of the pizza that is the best value. Note that no two pizzas on a menu will have the same diameter or the same inherent cost per square inch.
One could actually compute the costs per square inch, which would be approximately 10.2￠, 7.6￠, and 7.1￠ respectively, so the 12-inch pizza is the best value. However, if the 10-inch had been sold for $5, it would have been the best value, at approximately 6.4￠ per square inch.
Your task is to analyze a menu and to report the diameter of the pizza that is the best value. Note that no two pizzas on a menu will have the same diameter or the same inherent cost per square inch.
输入:
The input contains a series of one or more menus. Each menu starts with the number of options N, 1 ≤ N ≤ 10, followed by N lines, each containing two integers respectively designating a pizza’s diameter D (in inches) and price P (in dollars), with 1 ≤ D ≤ 36 and 1 ≤ P ≤ 100. The end of the input will be designated with a line containing the number 0.
输出:
The input contains a series of one or more menus. Each menu starts with the number of options N, 1 ≤ N ≤ 10, followed by N lines, each containing two integers respectively designating a pizza’s diameter D (in inches) and price P (in dollars), with 1 ≤ D ≤ 36 and 1 ≤ P ≤ 100. The end of the input will be designated with a line containing the number 0.
样例输入:
3 5 2 10 6 12 8 3 5 2 10 5 12 8 4 1 1 24 33 13 11 6 11 0
样例输出:
Menu 1: 12 Menu 2: 10 Menu 3: 24
(adsbygoogle = window.adsbygoogle || []).push({});
钱多事少离家近
钱多事少离家近
钱多事少离家近
钱多事少离家近
钱多事少离家近
钱多事少离家近
钱多事少离家近
钱多事少离家近
Light腹黑指数★★★★★★★★★★★★★★★★★★★★★★★★★★★★不放过任何一个人
Light腹黑指数★★★★★★★★★★★★★★★★★★★★★★★★★★★★不放过任何一个人
Light腹黑指数★★★★★★★★★★★★★★★★★★★★★★★★★★★★不放过任何一个人
Light腹黑指数★★★★★★★★★★★★★★★★★★★★★★★★★★★★不放过任何一个人
Light腹黑指数★★★★★★★★★★★★★★★★★★★★★★★★★★★★不放过任何一个人
Light腹黑指数★★★★★★★★★★★★★★★★★★★★★★★★★★★★不放过任何一个人
Light腹黑指数★★★★★★★★★★★★★★★★★★★★★★★★★★★★不放过任何一个人
Light腹黑指数★★★★★★★★★★★★★★★★★★★★★★★★★★★★不放过任何一个人
Light腹黑指数★★★★★★★★★★★★★★★★★★★★★★★★★★★★不放过任何一个人
Light腹黑指数★★★★★★★★★★★★★★★★★★★★★★★★★★★★不放过任何一个人
Light腹黑指数★★★★★★★★★★★★★★★★★★★★★★★★★★★★不放过任何一个人
Light腹黑指数★★★★★★★★★★★★★★★★★★★★★★★★★★★★不放过任何一个人
Light腹黑指数★★★★★★★★★★★★★★★★★★★★★★★★★★★★不放过任何一个人


Drop and share files
Any file size. Point-to-point. Encrypted end-2-end. Powered by Ericsson C3.
Drop file(s) here
Note! Your browser needs to be open while the files are transferred.
Share
File(s) successfully transfered
Share another file.
Transferring file(s)
Not connected
Drop only works in Chrome and Firefox, and only Chrome supports files above ~500MB. For support and feedback, please visit Spaces.


My name is Pooja Ghimire Kafle from Nepal. Bachelor’s degree in Humanities from Tribhuvan University with diploma in secretarial management from a well reputed institution The New Era, Having 1 year work experience in trekking office as a post of correspondence officer And having 1 years teaching experience at Vishow Jyoti Higher secondary school And having 2 and half years’ experience as a cashier with land mark group (EMAX) at Dubai.
Currently doing graduation on IT Tourism form The Kyoto college Of Graduate Studies for informatics (KCGI) at japan. A person with excellent communication skills, computing skills, equipped with knowledge gathered through experience suitable position within an organization where academic knowledge and skills can effectively be utilized towards achieving organizational goals.


Lyssner
Currently chatting:
Loading..
Unpaired listeners:
Loading..
Unpaired venters:
Loading..
Get someone
to listen to you.
Vent
Listen


  These slides are viewed best by Chrome and occasionally need to be refreshed if elements did not load properly. See here for PDF .

 .white[Press the **right arrow** to progress to the next slide!] --- background-image: url(images/bg1.jpg) background-size: cover class: hide-slide-number split-70 title-slide count: false .column.shade_black[.content[
 # .monash-blue.outline-text[ETC5510: Introduction to Data Analysis]
Week 5, part B

Web scraping
 .bottom_abs.width100[ Lecturer: *Nicholas Tierney & Stuart Lee* Department of Econometrics and Business Statistics

<EMAIL_ADDRESS>April 2020
 ] ]]

 <svg class="clip-svg absolute"> <defs> <clipPath id="swipe__clip-path" clipPathUnits="objectBoundingBox"> <polygon points="0.5745 0, 0.5 0.33, 0.42 0, 0 0, 0 1, 0.27 1, 0.27 0.59, 0.37 1, 0.634 1, 0.736 0.59, 0.736 1, 1 1, 1 0, 0.5745 0" /> </clipPath> </defs> </svg>

 --- background-image: url(https://www.kdnuggets.com/images/cartoon-turkey-data-science.jpg) background-size: contain background-position: 50% 50% --- # Overview - Different file formats - Audio / binary - Web data - ethics of web scraping - how to get data off the web - JSON --- class: transition # Recap on some tricky topics - assignment ("gets" - `<-`) - pipes (from the textbook) --- # The pipe operator: `%>%` - Code to tell a story about a little bunny foo foo (borrowed from https://r4ds.had.co.nz/pipes.html): - Using functions for each verb: `hop()`, `scoop()`, `bop()`. > Little bunny Foo Foo Went hopping through the forest Scooping up the field mice And bopping them on the head --- # Approach: Intermediate steps ```r foo_foo_1 <- hop(foo_foo, through = forest) foo_foo_2 <- scoop(foo_foo_1, up = field_mice) foo_foo_3 <- bop(foo_foo_2, on = head) ``` -- - Main downside: forces you to name each intermediate element. - Sometimes these steps form natural names. If this is the case - go ahead. - **But many times there are not natural names** - Adding number suffixes to make the names unique leads to problems. --- # Approach: Intermediate steps ```r foo_foo_1 <- hop(foo_foo, through = forest) foo_foo_2 <- scoop(foo_foo_1, up = field_mice) foo_foo_3 <- bop(foo_foo_2, on = head) ``` -- - Code is cluttered with unimportant names - Suffix has to be carefully incremented on each line. - I've done this! - 99% of the time I miss a number somewhere, and there goes my evening ... debugging my code. --- # Another Approach: Overwrite the original ```r foo_foo <- hop(foo_foo, through = forest) foo_foo <- scoop(foo_foo, up = field_mice) foo_foo <- bop(foo_foo, on = head) ``` -- - Overwrite originals instead of creating intermediate objects - Less typing (and less thinking). Less likely to make mistakes? - **Painful debugging**: need to re-run the code from the top. - Repitition of object - (`foo_foo` written 6 times!) Obscures what changes. --- # (Yet) Another approach: function composition ```r bop( scoop( hop(foo_foo, through = forest), up = field_mice ), on = head ) ``` -- - You need to read inside-out, and right-to-left. - Arguments are spread far apart - Harder to read --- # Pipe `%>%` can help! .pull-left[ `f(x)` `g(f(x))` `h(g(f(x)))` ] -- .pull-right[ `x %>% f()` `x %>% f() %>% g()` `x %>% f() %>% g() %>% h()` ] --- # Solution: Use the pipe - `%>%` ```r foo_foo %>% hop(through = forest) %>% scoop(up = field_mice) %>% bop(on = head) ``` - focusses on verbs, not nouns. - Can be read as a series of function compositions like actions. > Foo Foo hops, then scoops, then bops. - read more at: https://r4ds.had.co.nz/pipes.html --- class: transition # Assignment `<-` "gets" --- # Assignment We can perform calculations in R: ```r 1 + 1 read_csv("data.csv") ``` --- # Assignment But what if we want to use that information later? ```r 1 + 1 read_csv("data.csv") ``` --- # Assignment We can assign these things to an object using `<-` This reads as "gets". ```r x <- 1 + 1 my_data <- read_csv("data.csv") ``` -- - x 'gets' 1+1 - my_data 'gets' the output of read_csv... --- # Assignment Then we can use those things in other calculations ```r x <- 1 + 1 my_data <- read_csv("data.csv") x * x my_data %>% select(age, height, weight) %>% mutate(bmi = weight / height^2) ``` --- class: transition # Take 3 minutes to think about these two concepts - What are pipes `%>%` - What is assignment? `<-` --- class: transition # The many shapes and sizes of data --- # Data as an audio file ```r library(tuneR) wv_data <- readWave("data/data3.wav") %>% extractWave(from = 25000, to = 75000) df_wav_data <- tibble( t = seq_len(length(wv_obj)), left = wv_obj@left, right = wv_obj@right, word = "data" ) ``` ``` ## Rows: 100,002 ## Columns: 4 ## $ t <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, … ## $ left <int> 28, 27, 26, 24, 22, 15, 15, 12, 15, 18, 20, 27, 20, 18, 18, 12,… ## $ right <int> 29, 28, 24, 27, 18, 19, 13, 13, 16, 16, 21, 26, 18, 22, 13, 17,… ## $ word <chr> "data", "data", "data", "data", "data", "data", "data", "data",… ``` --- # Plotting audio data?  --- # Compare left and right channels  ??? Oh, same sound is on both channels! A tad drab. --- # Compute statistics ``` ## # A tibble: 200,004 x 4 ## t word channel value ## <int> <chr> <chr> <int> ## 1 1 data left 28 ## 2 1 data right 29 ## 3 2 data left 27 ## 4 2 data right 28 ## 5 3 data left 26 ## 6 3 data right 24 ## 7 4 data left 24 ## 8 4 data right 27 ## 9 5 data left 22 ## 10 5 data right 18 ## # … with 199,994 more rows ```

  word 	  m 	  s 	  mx 	  mn

  data 	  0.004 	  1602.577 	  8393 	  -15386

  statistics 	  0.009 	  1506.626 	  6601 	  -11026

 --- # Di's music ``` ## # A tibble: 62 x 8 ## X1 artist type lvar lave lmax lfener lfreq ## <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> ## 1 Dancing Queen Abba Rock 17600756. -90.0 29921 106. 59.6 ## 2 Knowing Me Abba Rock 9543021. -75.8 27626 103. 58.5 ## 3 Take a Chance Abba Rock 9049482. -98.1 26372 102. 125. ## 4 Mamma Mia Abba Rock 7557437. -90.5 28898 102. 48.8 ## 5 Lay All You Abba Rock 6282286. -89.0 27940 100. 74.0 ## 6 Super Trouper Abba Rock 4665867. -69.0 25531 100. 81.4 ## 7 I Have A Dream Abba Rock 3369670. -71.7 14699 105. 305. ## 8 The Winner Abba Rock 1135862 -67.8 8928 104. 278. ## 9 Money Abba Rock 6146943. -76.3 22962 102. 165. ## 10 SOS Abba Rock 3482882. -74.1 15517 104. 147. ## # … with 52 more rows ``` --- # Plot Di's music  --- # Plot Di's Music  Abba is just different from everyone else! --- # Question time: - "How does `data` appear different than `statistics` in the time series?" - "What format is the data in an audio file?" - "How is Abba different from the other music clips?", --- # Why look at audio data? - Data comes in many shapes and sizes - Audio data can be transformed ("rectangled") into a data.frame - Try on your own music with the [spotifyr](https://github.com/charlie86/spotifyr) package! --- # Scraping the web: what? why? - Increasing amount of data is available on the web. - These data are provided in an unstructured format: you can always copy&paste, but it's time-consuming and prone to errors. - Web scraping is the process of extracting this information automatically and transform it into a structured dataset. --- # Scraping the web: what? why? 1. Screen scraping: extract data from source code of website, with html parser (easy) or regular expression matching (less easy). 2. Web APIs (application programming interface): website offers a set of structured http requests that return JSON or XML files. - Why R? It includes all tools necessary to do web scraping, familiarity, direct analysis of data... But python, perl, java are also efficient tools. --- class: transition # Web Scraping with `rvest` and `polite` --- # Hypertext Markup Language Most of the data on the web is still largely available as HTML - while it is structured (hierarchical / tree based) it often is not available in a form useful for analysis (flat / tidy). ```html <html> <head> <title>This is a title</title> </head> <body> <p align="center">Hello world!</p> </body> </html> ``` --- # What if we want to extract parts of this text out? ```html <html> <head> <title>This is a title</title> </head> <body> <p align="center">Hello world!</p> </body> </html> ``` -- - `read_html()`: read HTML in (like `read_csv` and co!) -- - `html_nodes()`: select specified nodes from the HTML document using CSS selectors. --- # Let's read it in with `read_html` ```r example <- read_html(here::here("slides/data/example.html")) example ## {html_document} ## <html> ## [1] <head>\n<meta http-equiv="Content-Type" content="text/html; charset=UTF-8 ... ## [2] <body>\n <p align="center">Hello world!</p>\n </body> ``` -- - We have two parts - head and body - which makes sense: ```html <html> <head> <title>This is a title</title> </head> <body> <p align="center">Hello world!</p> </body> </html> ``` --- # Now let's get the title ```r example %>% html_nodes("title") ## {xml_nodeset (1)} ## [1] <title>This is a title</title> ``` -- ```html <html> <head> <title>This is a title</title> </head> <body> <p align="center">Hello world!</p> </body> </html> ``` --- # Now let's get the paragraph text ```r example %>% html_nodes("p") ## {xml_nodeset (1)} ## [1] <p align="center">Hello world!</p> ``` -- ```html <html> <head> <title>This is a title</title> </head> <body> <p align="center">Hello world!</p> </body> </html> ``` --- # Rough summary - `read_html` - read in a html file - `html_nodes` - select the parts of the html file we want to look at - This requires knowing about the website structure - But it turns out website are much...much more complicated than out little example file --- class: transition # rvest + polite: Simplify processing and manipulating HTML data - `bow()` - check if the data can be scraped appropriately - `scrape()` - scrape website data (with nice defaults) - `html_nodes()` - select specified nodes from the HTML document using CSS selectors. - `html_table` - parse an HTML table into a data frame. - `html_text` - extract tag pairs' content. --- # SelectorGadget: css selectors - Using a tool called selector gadget to **help** identify the html elements of interest - Does this by constructing a css selector which can be used to subset the html document. --- # SelectorGadget: css selectors .small[ Selector | Example | Description ------------ |------------------| ------------------------------------------------ element | `p` | Select all
 elements element element | `div p` | Select all
 elements inside a
 element element>element | `div > p` | Select all
 elements with
 as a parent .class | `.title` | Select all elements with class="title" \#id | `.name` | Select all elements with id="name" [attribute] | `[class]` | Select all elements with a class attribute [attribute=value] | `[class=title]` | Select all elements with class="title" ] --- # SelectorGadget - SelectorGadget: Open source tool that eases CSS selector generation and discovery - Install the [Chrome Extension](https://chrome.google.com/webstore/detail/selectorgadget/mhjhnkcfbdhnjickkkdbjoemdmbfginb) - A box will open in the bottom right of the website. Click on a page element that you would like your selector to match (it will turn green). SelectorGadget will then generate a minimal CSS selector for that element, and will highlight (yellow) everything that is matched by the selector. - Now click on a highlighted element to remove it from the selector (red), or click on an unhighlighted element to add it to the selector. Through this process of selection and rejection, SelectorGadget helps you come up with the appropriate CSS selector for your needs. --- # Top 250 movies on IMDB Take a look at the source code, look for the tag `table` tag:
 http://www.imdb.com/chart/top  --- # First check to make sure you're allowed! ```r # install.packages("polite") library(polite) bow("http://www.imdb.com") ## <polite session> http://www.imdb.com ## User-agent: polite R package - https://github.com/dmi3kno/polite ## robots.txt: 26 rules are defined for 1 bots ## Crawl delay: 5 sec ## The path is scrapable for this user-agent ``` -- ```r bow("http://www.google.com") ## <polite session> http://www.google.com ## User-agent: polite R package - https://github.com/dmi3kno/polite ## robots.txt: 275 rules are defined for 4 bots ## Crawl delay: 5 sec ## The path is scrapable for this user-agent ``` --- # Join in - Open rstudio and download today's exercises ```r # install.packages("usethis") library(usethis) use_course("https://mida.numbat.space/exercises/5b/mida-exercise-5b.zip") ``` --- # Demo Let's go to http://www.imdb.com/chart/top --- # Bow and scrape ```r imdb_session <- bow("http://www.imdb.com/chart/top") imdb_session ## <polite session> http://www.imdb.com/chart/top ## User-agent: polite R package - https://github.com/dmi3kno/polite ## robots.txt: 26 rules are defined for 1 bots ## Crawl delay: 5 sec ## The path is scrapable for this user-agent imdb_data <- scrape(imdb_session) imdb_data ## {html_document} ## <html xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml"> ## [1] <head>\n<meta http-equiv="Content-Type" content="text/html; charset=UTF-8 ... ## [2] <body id="styleguide-v2" class="fixed">\n <img height="1" widt ... ``` --- # Select and format pieces: titles - `html_nodes()` ```r library(rvest) imdb_data %>% html_nodes(".titleColumn a") ## {xml_nodeset (250)} ## [1] <a href="/title/tt0111161/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=e31d89dd-3 ... ## [2] <a href="/title/tt0068646/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=e31d89dd-3 ... ## [3] <a href="/title/tt0071562/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=e31d89dd-3 ... ## [4] <a href="/title/tt0468569/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=e31d89dd-3 ... ## [5] <a href="/title/tt0050083/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=e31d89dd-3 ... ## [6] <a href="/title/tt0108052/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=e31d89dd-3 ... ## [7] <a href="/title/tt0167260/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=e31d89dd-3 ... ## [8] <a href="/title/tt0110912/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=e31d89dd-3 ... ## [9] <a href="/title/tt0060196/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=e31d89dd-3 ... ## [10] <a href="/title/tt0120737/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=e31d89dd-3 ... ## [11] <a href="/title/tt0137523/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=e31d89dd-3 ... ## [12] <a href="/title/tt0109830/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=e31d89dd-3 ... ## [13] <a href="/title/tt1375666/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=e31d89dd-3 ... ## [14] <a href="/title/tt0080684/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=e31d89dd-3 ... ## [15] <a href="/title/tt0167261/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=e31d89dd-3 ... ## [16] <a href="/title/tt0133093/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=e31d89dd-3 ... ## [17] <a href="/title/tt0099685/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=e31d89dd-3 ... ## [18] <a href="/title/tt0073486/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=e31d89dd-3 ... ## [19] <a href="/title/tt0047478/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=e31d89dd-3 ... ## [20] <a href="/title/tt0114369/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=e31d89dd-3 ... ## ... ``` --- # Select and format pieces: titles - `html_text() ` ```r imdb_data %>% html_nodes(".titleColumn a") %>% html_text() ## [1] "The Shawshank Redemption" ## [2] "The Godfather" ## [3] "The Godfather: Part II" ## [4] "The Dark Knight" ## [5] "12 Angry Men" ## [6] "Schindler's List" ## [7] "The Lord of the Rings: The Return of the King" ## [8] "Pulp Fiction" ## [9] "The Good, the Bad and the Ugly" ## [10] "The Lord of the Rings: The Fellowship of the Ring" ## [11] "Fight Club" ## [12] "Forrest Gump" ## [13] "Inception" ## [14] "Star Wars: Episode V - The Empire Strikes Back" ## [15] "The Lord of the Rings: The Two Towers" ## [16] "The Matrix" ## [17] "Goodfellas" ## [18] "One Flew Over the Cuckoo's Nest" ## [19] "Seven Samurai" ## [20] "Se7en" ## [21] "City of God" ## [22] "Life Is Beautiful" ## [23] "The Silence of the Lambs" ## [24] "It's a Wonderful Life" ## [25] "Star Wars" ## [26] "Parasite" ## [27] "Saving Private Ryan" ## [28] "Spirited Away" ## [29] "The Green Mile" ## [30] "Interstellar" ## [31] "Leon: The Professional" ## [32] "The Usual Suspects" ## [33] "Seppuku" ## [34] "The Lion King" ## [35] "American History X" ## [36] "The Pianist" ## [37] "Terminator 2: Judgment Day" ## [38] "Back to the Future" ## [39] "Modern Times" ## [40] "Psycho" ## [41] "Gladiator" ## [42] "City Lights" ## [43] "The Intouchables" ## [44] "The Departed" ## [45] "Whiplash" ## [46] "The Prestige" ## [47] "Once Upon a Time in the West" ## [48] "Grave of the Fireflies" ## [49] "Casablanca" ## [50] "Joker" ## [51] "Cinema Paradiso" ## [52] "Rear Window" ## [53] "Alien" ## [54] "Apocalypse Now" ## [55] "Memento" ## [56] "Raiders of the Lost Ark" ## [57] "The Great Dictator" ## [58] "The Lives of Others" ## [59] "Django Unchained" ## [60] "Paths of Glory" ## [61] "The Shining" ## [62] "Avengers: Infinity War" ## [63] "WALL·E" ## [64] "Sunset Boulevard" ## [65] "Spider-Man: Into the Spider-Verse" ## [66] "Princess Mononoke" ## [67] "Dr. Strangelove or: How I Learned to Stop Worrying and Love the Bomb" ## [68] "Oldboy" ## [69] "Witness for the Prosecution" ## [70] "Avengers: Endgame" ## [71] "The Dark Knight Rises" ## [72] "Once Upon a Time in America" ## [73] "Aliens" ## [74] "Your Name." ## [75] "Coco" ## [76] "American Beauty" ## [77] "Braveheart" ## [78] "1917" ## [79] "Das Boot" ## [80] "3 Idiots" ## [81] "Tengoku to jigoku" ## [82] "Toy Story" ## [83] "Taare Zameen Par" ## [84] "Star Wars: Episode VI - Return of the Jedi" ## [85] "Amadeus" ## [86] "Reservoir Dogs" ## [87] "Inglourious Basterds" ## [88] "Good Will Hunting" ## [89] "2001: A Space Odyssey" ## [90] "Requiem for a Dream" ## [91] "Vertigo" ## [92] "M - Eine Stadt sucht einen Mörder" ## [93] "Dangal" ## [94] "Eternal Sunshine of the Spotless Mind" ## [95] "Citizen Kane" ## [96] "The Hunt" ## [97] "Capharnaüm" ## [98] "Full Metal Jacket" ## [99] "North by Northwest" ## [100] "A Clockwork Orange" ## [101] "Snatch" ## [102] "The Kid" ## [103] "Bicycle Thieves" ## [104] "Singin' in the Rain" ## [105] "Scarface" ## [106] "Taxi Driver" ## [107] "Amelie" ## [108] "Lawrence of Arabia" ## [109] "The Sting" ## [110] "Toy Story 3" ## [111] "Metropolis" ## [112] "For a Few Dollars More" ## [113] "Ikiru" ## [114] "Jodaeiye Nader az Simin" ## [115] "Double Indemnity" ## [116] "The Apartment" ## [117] "To Kill a Mockingbird" ## [118] "Incendies" ## [119] "Indiana Jones and the Last Crusade" ## [120] "Up" ## [121] "L.A. Confidential" ## [122] "Monty Python and the Holy Grail" ## [123] "Heat" ## [124] "Rashomon" ## [125] "Die Hard" ## [126] "Yojimbo" ## [127] "Batman Begins" ## [128] "Green Book" ## [129] "Downfall" ## [130] "Unforgiven" ## [131] "Idi i smotri" ## [132] "Bacheha-Ye aseman" ## [133] "Some Like It Hot" ## [134] "Howl's Moving Castle" ## [135] "Ran" ## [136] "The Great Escape" ## [137] "All About Eve" ## [138] "A Beautiful Mind" ## [139] "Casino" ## [140] "Pan's Labyrinth" ## [141] "My Neighbor Totoro" ## [142] "El secreto de sus ojos" ## [143] "Raging Bull" ## [144] "Lock, Stock and Two Smoking Barrels" ## [145] "The Wolf of Wall Street" ## [146] "The Treasure of the Sierra Madre" ## [147] "Judgment at Nuremberg" ## [148] "There Will Be Blood" ## [149] "Babam ve Oglum" ## [150] "Three Billboards Outside Ebbing, Missouri" ## [151] "The Gold Rush" ## [152] "Chinatown" ## [153] "Dial M for Murder" ## [154] "V for Vendetta" ## [155] "Det sjunde inseglet" ## [156] "Inside Out" ## [157] "No Country for Old Men" ## [158] "Warrior" ## [159] "Shutter Island" ## [160] "Trainspotting" ## [161] "The Elephant Man" ## [162] "The Sixth Sense" ## [163] "The Thing" ## [164] "Room" ## [165] "Gone with the Wind" ## [166] "Jurassic Park" ## [167] "Blade Runner" ## [168] "The Bridge on the River Kwai" ## [169] "Smultronstället" ## [170] "Finding Nemo" ## [171] "The Third Man" ## [172] "On the Waterfront" ## [173] "Stalker" ## [174] "Fargo" ## [175] "Kill Bill: Vol. 1" ## [176] "The Truman Show" ## [177] "Gran Torino" ## [178] "Tôkyô monogatari" ## [179] "The Deer Hunter" ## [180] "Memories of Murder" ## [181] "Relatos salvajes" ## [182] "Eskiya" ## [183] "Andhadhun" ## [184] "Klaus" ## [185] "The Big Lebowski" ## [186] "Mary and Max" ## [187] "In the Name of the Father" ## [188] "Gone Girl" ## [189] "Hacksaw Ridge" ## [190] "The Grand Budapest Hotel" ## [191] "Ford v Ferrari" ## [192] "Persona" ## [193] "Mr. Smith Goes to Washington" ## [194] "How to Train Your Dragon" ## [195] "Before Sunrise" ## [196] "The General" ## [197] "Catch Me If You Can" ## [198] "Sherlock Jr." ## [199] "Prisoners" ## [200] "12 Years a Slave" ## [201] "Cool Hand Luke" ## [202] "Mad Max: Fury Road" ## [203] "Network" ## [204] "Stand by Me" ## [205] "Le salaire de la peur" ## [206] "Barry Lyndon" ## [207] "Into the Wild" ## [208] "Million Dollar Baby" ## [209] "Monty Python's Life of Brian" ## [210] "Platoon" ## [211] "Hachi: A Dog's Tale" ## [212] "Ben-Hur" ## [213] "Rush" ## [214] "La passion de Jeanne d'Arc" ## [215] "Andrei Rublev" ## [216] "Logan" ## [217] "Harry Potter and the Deathly Hallows: Part 2" ## [218] "Dead Poets Society" ## [219] "Les quatre cents coups" ## [220] "Rang De Basanti" ## [221] "Hotel Rwanda" ## [222] "Amores perros" ## [223] "Kaze no tani no Naushika" ## [224] "Spotlight" ## [225] "Ah-ga-ssi" ## [226] "Rocky" ## [227] "Rebecca" ## [228] "Portrait of a Lady on Fire" ## [229] "Monsters, Inc." ## [230] "La haine" ## [231] "It Happened One Night" ## [232] "Faa yeung nin wa" ## [233] "Gangs of Wasseypur" ## [234] "Before Sunset" ## [235] "The Princess Bride" ## [236] "The Help" ## [237] "Ace in the Hole" ## [238] "Paris, Texas" ## [239] "The Invisible Guest" ## [240] "The Red Shoes" ## [241] "Drishyam" ## [242] "The Terminator" ## [243] "Lagaan: Once Upon a Time in India" ## [244] "Butch Cassidy and the Sundance Kid" ## [245] "Akira" ## [246] "Aladdin" ## [247] "PK" ## [248] "Kis Uykusu" ## [249] "Fanny och Alexander" ## [250] "Throne of Blood" ``` --- # Select and format pieces: save it ```r titles <- imdb_data %>% html_nodes(".titleColumn a") %>% html_text() ``` --- # Select and format pieces: years - nodes ```r imdb_data %>% html_nodes(".secondaryInfo") ## {xml_nodeset (250)} ## [1] <span class="secondaryInfo">(1994)</span> ## [2] <span class="secondaryInfo">(1972)</span> ## [3] <span class="secondaryInfo">(1974)</span> ## [4] <span class="secondaryInfo">(2008)</span> ## [5] <span class="secondaryInfo">(1957)</span> ## [6] <span class="secondaryInfo">(1993)</span> ## [7] <span class="secondaryInfo">(2003)</span> ## [8] <span class="secondaryInfo">(1994)</span> ## [9] <span class="secondaryInfo">(1966)</span> ## [10] <span class="secondaryInfo">(2001)</span> ## [11] <span class="secondaryInfo">(1999)</span> ## [12] <span class="secondaryInfo">(1994)</span> ## [13] <span class="secondaryInfo">(2010)</span> ## [14] <span class="secondaryInfo">(1980)</span> ## [15] <span class="secondaryInfo">(2002)</span> ## [16] <span class="secondaryInfo">(1999)</span> ## [17] <span class="secondaryInfo">(1990)</span> ## [18] <span class="secondaryInfo">(1975)</span> ## [19] <span class="secondaryInfo">(1954)</span> ## [20] <span class="secondaryInfo">(1995)</span> ## ... ``` --- # Select and format pieces: years - text ```r imdb_data %>% html_nodes(".secondaryInfo") %>% html_text() ## [1] "(1994)" "(1972)" "(1974)" "(2008)" "(1957)" "(1993)" "(2003)" "(1994)" ## [9] "(1966)" "(2001)" "(1999)" "(1994)" "(2010)" "(1980)" "(2002)" "(1999)" ## [17] "(1990)" "(1975)" "(1954)" "(1995)" "(2002)" "(1997)" "(1991)" "(1946)" ## [25] "(1977)" "(2019)" "(1998)" "(2001)" "(1999)" "(2014)" "(1994)" "(1995)" ## [33] "(1962)" "(1994)" "(1998)" "(2002)" "(1991)" "(1985)" "(1936)" "(1960)" ## [41] "(2000)" "(1931)" "(2011)" "(2006)" "(2014)" "(2006)" "(1968)" "(1988)" ## [49] "(1942)" "(2019)" "(1988)" "(1954)" "(1979)" "(1979)" "(2000)" "(1981)" ## [57] "(1940)" "(2006)" "(2012)" "(1957)" "(1980)" "(2018)" "(2008)" "(1950)" ## [65] "(2018)" "(1997)" "(1964)" "(2003)" "(1957)" "(2019)" "(2012)" "(1984)" ## [73] "(1986)" "(2016)" "(2017)" "(1999)" "(1995)" "(2019)" "(1981)" "(2009)" ## [81] "(1963)" "(1995)" "(2007)" "(1983)" "(1984)" "(1992)" "(2009)" "(1997)" ## [89] "(1968)" "(2000)" "(1958)" "(1931)" "(2016)" "(2004)" "(1941)" "(2012)" ## [97] "(2018)" "(1987)" "(1959)" "(1971)" "(2000)" "(1921)" "(1948)" "(1952)" ## [105] "(1983)" "(1976)" "(2001)" "(1962)" "(1973)" "(2010)" "(1927)" "(1965)" ## [113] "(1952)" "(2011)" "(1944)" "(1960)" "(1962)" "(2010)" "(1989)" "(2009)" ## [121] "(1997)" "(1975)" "(1995)" "(1950)" "(1988)" "(1961)" "(2005)" "(2018)" ## [129] "(2004)" "(1992)" "(1985)" "(1997)" "(1959)" "(2004)" "(1985)" "(1963)" ## [137] "(1950)" "(2001)" "(1995)" "(2006)" "(1988)" "(2009)" "(1980)" "(1998)" ## [145] "(2013)" "(1948)" "(1961)" "(2007)" "(2005)" "(2017)" "(1925)" "(1974)" ## [153] "(1954)" "(2005)" "(1957)" "(2015)" "(2007)" "(2011)" "(2010)" "(1996)" ## [161] "(1980)" "(1999)" "(1982)" "(2015)" "(1939)" "(1993)" "(1982)" "(1957)" ## [169] "(1957)" "(2003)" "(1949)" "(1954)" "(1979)" "(1996)" "(2003)" "(1998)" ## [177] "(2008)" "(1953)" "(1978)" "(2003)" "(2014)" "(1996)" "(2018)" "(2019)" ## [185] "(1998)" "(2009)" "(1993)" "(2014)" "(2016)" "(2014)" "(2019)" "(1966)" ## [193] "(1939)" "(2010)" "(1995)" "(1926)" "(2002)" "(1924)" "(2013)" "(2013)" ## [201] "(1967)" "(2015)" "(1976)" "(1986)" "(1953)" "(1975)" "(2007)" "(2004)" ## [209] "(1979)" "(1986)" "(2009)" "(1959)" "(2013)" "(1928)" "(1966)" "(2017)" ## [217] "(2011)" "(1989)" "(1959)" "(2006)" "(2004)" "(2000)" "(1984)" "(2015)" ## [225] "(2016)" "(1976)" "(1940)" "(2019)" "(2001)" "(1995)" "(1934)" "(2000)" ## [233] "(2012)" "(2004)" "(1987)" "(2011)" "(1951)" "(1984)" "(2016)" "(1948)" ## [241] "(2015)" "(1984)" "(2001)" "(1969)" "(1988)" "(1992)" "(2014)" "(2014)" ## [249] "(1982)" "(1957)" ``` --- # Select and format pieces: years - remove-brackets ```r imdb_data %>% html_nodes(".secondaryInfo") %>% html_text() %>% str_remove("\\(") %>% # remove ( str_remove("\\)") %>% # remove ) as.numeric() ## [1] 1994 1972 1974 2008 1957 1993 2003 1994 1966 2001 1999 1994 2010 1980 2002 ## [16] 1999 1990 1975 1954 1995 2002 1997 1991 1946 1977 2019 1998 2001 1999 2014 ## [31] 1994 1995 1962 1994 1998 2002 1991 1985 1936 1960 2000 1931 2011 2006 2014 ## [46] 2006 1968 1988 1942 2019 1988 1954 1979 1979 2000 1981 1940 2006 2012 1957 ## [61] 1980 2018 2008 1950 2018 1997 1964 2003 1957 2019 2012 1984 1986 2016 2017 ## [76] 1999 1995 2019 1981 2009 1963 1995 2007 1983 1984 1992 2009 1997 1968 2000 ## [91] 1958 1931 2016 2004 1941 2012 2018 1987 1959 1971 2000 1921 1948 1952 1983 ## [106] 1976 2001 1962 1973 2010 1927 1965 1952 2011 1944 1960 1962 2010 1989 2009 ## [121] 1997 1975 1995 1950 1988 1961 2005 2018 2004 1992 1985 1997 1959 2004 1985 ## [136] 1963 1950 2001 1995 2006 1988 2009 1980 1998 2013 1948 1961 2007 2005 2017 ## [151] 1925 1974 1954 2005 1957 2015 2007 2011 2010 1996 1980 1999 1982 2015 1939 ## [166] 1993 1982 1957 1957 2003 1949 1954 1979 1996 2003 1998 2008 1953 1978 2003 ## [181] 2014 1996 2018 2019 1998 2009 1993 2014 2016 2014 2019 1966 1939 2010 1995 ## [196] 1926 2002 1924 2013 2013 1967 2015 1976 1986 1953 1975 2007 2004 1979 1986 ## [211] 2009 1959 2013 1928 1966 2017 2011 1989 1959 2006 2004 2000 1984 2015 2016 ## [226] 1976 1940 2019 2001 1995 1934 2000 2012 2004 1987 2011 1951 1984 2016 1948 ## [241] 2015 1984 2001 1969 1988 1992 2014 2014 1982 1957 ``` --- # Select and format pieces: years - `parse_number()` ```r imdb_data %>% html_nodes(".secondaryInfo") %>% html_text() %>% parse_number() ## [1] 1994 1972 1974 2008 1957 1993 2003 1994 1966 2001 1999 1994 2010 1980 2002 ## [16] 1999 1990 1975 1954 1995 2002 1997 1991 1946 1977 2019 1998 2001 1999 2014 ## [31] 1994 1995 1962 1994 1998 2002 1991 1985 1936 1960 2000 1931 2011 2006 2014 ## [46] 2006 1968 1988 1942 2019 1988 1954 1979 1979 2000 1981 1940 2006 2012 1957 ## [61] 1980 2018 2008 1950 2018 1997 1964 2003 1957 2019 2012 1984 1986 2016 2017 ## [76] 1999 1995 2019 1981 2009 1963 1995 2007 1983 1984 1992 2009 1997 1968 2000 ## [91] 1958 1931 2016 2004 1941 2012 2018 1987 1959 1971 2000 1921 1948 1952 1983 ## [106] 1976 2001 1962 1973 2010 1927 1965 1952 2011 1944 1960 1962 2010 1989 2009 ## [121] 1997 1975 1995 1950 1988 1961 2005 2018 2004 1992 1985 1997 1959 2004 1985 ## [136] 1963 1950 2001 1995 2006 1988 2009 1980 1998 2013 1948 1961 2007 2005 2017 ## [151] 1925 1974 1954 2005 1957 2015 2007 2011 2010 1996 1980 1999 1982 2015 1939 ## [166] 1993 1982 1957 1957 2003 1949 1954 1979 1996 2003 1998 2008 1953 1978 2003 ## [181] 2014 1996 2018 2019 1998 2009 1993 2014 2016 2014 2019 1966 1939 2010 1995 ## [196] 1926 2002 1924 2013 2013 1967 2015 1976 1986 1953 1975 2007 2004 1979 1986 ## [211] 2009 1959 2013 1928 1966 2017 2011 1989 1959 2006 2004 2000 1984 2015 2016 ## [226] 1976 1940 2019 2001 1995 1934 2000 2012 2004 1987 2011 1951 1984 2016 1948 ## [241] 2015 1984 2001 1969 1988 1992 2014 2014 1982 1957 ``` --- # Select and format pieces: years - remove-brackets ```r years <- imdb_data %>% html_nodes(".secondaryInfo") %>% html_text() %>% str_remove("\\(") %>% # remove ( str_remove("\\)") %>% # remove ) as.numeric() ``` --- # Select and format pieces: scores - nodes ```r imdb_data %>% html_nodes(".imdbRating strong") ## {xml_nodeset (250)} ## [1] <strong title="9.2 based on 2,223,871 user ratings">9.2</strong> ## [2] <strong title="9.1 based on 1,532,498 user ratings">9.1</strong> ## [3] <strong title="9.0 based on 1,072,747 user ratings">9.0</strong> ## [4] <strong title="9.0 based on 2,198,238 user ratings">9.0</strong> ## [5] <strong title="8.9 based on 649,952 user ratings">8.9</strong> ## [6] <strong title="8.9 based on 1,158,162 user ratings">8.9</strong> ## [7] <strong title="8.9 based on 1,575,677 user ratings">8.9</strong> ## [8] <strong title="8.8 based on 1,744,483 user ratings">8.8</strong> ## [9] <strong title="8.8 based on 657,904 user ratings">8.8</strong> ## [10] <strong title="8.8 based on 1,588,407 user ratings">8.8</strong> ## [11] <strong title="8.8 based on 1,772,401 user ratings">8.8</strong> ## [12] <strong title="8.8 based on 1,715,513 user ratings">8.8</strong> ## [13] <strong title="8.7 based on 1,950,039 user ratings">8.7</strong> ## [14] <strong title="8.7 based on 1,111,799 user ratings">8.7</strong> ## [15] <strong title="8.7 based on 1,423,109 user ratings">8.7</strong> ## [16] <strong title="8.6 based on 1,597,884 user ratings">8.6</strong> ## [17] <strong title="8.6 based on 967,841 user ratings">8.6</strong> ## [18] <strong title="8.6 based on 874,414 user ratings">8.6</strong> ## [19] <strong title="8.6 based on 300,682 user ratings">8.6</strong> ## [20] <strong title="8.6 based on 1,369,407 user ratings">8.6</strong> ## ... ``` --- # Select and format pieces: scores - text ```r imdb_data %>% html_nodes(".imdbRating strong") %>% html_text() ## [1] "9.2" "9.1" "9.0" "9.0" "8.9" "8.9" "8.9" "8.8" "8.8" "8.8" "8.8" "8.8" ## [13] "8.7" "8.7" "8.7" "8.6" "8.6" "8.6" "8.6" "8.6" "8.6" "8.6" "8.6" "8.6" ## [25] "8.6" "8.6" "8.5" "8.5" "8.5" "8.5" "8.5" "8.5" "8.5" "8.5" "8.5" "8.5" ## [37] "8.5" "8.5" "8.5" "8.5" "8.5" "8.5" "8.5" "8.5" "8.5" "8.5" "8.5" "8.4" ## [49] "8.4" "8.4" "8.4" "8.4" "8.4" "8.4" "8.4" "8.4" "8.4" "8.4" "8.4" "8.4" ## [61] "8.4" "8.4" "8.4" "8.4" "8.4" "8.4" "8.4" "8.4" "8.4" "8.3" "8.3" "8.3" ## [73] "8.3" "8.3" "8.3" "8.3" "8.3" "8.3" "8.3" "8.3" "8.3" "8.3" "8.3" "8.3" ## [85] "8.3" "8.3" "8.3" "8.3" "8.3" "8.3" "8.3" "8.3" "8.3" "8.3" "8.3" "8.3" ## [97] "8.3" "8.3" "8.3" "8.2" "8.2" "8.2" "8.2" "8.2" "8.2" "8.2" "8.2" "8.2" ## [109] "8.2" "8.2" "8.2" "8.2" "8.2" "8.2" "8.2" "8.2" "8.2" "8.2" "8.2" "8.2" ## [121] "8.2" "8.2" "8.2" "8.2" "8.2" "8.2" "8.2" "8.2" "8.2" "8.2" "8.2" "8.2" ## [133] "8.2" "8.2" "8.2" "8.2" "8.2" "8.2" "8.2" "8.2" "8.2" "8.2" "8.2" "8.2" ## [145] "8.2" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" ## [157] "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" ## [169] "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" ## [181] "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" ## [193] "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" ## [205] "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.1" "8.0" "8.0" "8.0" ## [217] "8.0" "8.0" "8.0" "8.0" "8.0" "8.0" "8.0" "8.0" "8.0" "8.0" "8.0" "8.0" ## [229] "8.0" "8.0" "8.0" "8.0" "8.0" "8.0" "8.0" "8.0" "8.0" "8.0" "8.0" "8.0" ## [241] "8.0" "8.0" "8.0" "8.0" "8.0" "8.0" "8.0" "8.0" "8.0" "8.0" ``` --- # Select and format pieces: scores - as-numeric ```r imdb_data %>% html_nodes(".imdbRating strong") %>% html_text() %>% as.numeric() ## [1] 9.2 9.1 9.0 9.0 8.9 8.9 8.9 8.8 8.8 8.8 8.8 8.8 8.7 8.7 8.7 8.6 8.6 8.6 ## [19] 8.6 8.6 8.6 8.6 8.6 8.6 8.6 8.6 8.5 8.5 8.5 8.5 8.5 8.5 8.5 8.5 8.5 8.5 ## [37] 8.5 8.5 8.5 8.5 8.5 8.5 8.5 8.5 8.5 8.5 8.5 8.4 8.4 8.4 8.4 8.4 8.4 8.4 ## [55] 8.4 8.4 8.4 8.4 8.4 8.4 8.4 8.4 8.4 8.4 8.4 8.4 8.4 8.4 8.4 8.3 8.3 8.3 ## [73] 8.3 8.3 8.3 8.3 8.3 8.3 8.3 8.3 8.3 8.3 8.3 8.3 8.3 8.3 8.3 8.3 8.3 8.3 ## [91] 8.3 8.3 8.3 8.3 8.3 8.3 8.3 8.3 8.3 8.2 8.2 8.2 8.2 8.2 8.2 8.2 8.2 8.2 ## [109] 8.2 8.2 8.2 8.2 8.2 8.2 8.2 8.2 8.2 8.2 8.2 8.2 8.2 8.2 8.2 8.2 8.2 8.2 ## [127] 8.2 8.2 8.2 8.2 8.2 8.2 8.2 8.2 8.2 8.2 8.2 8.2 8.2 8.2 8.2 8.2 8.2 8.2 ## [145] 8.2 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 ## [163] 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 ## [181] 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 ## [199] 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.1 8.0 8.0 8.0 ## [217] 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 ## [235] 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 ``` --- # Select and format pieces: scores - save ```r scores <- imdb_data %>% html_nodes(".imdbRating strong") %>% html_text() %>% as.numeric() ``` --- # Select and format pieces: put it all together ```r imdb_top_250 <- tibble(title = titles, year = years, score = scores) imdb_top_250 ## # A tibble: 250 x 3 ## title year score ## <chr> <dbl> <dbl> ## 1 The Shawshank Redemption 1994 9.2 ## 2 The Godfather 1972 9.1 ## 3 The Godfather: Part II 1974 9 ## 4 The Dark Knight 2008 9 ## 5 12 Angry Men 1957 8.9 ## 6 Schindler's List 1993 8.9 ## 7 The Lord of the Rings: The Return of the King 2003 8.9 ## 8 Pulp Fiction 1994 8.8 ## 9 The Good, the Bad and the Ugly 1966 8.8 ## 10 The Lord of the Rings: The Fellowship of the Ring 2001 8.8 ## # … with 240 more rows ``` ---

  title 	  year 	  score

  The Shawshank Redemption 	  1994 	  9.2

  The Godfather 	  1972 	  9.1

  The Godfather: Part II 	  1974 	  9

  The Dark Knight 	  2008 	  9

  12 Angry Men 	  1957 	  8.9

  Schindler's List 	  1993 	  8.9

  The Lord of the Rings: The Return of the King 	  2003 	  8.9

  Pulp Fiction 	  1994 	  8.8

  The Good, the Bad and the Ugly 	  1966 	  8.8

  ... 	  ... 	  ...

 --- # Aside: Yet another approach - pull the table with `html_table()` - requires notation we haven't used yet (e.g., what is `[[]]`) - requires substantial text cleaning - If there is time we can cover this at the end of class ```r imdb_table <- html_table(imdb_data) glimpse(imdb_table[[1]]) ## Rows: 250 ## Columns: 5 ## $ `` <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… ## $ `Rank & Title` <chr> "1.\n The Shawshank Redemption\n (1994)", … ## $ `IMDb Rating` <dbl> 9.2, 9.1, 9.0, 9.0, 8.9, 8.9, 8.9, 8.8, 8.8, 8.8, 8.8,… ## $ `Your Rating` <chr> "12345678910\n \n \n \n … ## $ `` <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… ``` --- # Clean up / enhance May or may not be a lot of work depending on how messy the data are - See if you like what you got: ```r glimpse(imdb_top_250) ## Rows: 250 ## Columns: 3 ## $ title <chr> "The Shawshank Redemption", "The Godfather", "The Godfather: Pa… ## $ year <dbl> 1994, 1972, 1974, 2008, 1957, 1993, 2003, 1994, 1966, 2001, 199… ## $ score <dbl> 9.2, 9.1, 9.0, 9.0, 8.9, 8.9, 8.9, 8.8, 8.8, 8.8, 8.8, 8.8, 8.7… ``` --- # Clean up / enhance - Add a variable for rank ```r imdb_top_250 %>% mutate( rank = 1:nrow(imdb_top_250) ) ## # A tibble: 250 x 4 ## title year score rank ## <chr> <dbl> <dbl> <int> ## 1 The Shawshank Redemption 1994 9.2 1 ## 2 The Godfather 1972 9.1 2 ## 3 The Godfather: Part II 1974 9 3 ## 4 The Dark Knight 2008 9 4 ## 5 12 Angry Men 1957 8.9 5 ## 6 Schindler's List 1993 8.9 6 ## 7 The Lord of the Rings: The Return of the King 2003 8.9 7 ## 8 Pulp Fiction 1994 8.8 8 ## 9 The Good, the Bad and the Ugly 1966 8.8 9 ## 10 The Lord of the Rings: The Fellowship of the Ring 2001 8.8 10 ## # … with 240 more rows ``` ---

  title 	  year 	  score 	  rank

  The Shawshank Redemption 	  1994 	  9.2 	  1

  The Godfather 	  1972 	  9.1 	  2

  The Godfather: Part II 	  1974 	  9 	  3

  The Dark Knight 	  2008 	  9 	  4

  12 Angry Men 	  1957 	  8.9 	  5

  Schindler's List 	  1993 	  8.9 	  6

  The Lord of the Rings: The Return of the King 	  2003 	  8.9 	  7

  Pulp Fiction 	  1994 	  8.8 	  8

  The Good, the Bad and the Ugly 	  1966 	  8.8 	  9

  ... 	  ... 	  ... 	  ...

 --- # Your Turn: Which 1995 movies made the list? -- ```r imdb_top_250 %>% filter(year == 1995) ## # A tibble: 8 x 3 ## title year score ## <chr> <dbl> <dbl> ## 1 Se7en 1995 8.6 ## 2 The Usual Suspects 1995 8.5 ## 3 Braveheart 1995 8.3 ## 4 Toy Story 1995 8.3 ## 5 Heat 1995 8.2 ## 6 Casino 1995 8.2 ## 7 Before Sunrise 1995 8.1 ## 8 La haine 1995 8 ``` --- # Your turn: Which years have the most movies on the list? -- ```r imdb_top_250 %>% group_by(year) %>% summarise(total = n()) %>% arrange(desc(total)) %>% head(5) ## # A tibble: 5 x 2 ## year total ## <dbl> <int> ## 1 1995 8 ## 2 1957 7 ## 3 2014 7 ## 4 2019 7 ## 5 2000 6 ``` --- # Your Turn: Visualize top 250 yearly mean score over time -- ```r imdb_top_250 %>% group_by(year) %>% summarise(avg_score = mean(score)) %>% ggplot(aes(y = avg_score, x = year)) + geom_point() + geom_smooth(method = "lm") + xlab("year") ``` ---  --- # Other common formats: JSON - JavaScript Object Notation (JSON). - A language-independent data format, and supplants extensible markup language (XML). - Data are sometimes stored as JSON, which requires special unpacking --- # Unpacking JSON: Example JSON from [jsonlite](https://cran.r-project.org/web/packages/jsonlite/vignettes/json-aaquickstart.html) .pull-left[ ```r library(jsonlite) json_mario <- '[ { "Name": "Mario", "Age": 32, "Occupation": "Plumber" }, { "Name": "Peach", "Age": 21, "Occupation": "Princess" }, {}, { "Name": "Bowser", "Occupation": "Koopa" } ]' ``` ] .pull-right[ ```r mydf <- fromJSON(json_mario) mydf ## Name Age Occupation ## 1 Mario 32 Plumber ## 2 Peach 21 Princess ## 3 <NA> NA <NA> ## 4 Bowser NA Koopa ``` ] --- # Potential challenges with web scraping - Unreliable formatting at the source - Data broken into many pages - Data arriving in multiple excel file formats - ... We will come back to this when we learn about functions next week. > Compare the display of information at [gumtree melbourne](https://www.gumtree.com.au/s-monash/l3001600) to the list on the IMDB top 250 list. What challenges can you foresee in scraping a list of the available apartments? ] --- # Further exploring People write R packages to access online data! Check out: - [cricinfo by Sayani Gupta and Rob Hyndman](https://docs.ropensci.org/cricketdata/) - [rwalkr by Earo Wang](https://github.com/earowang/rwalkr) - [fitzRoy for AFL data](https://github.com/jimmyday12/fitzRoy/) - [Top 40 lists of R packages by Joe Rickert](https://rviews.rstudio.com/2019/07/24/june-2019-top-40-r-packages/) - they usually include a "data" section. --- # A note on midsemester test - Will be made available next Wednesday after class - This will be a multiple choice and short answer exam - The test will be conducted on Moodle - More details to come soon!


StockStream TV
StockStream TV is a crowd-sourced and crowd-controlled public TV. Anyone can broadcast and anyone can change the channel.
Type
!tv
to get started.


Jay Exchange (Beta)
No Account Attached
Attach an Account
NXT Markets
7d volume
/NXT Market
Asset Id:
Issuer:
24h Volume
24h Trades
Bid/Ask Spread
24h Price Avg.
Volume (NXT)
Price (NXT)
Window Span:
12h
1d
3d
1w
2w
1m
3m
6m
All
Candlesticks:
1h
3h
6h
12h
1d
3d
1w
2w
1m
Buy
Your Balance:
NXT
Price
NXT
0 NQT
Amount
0 QNT
Total
NXT
Fee
NXT
Sell
Your Balance:
Price
NXT
0 NQT
Amount
0 QNT
Total
NXT
Fee
NXT
Sell Orders (
)
Total:
NXT
?
Price
NXT
Sum (NXT)
Buy Orders (
)
Total:
?
Price
NXT
Sum (NXT)
Market Depth
Total (NXT)
Price (NXT)
Trade History
?
Date
Type
Price (NXT)
Amount (
)
Total (NXT)
Next Block
Price:
NXT
Total:
NXT
Total:
×
Attach Account
Nxt Address
×
QR Code


| |||||||
| FRAMES NO FRAMES |
The panelTooltip is a container component that renders the panel as tooltip that hovers on top of an element. This component can be used with conjunction of the panelGroup.
The popupTooltip contains two user defined regions which are defined using named facets. The facet names are "header" and "body".
The hide functionality is controlled by the hideOn attribute.
Note: The panelTooltip can be draggable as well.| Tag Information | |
| Tag Class | com.icesoft.faces.component.paneltooltip.PanelTooltipTag |
| TagExtraInfo Class | None |
| Body Content | JSP |
| Display Name | None |
| Attributes | ||||
| Name | Required | Request-time | Type | Description |
| binding | false | false | java.lang.String | The value binding expression linking this component to a property in a backing bean |
| displayListener | false | false | java.lang.String | The displayListener is a MethodBinding/MethodExpression that specifies a method on a backing bean that will accept a com.icesoft.faces.component.DisplayEvent. |
| displayOn | false | false | java.lang.String | The following are the valid values for the displayOn attribute:
|
| draggable | false | false | java.lang.String | When set to 'true' this panelTooltip is draggable. The user will be able to drag the panel to any position on the page. Note: all Draggable panels must be contained in a form. If the panelTooltip is draggable it becomes dynamic automatically. |
| effect | false | false | java.lang.String | The Javascript Effect |
| hideOn | false | false | java.lang.String | The following are the valid values for the autoHide attribute:
mouseout :the tooltip will be hide (un-rdender or invisible, depending on the dynamic attribute) when the user moves the mouse out of the triggering component.
mousedown :the tooltip will be hide (un-rdender or invisible, depending on the dynamic attribute) when the user clicks any area outside of the panelTooltip itself is clicked.
none :the tooltip will not be hide until the application changes the "visible" attribute to be false |
| hoverDelay | false | false | java.lang.String | # of milliseconds that mouse must be continuously hovered over the component before the tooltip is displayed. |
| id | false | false | java.lang.String | The component identifier for this component. This value must be unique within the closest parent component that is a naming container. |
| moveWithMouse | false | false | java.lang.String | When set to "true" this will cause the panelTooltip to track with the mouse. Default is "false" |
| onclick | false | false | java.lang.String | No Description |
| onclickeffect | false | false | java.lang.String | Effect invoked on onclick event |
| ondblclick | false | false | java.lang.String | No Description |
| ondblclickeffect | false | false | java.lang.String | Effect invoked on ondblclick event |
| onkeydown | false | false | java.lang.String | No Description |
| onkeydowneffect | false | false | java.lang.String | Effect invoked on onkeydown event |
| onkeypress | false | false | java.lang.String | No Description |
| onkeypresseffect | false | false | java.lang.String | Effect invoked on onkeypress event |
| onkeyup | false | false | java.lang.String | No Description |
| onkeyupeffect | false | false | java.lang.String | Effect invoked on onkeyup event |
| onmousedown | false | false | java.lang.String | No Description |
| onmousedowneffect | false | false | java.lang.String | Effect invoked on onmousedown event |
| onmousemove | false | false | java.lang.String | No Description |
| onmousemoveeffect | false | false | java.lang.String | Effect invoked on onmousemove event |
| onmouseout | false | false | java.lang.String | No Description |
| onmouseouteffect | false | false | java.lang.String | Effect invoked on onmouse event |
| onmouseover | false | false | java.lang.String | No Description |
| onmouseovereffect | false | false | java.lang.String | Effect invoked on onmouseover event |
| onmouseup | false | false | java.lang.String | No Description |
| onmouseupeffect | false | false | java.lang.String | Effect invoked on onmouseup event |
| rendered | false | false | java.lang.String | Flag indicating whether or not this component should be rendered (during Render Response Phase), or processed on any subsequent form submit. |
| renderedOnUserRole | false | false | java.lang.String | If user is in given role, this component will be rendered normally. If not, nothing is rendered and the body of this tag will be skipped. |
| style | false | false | java.lang.String | CSS style(s) to be applied when this component is rendered. |
| styleClass | false | false | java.lang.String | Space-separated list of CSS style class(es) to be applied when this element is rendered. This value must be passed through as the "class" attribute on generated markup. Defines the base class name for all style classes. Default value is icePnlTlTip
|
| visible | false | false | java.lang.String | Set the visibility of this component. When false CSS style is set to display:none |
| Variables | No Variables Defined. |
| |||||||
| FRAMES NO FRAMES |


HTML
What is HTML?
HTML (Hypertext Markup Language) is the code that is used to structure a web page and its content.
As the title suggests, this article will give you a basic understanding of HTML and its functions.
The HTML tag is followed by the head section which contains information about the page such as its title,
meta tags, and where to locate the CSS file. The body section is all content that is viewable on the browser.
For example, all the text you see here is contained within the body tags
Where is HTML used?
Browsers do not display the HTML tags, but use them to interpret the content of the page.
HTML is basically used for designing purposes, it is used to design webpages,interfaces for various
mobile applications and web applications.
HTML is most commonly used as the format of the online documents we call web pages.
Virtual Reality
What is Virtual Reality
Virtual Reality helps you to Understand the courses more easily. Today the Virtual reality (VR) technology is applied to advance fields of medicine,
engineering, education, design, training, and entertainment. VR is a computer interfaces which tries to mimic
real world beyond the flat monitor to give an immersive 3D (Three Dimension) visual experiences.


Center for Therapies and Meditation Riquelme 62 / Fantuzzi + Rodillo Arquitectos
- Curated by Clara Ott
- about 13 hours
- ArchitectsAuthors of this architecture project Fantuzzi + Rodillo Arquitectos
- AreaArea of this architecture project 217.0 m2
- Project YearBrands with products used in this architecture project 2018
- PhotographerCreated with Sketch. Pablo Blanco
- ManufacturersBrands with products used in this architecture project Aceros B&R, Arquetipo, CHC, Maestranza Santa Elena, patagonia glass
- Lead Architects Roberto Fantuzzi Cuesta, Jaime Rodillo Fernandez
- Collaborating Architects Joao Mesquita Amorim, Javiera Fernandez Allendes, Matias Lara Villanueva
- Construction FRAC Ltda.
More Specs Less Specs
Text description provided by the architects. Project located in the center of San Francisco de Limache, on Riquelme 62 street. The architectural proposal arises to create a Center for the development of Natural Therapies and Meditation in a traditional neighborhood of the city. The main facade located to the east, is restored maintaining continuity with the surrounding homes. A second level set back from the existing cornice is enabled.
The project has two volumes connected by means of a central circulation axis that has on both sides interior courtyards that give light and ventilation to the enclosures. On the access level there is a small cafe along with the reception of the place, followed by this and there are 4 therapy rooms that end in an outdoor patio.
On the second level and located to the northeast is the multipurpose room, this space has openings at ground level, allowing the passage of light for the practice of yoga and meditation, in addition this level has dressing rooms and an outdoor terrace.


Master files with all color schemes are available in several formats.
Download a Microsoft Excel file with all 165 color schemes in one master file.
>> Download SpreadsheetAll color schemes for use on the web.
>> Download CSS >> Download JSON >> Download JavaScript variableCartoCSS styles for use in applications such as TileMill. (Styles by MapBox)
>> Download CartoCSS


This example demonstrates usage of CAM. On initialization CAM will Load all Assets in the asset.josn file via XHR request, download the assets to the local file system and finally load one of the files from the local filesystem.


好好学习，天天向上
华为南京研究所
S. Xie and Zhe Chen, "Anomaly detection and redundancy elimination of big sensor data in Internet of things," arXiv:1703.03225, March 2017
X. Chen, Zhe Chen, S. Xie, and Y. Shao, "Predictive and recommendatory spectrum decision for cognitive radio," arXiv:1703.03102, March 2017
S. Xie , Zhe Chen, C. Fu, and F. Li, "Redundancy elimination of big sensor data using Bayesian networks," in Proceedings of International Conference on Big Data Computing and Communications (BIGCOM 2016), Shenyang, China, July 2016.
(Accession number: WOS:000389638200016;<PHONE_NUMBER>4765)