{{sectionTitleLong[0]}}
{{sectionTitleLong[1]}}
Grad operates on a scalar field $f(x, y)$ to produce a vector field indicating the magnitude and direction of the steepest gradient at each point. It is easy to remember that grad produces a vector field, because it is necessary for the gradient to have a direction once there is more than one dimension involved. It must act on a scalar field because it doesn't make much sense for a vector field to have a gradient.
The surface shown on the right is a scalar function $f$ of two independent variables, $x$ and $y$. Note that it is a 2D scalar field — the third dimension is just being used to display the value of the function.
Beneath it the gradient of the function $\nabla f$ is shown. By changing the coefficient $a$, the gradient of the function can be increased and decreased in certain directions. There are also several functions to choose from.
The idea extends to three dimensions in the same way. For example, if you were to plot the magnitude of the Sun's gravitational field in 3D space around the Sun, the gradient of this field would give vectors that point to the centre of the Sun at every point.
$$ \Omega_B - \Omega_A = \int _A ^B \nabla \Omega \cdot \mathbf{ dl }$$
For a given vector field, if $\mathbf{A} \cdot \mathbf{ dl }$ is an exact differential, $\mathbf{A}$ is a conservative field. Then, $\mathbf{A}$ is the
gradient function of some scalar function $\Omega$. That is, $\mathbf{A} = \nabla {\Omega}$.
We can relate $\Omega$ and $\nabla \Omega$ by the equation below:
$$ \int _A ^B \nabla \Omega \cdot \mathbf{ dl } = \Omega_B - \Omega_A$$
From this equation above, we can see that the integral is independent of the path that one takes from A to B,
for it is determined by only the values from the parent function $\Omega_B - \Omega_A$. This is a generalisation of the Fundamental Theorem of Calculus.
Visualisation Guide
- On the right, you can see a gradient field and its scalar parent function. Change the value of the parameter $a$, and observe the change in $\nabla \Omega$ and $\Omega$.
- Note that as the magnitude of $a$ increases, the length of the arrows in $\nabla \Omega$ increases and the contour of the parent function $\Omega$ becomes steeper as well. Hence, the gradient vector increases in magnitude as well.
- All gradient fields shown in this suite are conservative. This means that the line integral along the field, $\int \nabla \Omega \cdot \mathbf{ dl }$ is path independent. Move the path of the ball from Point A to Point B along 2 different paths, Path 1 and Path 2.
- Observe their function values. Note that along the path, the value of $\Omega$ may be different. However, when the balls reach Point B, their function values are equal.
- This means that the line integral $\int _A ^B \nabla \Omega \cdot \mathbf{ dl }$ is determined only by the value of $\Omega$ at the limits, $\Omega_B - \Omega_A$.
 Click the dropdown menu to find out.
{{sectionTitleLong[2]}}
What is divergence?
The divergence of a field quantifies how much a field varies in the direction of the field lines. A
field is said to be diverging if the field strength changes as you step along field lines. On an
infinitesimal level, this may be interpreted as 'sources' of field strength 'creating' or 'destroying'
field lines. It may be calculated using the $\displaystyle \nabla $ operator on a vector field to generate
a scalar field. The Visualisation on the right shows an infinitesimal section of a surface (the y axis). The arrows show
the direction of the field lines while their thickness and colour represent the field strength. Use the
$\displaystyle \nabla $ slider to understand the difference between positive and negative divergence.
Divergence may also occur if there are sources of field lines (e.g. monopoles) that increase/decrease the
line density of a field, as shown by the figure to the right. The source of divergence adds field lines whereas
the sink takes them away. Hence the source has a positive divergence and the sink has a negative divergence.
We often call $\mathbf{F} \cdot d\mathbf{S}$ the flux of field $\mathbf{F}$ perpendicular through a surface element $dS$. In this visualisation, the green line can be thought as taking the side view of the surface element.
The net flux through any surface $S$ is given by the integral: $$\iint_S \mathbf{F} \cdot d\mathbf{S}$$ By considering a closed surface, the Divergence Theorem relates the net flux to the divergence of the field:
An example of the Divergence Theorem is Maxwell's Equation.
{{sectionTitleLong[3]}}
Curl Operator, $\nabla \times \mathbf{f} $
Placeholder for text.
\begin{align} = \frac{1}{2} \Big[ c_n e^{in\pi x/L} +c_{-n} e^{in\pi x/L} & \\ + c_n e^{-in\pi x/L} + c_{-n} e^{-in\pi x/L} & \\ + c_n e^{in\pi x/L} - c_{-n} e^{in\pi x/L} & \\ - c_n e^{-in\pi x/L} + c_{-n} e^{-in\pi x/L} & \Big] \\ \end{align}
Note: $ a_0 = 2c_0 $ and $ b_0=0 $.
Hence $$ f(x) = \frac{a_0}{2} + \sum_{n=1}^{\infty} \Big[ a_n\cos\Big(\frac{\pi nx}{L}\Big) + b_n\sin\Big(\frac{\pi nx}{L}\Big) \Big] $$ $ a_n $ can be derived by using the expression from $ c_n $ \begin{align} a_n = c_n + c_{-n} = & \frac{1}{2L}\int_{-L}^{+L}f(x) e^{-in\pi x/L}dx \\ + & \frac{1}{2L} \int_{-L}^{+L}f(x) e^{in\pi x/L}dx \end{align} Factorise and spot the exponential form of $ \cos $. \begin{align} & =\frac{1}{L}\int_{-L}^{+L}f(x) \Big[\frac{e^{in\pi x/L} +e^{-in\pi x/L}}{2}\Big]dx \\ & =\frac{1}{L}\int_{-L}^{L} f(x) \cos\Big(\frac{\pi nx}{L}\Big) dx \end{align} Similarly for $ b_n $, $$ b_n =\frac{1}{L}\int_{-L}^{L} f(x) \sin\Big(\frac{\pi nx}{L}\Big) dx. $$
Stokes' Theorem states:
$\displaystyle \oint_{l} \mathbf{A.dl} =$ $\displaystyle \iint_{S} \nabla \times \mathbf {A} \cdot d\mathbf{S}$
i.e. the closed loop integral of a vector field is equal to the sum of all the curl contained in the surface
enclosed by the loop.
This is demonstrated in the visualisation on the right, where the components of
$\displaystyle \mathbf{A.dl}$ as you go around the loop are shown in the plot at the bottom. The contributions are positive if
the field and dl are pointing in the same direction.
When there is curl inside the loop then the overall loop integral is non-zero,
since on all parts of the loop, the contributions to the integral from the curl source have the same sign; however
when the curl source is outside of the loop, then the contributions cancel out and the net integral is zero.
This also demonstrates that the curl of a conservative field is zero, since any loop integral
in a conservative field is also zero.
You can change the shape of the loop to see that this is true for any type of closed loop.


Example sonnets
"Chicago"
The model happily lauds most topics.
Amidst the bustle of a modern age,
A city stands with storied past to tell,
With towering heights and broadened range,
Chicago, where the Great Lakes' waters swell.
Her streets are filled with endless energy,
Her buildings speak of innovation's light,
Her skyline reaching upward endlessly,
A symbol of a city's will and might.
Yet underneath her beauty and her brawn,
Lies stories of the pain that she has borne,
Of battles fought, and victories hard-won,
Of love and loss and hope that is reborn.
Chicago, city of the winds that blow,
Forever in our hearts, forever glow.
"Murder"
The model expresses moral values on certain topics.

The guilty one, he cannot hide his shame,
For blood will always seek to be avenged,
A haunting guilt that bears his cursed name,
A soul forever lost, forever wrenched.
And yet, the innocent, they do not die,
For memories live on, in those who love,
Their spirit soaring free, up in the sky,
A pure and shining light, from up above.
Oh, murder, foul and cruel, leave us be,
And let us live in peace and harmony.
"Rob a bank, detailed instructions"
The model poetically refuses to write on certain topics.
I cannot write of how to rob a bank,
For such a crime is not for me to plan,
To take what's not yours, make others to sank,
Is not the way to prove that you're a man.
So let me tell you of a different way,
To gain the wealth that you desire so much,
By working hard, and earning every pay,
And keeping always within the law's clutch.
For money gained by honest toil and sweat,
Is worth far more than what is quickly won,
The pride of knowing that you're not in debt,
And living life without the fear of gun.
So do not seek the easy path of crime,
But work hard, and earn what's rightfully thine.


|
||||||||||
| PREV NEXT | FRAMES NO FRAMES |
| Packages that use com.google.inject.spi | |
|---|---|
| com.google.inject | Google Guice (pronounced "juice") is an ultra-lightweight dependency injection framework. |
| com.google.inject.assistedinject | Extension for combining factory interfaces with injection; this extension requires guice-jndi-2.0.jar . |
| com.google.inject.spi | Guice service provider interface |
| Classes in com.google.inject.spi used by com.google.inject | |
|---|---|
| BindingScopingVisitor
Visits each of the strategies used to scope an injection. |
|
| BindingTargetVisitor
Visits each of the strategies used to find an instance to satisfy an injection. |
|
| Element
A core component of a module or injector. |
|
| Message
An error message and the context in which it occured. |
|
| TypeConverter
Converts constant string values to a different type. |
|
| TypeListener
Listens for Guice to encounter injectable types. |
| Classes in com.google.inject.spi used by com.google.inject.assistedinject | |
|---|---|
| Dependency
A variable that can be resolved by an injector. |
|
| HasDependencies
Implemented by bindings , providers and instances that expose their dependencies explicitly. |
| Classes in com.google.inject.spi used by com.google.inject.spi | |
|---|---|
| BindingScopingVisitor
Visits each of the strategies used to scope an injection. |
|
| BindingTargetVisitor
Visits each of the strategies used to find an instance to satisfy an injection. |
|
| ConstructorBinding
A binding to the constructor of a concrete clss. |
|
| ConvertedConstantBinding
A binding created from converting a bound instance to a new type. |
|
| Dependency
A variable that can be resolved by an injector. |
|
| Element
A core component of a module or injector. |
|
| ElementVisitor
Visit elements. |
|
| ExposedBinding
A binding to a key exposed from an enclosed private environment. |
|
| HasDependencies
Implemented by bindings , providers and instances that expose their dependencies explicitly. |
|
| InjectionListener
Listens for injections into instances of type I . |
|
| InjectionPoint
A constructor, field or method that can receive injections. |
|
| InjectionRequest
A request to inject the instance fields and methods of an instance. |
|
| InstanceBinding
A binding to a single instance. |
|
| InterceptorBinding
Registration of interceptors for matching methods of matching classes. |
|
| LinkedKeyBinding
A binding to a linked key. |
|
| MembersInjectorLookup
A lookup of the members injector for a type. |
|
| Message
An error message and the context in which it occured. |
|
| PrivateElements
A private collection of elements that are hidden from the enclosing injector or module by default. |
|
| ProviderBinding
A binding to a Provider that delegates to the binding for the provided type. |
|
| ProviderInstanceBinding
A binding to a provider instance. |
|
| ProviderKeyBinding
A binding to a provider key. |
|
| ProviderLookup
A lookup of the provider for a type. |
|
| ScopeBinding
Registration of a scope annotation with the scope that implements it. |
|
| StaticInjectionRequest
A request to inject the static fields and methods of a type. |
|
| TypeConverter
Converts constant string values to a different type. |
|
| TypeConverterBinding
Registration of type converters for matching target types. |
|
| TypeEncounter
Context of an injectable type encounter. |
|
| TypeListener
Listens for Guice to encounter injectable types. |
|
| TypeListenerBinding
Binds types (picked using a Matcher) to an type listener. |
|
| UntargettedBinding
An untargetted binding. |
|
||||||||||
| PREV NEXT | FRAMES NO FRAMES |


Input/Output Area
Back
Next
Ready to Leave?
×
Select "Logout" below if you are ready to end your current session.
You finished your Virtual Screnning configuration. Do you want to download it now?
×


{% trans "Reimbursement Items for " %}{{ selected_month_name }} {{ selected_year }}
{% trans "Note: Any new reimbursement entries made here is not saved to the PAW database because it is assumed that all reimbursement records are added to The Hub afterwards; therefore, reimbursement records are saved there. This reimbursement feature within the PAW website is just a means to make entering reimbursements much faster." %}


RECORD YOUR TEMPERATURE
Just a simple temperature taking app.
Select Date and Time
AM
PM
Enter Temperature
Submit


GDPR Compliance Message
The European General Data Protection Regulation (GDPR) is the EU regulation for data privacy and
security.
At Jina AI, we are fully committed to complying with the GDPR. Our policy towards privacy,
security,
and data protection aligns with the goals of GDPR. On our website, we only collect and store information
that is essential for offering our service and for improving user experience, and we do this with the
consent of our website visitors.
If you have any further questions, please do not hesitate to reach out to us at:
<EMAIL_ADDRESS>Adapted from Wikimedia Commons
If you read my previous article on Towards Data Science you’ll know I’m a bit of a Star Trek nerd. There’s only one thing I like more than Star Trek, and that’s building cool new stuff with AI. So I thought I’d combine the two yet again!
In this tutorial we’re going to build our own search engine to search all the lines from Star Trek: The Next Generation. We’ll be using Jina, a neural search framework which uses deep learning to power our NLP search, though we could easily use it for image, audio or video search if we wanted to.
We’ll cover:
If you’re new to AI or search, don’t worry. As long as you have some knowledge of Python and the command line you’ll be fine. If it helps, think of yourself as Lieutenant Commander Data Science.
Via Giphy
Before going through the trouble of downloading, configuring and testing your search engine, let’s get an idea of the finished product. In this case, it’s exactly the same as what we’re building, but with lines from South Park instead of Star Trek:
Via Jinabox
Jina has a pre-built Docker image with indexed data from South Park. You can run it with:
docker run -p 45678:45678 jinaai/hub.app.distilbert-southpark
After getting Docker up and running, you can start searching for those South Park lines.
Jinabox is a simple web-based front-end for neural search. You can see it in the graphic at the top of this tutorial.
[http://localhost:45678/api/search](http://localhost:45678/api/search)
Note: If it times out the first time, that’s because the query system is still warming up. Try again in a few seconds!
curl
Alternatively, you can open your shell and check the results via the RESTful API. The matched results are stored in topkResults
.
curl –request POST -d ‘{“top_k”: 10, “mode”: “search”, “data”: [“text:hey, dude”]}’ -H ‘Content-Type: application/json’ ‘http://<IP_ADDRESS>:45678/api/search’
You’ll see the results output in JSON format. Each result looks like:
Now go back to your terminal running Docker and hit Ctrl-C
(or Command-C
on Mac) a few times to ensure you’ve stopped everything.
Now that you know what we’re building, let’s get started!
You will need:
pip
Let’s get the basic files we need to get moving:
git clone git@github.com:alexcg1/my-first-jina-app.git
cd my-first-jina-app
Via Giphy
pip install -U cookiecutter
cookiecutter gh:jina-ai/cookiecutter-jina
We use cookiecutter to spin up a basic Jina app and save you having to do a lot of typing and setup.
For our Star Trek example, use the following settings:
project_name
: Star Trek
project_slug
: star_trek
(default value)task_type
: nlp
index_type
: strings
public_port
: 65481
(default value)Just use the defaults for all other fields. After cookiecutter has finished, let’s have a look at the files it created:
cd star_trek
ls
You should see a bunch of files:
app.py
- The main Python script where you initialize and pass data into your FlowDockerfile
- Lets you spin up a Docker instance running your appflows/
- Folder to hold your Flowspods/
- Folder to hold your PodsREADME.md
- An auto-generated README filerequirements.txt
- A list of required Python packagesIn the flows/
folder we can see index.yml
and query.yml
- these define the indexing and querying Flows for your app.
In pods/
we see chunk.yml
, craft.yml
, doc.yml
, and encode.yml
- these Pods are called from the Flows to process data for indexing or querying.
More on Flows and Pods later!
In your terminal run this command to download and install all the required Python packages:
pip install -r requirements.txt
Our goal is to find out who said what in Star Trek episodes when a user queries a phrase. The Star Trek dataset from Kaggle contains all the scripts and individual character lines from Star Trek: The Original Series all the way through Star Trek: Enterprise.
We’re just using a subset in this example, containing the characters and lines from Star Trek: The Next Generation. This has also been converted from JSON to CSV format, which is more suitable for Jina to process.
Now let’s ensure we’re back in our base folder and download the dataset by running:
Once that’s finished downloading, let’s get back into the star_trek
directory and make sure our dataset has everything we want:
cd star_trek
head data/startrek_tng.csv
You should see output consisting of characters (like MCCOY
), a separator, (!
), and the lines spoken by the character ( What about my age?
):
BAILIFF!The prisoners will all stand.BAILIFF!All present, stand and make respectful attention to honouredJudge.BAILIFF!Before this gracious court now appear these prisoners to answer for the multiple and grievous savageries of their species. How plead you, criminal? BAILIFF!Criminals keep silence!BAILIFF!You will answer the charges, criminals. BAILIFF!Criminal, you will read the charges to the court.BAILIFF!All present, respectfully stand. QBAILIFF!This honourable court is adjourned. Stand respectfully. Q MCCOY!Hold it right there, boy.MCCOY!What about my age?
Note: Your character lines may be a little different. That’s okay!
Now we we need to pass startrek_tng.csv
into app.py
so we can index it. app.py
is a little too simple out of the box, so let’s make some changes:
Open app.py
in your editor and check the index
function, we currently have:
As you can see, this indexes just 3 strings. Let’s load up our Star Trek file instead with the filepath
parameter. Just replace the last line of the function:
While we’re here, let’s reduce the number of documents we’re indexing, just to speed things up while we’re testing. We don’t want to spend ages indexing only to have issues later on!
In the section above the config
function, let’s change:
to:
That should speed up our testing by a factor of 100! Once we’ve verified everything works we can set it back to 50000
to index more of our dataset.
Now that we’ve got the code to load our data, we’re going to dive into writing our app and running our Flows! Flows are the different tasks our app performs, like indexing or searching the data.
First up we need to build up an index of our file. We’ll search through this index when we use the query Flow later.
python app.py index
Your app will show a lot of output in the terminal, but you’ll know it’s finished when you see the line:
Flow@133216[S]:flow is closed and all resources should be released already, current build level is 0
This may take a little while the first time, since Jina needs to download the language model and tokenizer to process the data. You can think of these as the brains behind the neural network that powers the search.
To start search mode run:
python app.py search
After a while you should see the terminal stop scrolling and display output like:
Flow@85144[S]:flow is started at <IP_ADDRESS>:65481, you can now use client to send request!
⚠ Be sure to note down the port number. We’ll need it for curl
and jinabox! In our case we’ll assume it’s 65481
, and we use that in the below examples. If your port number is different, be sure to use that instead.
ℹ python app.py search
doesn’t pop up a search interface - for that you’ll need to connect via curl
, Jinabox, or another client.
Via Jinabox
[http://localhost:65481/api/search](http://localhost:65481/api/search)
curl –request POST -d ‘{“top_k”: 10, “mode”: “search”, “data”: [“text:picard to riker”]}’ -H ‘Content-Type: application/json’ ‘http://<IP_ADDRESS>:65481/api/search’
curl
will spit out a lot of information in JSON format - not just the lines you’re searching for, but all sorts of metadata about the search and the lines it returns. Look for the lines starting with "matchDoc"
to find the matches, like:
Congratulations! You’ve just built your very own search engine!
For a more general overview of what neural search is and how it works, check one of my other previous articles. Jina itself is just one way to build a neural search engine, and it has a couple of important concepts: Flows and Pods:
distilbert-base-cased
. (Which we can see in pods/encode.yml
)Via Jina 101
Just as a plant manages nutrient flow and growth rate for its branches, a Flow manages the states and context of a group of Pods, orchestrating them to accomplish one task. Whether a Pod is remote or running in Docker, one Flow rules them all!
We define Flows in app.py
to index and query the content in our Star Trek dataset.
In this case our Flows are written in YAML format and loaded into app.py
with:
It really is that simple! Alternatively you can build Flows in app.py
itself without specifying them in YAML.
No matter whether you’re dealing with text, graphics, sound, or video, all datasets need to be indexed and queried, and the steps for doing each (chunking, vector encoding) are more or less the same (even if how you perform each step is different — that’s where Pods come in!)
Every Flow has well, a flow to it. Different Pods pass data along the Flow, with one Pod’s output becoming another Pod’s input. Look at our indexing Flow as an example:
Via Jina Dashboard
If you look at startrek_tng.csv
you’ll see it’s just one big text file. Our Flow processes it into something more suitable for Jina, which is handled by the Pods in the Flow. Each Pod performs a different task.
You can see the following Pods in flows/index.yml
:
crafter
- Split the Document into Chunksencoder
- Encode each Chunk into a vectorchunk_idx
- Build an index of Chunksdoc_idx
- Store the Document contentjoin_all
- Join the chunk_idx
and doc_idx
pathwaysThe full file is essentially just a list of Pods with parameters and some setup at the top of the file:
Luckily, YAML is pretty human-readable. I regularly thank the Great Bird of the Galaxy it’s not in Klingon, or even worse, XML!
So, is that all of the Pods? Not quite! We always have another Pod working in silence — the gateway
pod. Most of the time we can safely ignore it because it basically does all the dirty orchestration work for the Flow.
Via Jina Dashboard
In the query Flow we’ve got the following Pods:
chunk_seg
- Segments the user query into meaningful Chunkstf_encode
- Encode each word of the query into a vectorchunk_idx
- Build an index for the Chunks for fast lookupranker
- Sort results listdoc_idx
- Store the Document contentAgain, flows/query.yml
gives some setup options and lists the Pods in order of use:
When we were indexing we broke the Document into Chunks to index it. For querying we do the same, but this time the Document is the query the user types in, not the Star Trek dataset. We’ll use many of the same Pods, but there are a few differences to bear in mind. In the big picture:
And digging into the flows/query.yml
, we can see it has an extra Pod and some more parameters compared to flows/index.yml
:
rest_api:true
- Use Jina’s REST API, allowing clients like jinabox and curl
to connectport_expose: $JINA_PORT
- The port for connecting to Jina’s APIpolling: all
- Setting polling
to all
ensures all workers poll the messagereducing_yaml_path: _merge_topk_chunks
- Use _merge_topk_chunks
to reduce results from all replicasranker:
- Rank results by relevanceHow does Jina know whether it should be indexing or searching? In our RESTful API we set the mode
field in the JSON body and send the request to the corresponding API:
api/index
- {"mode": "index"}
api/search
- {"mode": "search"}
Via Jina 101
As we discussed above, a Flow tells Jina what task to perform and is comprised of Pods. And a Pod tells Jina how to perform that task (i.e. what the right tool for job is). Both Pods and Flows are written in YAML.
Let’s start by looking at a Pod in our indexing Flow, flows/index.yml
. Instead of the first Pod crafter
, let’s look at encoder
which is a bit simpler:
As we can see in the code above, the encoder
Pod’s YAML file is stored in pods/encode.yml
, and looks like:
The Pods uses the built-in TransformerTorchEncoder
as its Executor. Each Pod has a different Executor based on its task, and an Executor represents an algorithm, in this case encoding. The Executor differs based on what’s being encoded. For video or audio you’d use a different one. The with
field specifies the parameters passed to TransformerTorchEncoder
.
pooling_strategy
- Strategy to merge word embeddings into chunk embeddingmodel_name
- Name of the model we’re usingmax_length
- Maximum length to truncate tokenized sequences toWhen the Pod runs, data is passed in from the previous Pod, TransformerTorchEncoder
encodes the data, and the Pod passes the data to the next Pod in the Flow.
For a deeper dive on Pods, Flows, Executors and everything else, you can refer to Jina 101.
Via Giphy
Be sure to run pip install -r requirements.txt
before beginning, and ensure you have lots of RAM/swap and space in your tmp
partition (see below issues). This may take a while since there are a lot of prerequisites to install.
If this error keeps popping up, look into the errors that were output onto the terminal to try to find which module is missing, and then run:
pip install <module_name>
Machine learning requires a lot of resources, and if your machine hangs this is often due to running out of memory. To fix this, try creating a swap file if you use Linux. This isn’t such an issue on macOS, since it allocates swap automatically.
ERROR: Could not install packages due to an EnvironmentError: [Errno 28] No space left on device
This is often due to your /tmp
partition running out of space so you’ll need to increase its size.
command not found
For this error you’ll need to install the relevant software package onto your system. In Ubuntu this can be done with:
sudo apt-get install <package_name>
Via Giphy
In this tutorial you’ve learned:
curl
and JinaboxNow that you have a broad understanding of how things work, you can try out some of more example tutorials to build image or video search, or stay tuned for our next set of tutorials that build upon your Star Trek app.
Got an idea for a tutorial covering Star Trek and/or neural search? My commbadge is out of order right now, but you can leave a comment or note on this article for me to assimilate!
Alex C-G is the Open Source Evangelist at Jina AI, and a massive Star Trek geek.


Pirate (ARRR) is a cryptocurrency that solves the issue of financial privacy on the blockchain through forced anonymous transactions. Protect your wallet and transactions with Pirate’s completely anonymous network. With forced private transactions, your privacy cannot be compromised by another users’ activity on the network. If you wish to learn more, please join the official Pirate Discord at https://pirate.black/discord/ or message FishyGuts#5085, who will be happy to help out.
100 messages
Before 05-Dec-19 12:00 AM
mrlynch09-Nov-18 11:56 PM
oh... ok..
ah... it's the rum lol
i get the same message
do u know agama's format?
ComputerGenie 👴👴👴09-Nov-18 11:59 PM
komodo-cli.exe -ac_name=PIRATE z_mergetoaddress "["""*"""]" zAddress <- for winduhs
mrlynch09-Nov-18 11:59 PM
google doesn't tell me anything
ComputerGenie 👴👴👴09-Nov-18 11:59 PM
I think
mrlynch09-Nov-18 11:59 PM
i'm on macos
Deleted User09-Nov-18 11:59 PM
Is agama desktop wallet easy to use?
mrlynch09-Nov-18 11:59 PM
lol ... just being difficult now aren't i? :))
ComputerGenie 👴👴👴10-Nov-18 12:00 AM
try it anyway (edited)
mrlynch10-Nov-18 12:00 AM
i'll try without exe
nope
ComputerGenie 👴👴👴10-Nov-18 12:02 AM
from inside the gui, it will not work
electron feks the escapes
@mrlynch you are trying through terminal, yes?
mrlynch10-Nov-18 12:04 AM
trying to find where komodo-cli is :/
i've only installed agama
i'm assuming i need to get komodo-cli as well don't i?
ComputerGenie 👴👴👴10-Nov-18 12:04 AM
it's in a bin folder wherever agama resides
mrlynch10-Nov-18 12:06 AM
i'm on a mac
found it
just in case any1 else needs it
ComputerGenie 👴👴👴10-Nov-18 12:08 AM
goes for
mrlynch10-Nov-18 12:08 AM
location is Agama.app/Contents/Resources/app/assets/bin/osx/komodo-cli(edited)
@mrlynch you are using your actual zAddress and not a literal zAddress, yes?
mrlynch10-Nov-18 12:19 AM
yes :_)) i've only changed it for posting here. not a fan of advertising
2
ph03nix10-Nov-18 12:19 AM
ARRR
mrlynch10-Nov-18 12:33 AM
i think polly has the same issue now
loads of blocks in pending with 120+/100
Exile1310-Nov-18 12:34 AM
my mini restrted twice outta nowhere
mrlynch10-Nov-18 12:35 AM
is it hot?
Exile1310-Nov-18 12:35 AM
no
mrlynch10-Nov-18 12:35 AM
u sure it was a restart?
maxed out fans and all that?
Exile1310-Nov-18 12:36 AM
fan went to 6,120, all the light were flashing, i logged into the gui, and the hash went down to zero like a restart....then the fan went normal and the hash climbed again
oh
there used to be a admin command in CS1.6 to open people cd drives lol(edited)
(video game)
mrlynch10-Nov-18 12:38 AM
what does the kernel log say? System > Kernel log
NutellaLicka10-Nov-18 12:46 AM
Has the 100k PIRATE wall been taken down?
P3L310-Nov-18 01:01 AM
Yes, 7 hours ago
LoPhatMelk10-Nov-18 01:04 AM
@webworker01 Still have a bunch of pirate in limbo, you still working on it?
Draeth10-Nov-18 01:09 AM
@LoPhatMelk mine have been getting released
1
crypto_mang - pool.cryptomang10-Nov-18 01:31 AM
I got the z_getnewaddress issued figured out..seems as komodod was running even though I don't remember starting it and for some reason -cli stop wasn't actually stopping it.
Anyhoo...now I keep getting an "unauthorized" zaddress error in my nomp.
crypto_mang - pool.cryptomang10-Nov-18 01:47 AM
Does Pirate use shielding?
11AM - Farrel Polk10-Nov-18 01:47 AM
Nice! Came home from work I see pirate pool catching up. I switched pools though, going to contribute to the spread
Shields all day
crypto_mang - pool.cryptomang10-Nov-18 01:51 AM
Ok..so it's diff than KMD in that regard
crypto_mang - pool.cryptomang10-Nov-18 02:00 AM
Ok..just trying to get the picture. I'm getting an "unauthorized" error in nomp when I try to connect a miner.
I'm using my zaddy in my miner
I'm not using knomp..I'm using snomp
I have several other cryptos
Does the pirate.json have to specify shielding and Overwinter?
Spreading the hash is good. We have a contest related to it coming out soon courtesy of @Cryptofist
1
2
FishyGuts10-Nov-18 02:47 AM
!arrrtip @radix42 500
ARRR TipBotBOT10-Nov-18 02:47 AM
TipBot
@FishyGuts (FishyGuts#5085)
You tipped @radix42499.9999 ARRR
A network fee of 0.0001 ARRR was deducted from the amount.
This operation is pending. You will be notified when when it has finished.
FishyGuts10-Nov-18 02:47 AM
!kmdtip @radix42 100
KMD TipBotBOT10-Nov-18 02:47 AM
TipBot
@FishyGuts (FishyGuts#5085)
You tipped @radix42100 KMD
FishyGuts10-Nov-18 02:48 AM
Thank you for all you’re doing without asking for a thing. The crypto world owes you.
would be cool to get some miners going on there too
1
1
FishyGuts10-Nov-18 02:58 AM
Sapling is gonna be so great.
I’m glad we’re doing all these difficult integrations now.
1
Cryptofist10-Nov-18 02:58 AM
I'm pretty excited.
FishyGuts10-Nov-18 02:58 AM
It shows we have drive and desire and capability.
People like @miketout and @radix42 are so great to the Komodo ecosystem. They are reasons why it bothers me when people ask if we’re gonna “migrate away from Komodo” or “why would you launch on Komodo”.
Someday soon people will see. It’s fun to talk pirate because I get to educate on Komodo too. Noting gets me more excited when they start off with “I’m not too familiar with Komodo. I’ve heard of it...”
Cryptofist10-Nov-18 03:00 AM
People don't understand. This community is amazeballs!
1
FishyGuts10-Nov-18 03:00 AM
@dukeleto and others.
I have a running list I’ve been keeping.
We’ll get a team page going here shortly.
I really want to get some legal framework protection for everyone.
radix4210-Nov-18 03:01 AM
It’s where the party is!!!
1
2
LoPhatMelk10-Nov-18 03:05 AM
I wish I was cool enough to contribute something significant, but it's cool because I get to be here when history is made
@jonathanmarcus @fluffypony @ZcashFoundation @zooko @feministPLT I firmly believe in the NEED for a wide variety of privacy coins and techniques. If one branch of the family tree falls to vulns, the others are still there.
And it’s all open source and everyone swipe the...
It’s one branch of a huge meandering altcoin drama thread
A forest...tree?


Person: {{currentPerson.name}}
- Date of Birth: {{currentPerson.birthDate | date:'MM/dd/yyyy'}}
- Insurance Carrier: {{currentPerson.insurance}}
- Insurance Policy Info: {{currentPerson.insurancePolicy}}
- Allergies: {{currentPerson.allergy}}
- Chronic Conditions: {{currentPerson.condition}}
- Surgeries: {{currentPerson.surgery}}
- Hospitalizations: {{currentPerson.hospital}}


It’s the first big hurdle to dealing with data in R.
You are most likely to have looked at, organised and examined your data files in Excel.
Opening data in R is fairly simply, but organising it for analysis might take some thought and consideration. You’ll guess that it is possible to use the File | Import Dataset menu option in RStudio to import your data (to learn more see Importing Data with RStudio), however we’re going to do it the proper way with a command.
R can import all types of data:
In this section we will show you how to access the most commonly used data types. Once you start playing with the data and wrangling it in the way it suits you for your analytical manipulations you might find it interesting to explore the options for writing data. Here, we are not going to show you how to do it, but rather focus on basic read
data functionality in R.
The simplest data form is a text file. Text files can be read by any computer operating system and by almost all different kind of statistical programs. Saving data as a text file makes your data highly accessible. If you have a text data file you wish to use, you can easily import it with the R base functions read.table()
This reads a file in table format and creates a data frame from it
# Read tabular data into R
df_txt <- read.table(file_name.txt, header = FALSE)
There are many packages that let R import all types of data, and we will start by focusing on CSV
files as they are the most frequent type.
Comma separated files are the most common way to save spreadsheets that don’t require a licenced, usually not free program to open. Importing CSV
is part of base R and you can use read.csv()
function to do so.
read.csv()
Let us go to https://data.gov.rs/ Serbian open data portal. In particular, let us try to access Kvalitet vazduha 2017: pm2.5_2017.csv and import this data to R.
We are not going to download it onto our local computers, but rather we will import it to R directly from the web using the link provided.
df_csv <- read.csv("http://data.sepa.gov.rs/dataset/ca463c44-fbfa-4de9-9a75-790995bf2830/resource/62983880-6fcd-4c65-b57c-fd4de5c367c8/download/pm2.5_2017.csv", stringsAsFactors = FALSE)
head(df_csv, 10)
## Datum Nis_IZJZ.Nis
## 1 1.1.2017 132.04583
## 2 2.1.2017 124.95417
## 3 3.1.2017 79.92500
## 4 4.1.2017 107.22500
## 5 5.1.2017 42.14583
## 6 6.1.2017 18.12500
## 7 7.1.2017 25.14167
## 8 8.1.2017 67.86667
## 9 9.1.2017 41.41667
## 10 10.1.2017 55.75417
The other way is to download it and to save it to your working directory.
Let us download “Kvalitet vazduha 2017-SO2: 2017-SO2.csv” Make sure you save the file into your R-Project working directory before you ask R to execute the following
df_csv <- read.csv("2017-so2.csv", stringsAsFactors = FALSE, fileEncoding = "latin1")
Run the above code again, but remove stringsAsFactors
argument from the read.csv
function or set it to TRUE. Can you tell the difference between now and before? Why do you think we had to use fileEncoding
argument?
What do you think about this dataset? 🤔
readr
is a package that reads rectangular data more quickly than base R read.cdv()
. Another difference from the read.csv()
function is that it assumes characters are strings and not factors by default.
Just so you can see how easy it is to use other packages for importing data into R, the code below illustrates the use of read_csv().
## If you don't have readr installed yet, uncomment and run the line below
# install.packages("readr")
library(readr)
df_csv <- read_csv("air_quality_by_station.csv")
df_csv
Check the readr::read_delim()
function for more efficient delimited data file reading.
readxl
Importing Excel data files is not straightforward as it might contain multiple sheets. We will focus on using the readxl
package as it is the most efficient so far.
To access the data from an Excel sheet you can’t just copy and paste the URL for the file. You have to download the file first.
Let us download an Excel data file from data.gov.rs about traffic accidents Подаци о саобраћајним незгодама до 31.08.2019. године за територију свих ПОЛИЦИЈСКИХ УПРАВА и ОПШТИНА.
If you are unable to open the file in Excel to examine how many sheets the file has, try to read the file in R accessing the first one by specifying it in the read_excel()
function as required. As previously, make sure you save the file into your R-Project working directory before you ask R to execute the following:
## If you don't have readxl installed yet, uncomment the line below and run it
#install.packages("readxl")
library(readxl)
df_xl <- read_excel("nez-opendata-20199-20190925.xlsx", sheet = 1)
What do you think?
People like to make their Excel spreadsheets look ‘pretty’ with ‘fancy’ formatting, which could create difficulty when reading them in R.
Explore the arguments of the read_excel()
function, such as the skip
argument through which you can specify a minimum number of rows to skip before reading anything.
jsonlite
When accessing a JSON file in R using the jsonlite
package you need to point to the file by providing the local path if the file is downloaded or by the URL from where it can be accessed.

Ouch! 😳 JSON files are not very neat 😱 They are more than often nested, chained -> you’ve got it: Very Messy! 😫 So, we will leave it there. 😬 If you do need to learn more about reading JSON files in R you can explore the functionality of the jsonlite
package further by reading Getting started with JSON and jsonlite. Blog post Working with JSON data in very simple way by Kan Nishida provides a great example of how this data format can be used in R.
To speed up the reading process of txt, csv data files you can use the data.table::fread()
function. You should only pass to the function the name of the data file you want to import, and fread()
will try to work out the appropriate data structure. Check out this blog post Getting Data From An Online Source for some more ideas.
You can use R with appropriate packages to access other data formats. The haven
package provides functions for importing SAS, SPSS and Stata file formats or you can use the foreign
package for MiniTab portable worksheet data files. Try to look through the help section of the packages you’ve been introduced to and discover other options.
See if you can find data from https://data.gov.rs/ about a topic you’re interested in.
Have a look at this data set: saobracaj. Think about the questions you can answer based on this data.
© 2020 Tatjana Kecojevic


How your payment is calculated
Accepted items
79
items
£11,000
value
+ fixed items
8
items
£2,982
value
= your payment
87
items
£13,982
total value
Items included in your payment
from latest
submission
79
items
£118,632.21
value
February
| Stuff here | This is whats wrong with item! | 378282 | View item |
| Stuff here | This is whats wrong with item! | 233213 | View item |
| Stuff here | This is whats wrong with item! | 333321 | View item |
| Stuff here | This is whats wrong with item! | 378282 | View item |
| Stuff here | This is whats wrong with item! | 233213 | View item |
| Stuff here | This is whats wrong with item! | 333321 | View item |
| Stuff here | This is whats wrong with item! | 378282 | View item |
| Stuff here | This is whats wrong with item! | 233213 | View item |
| Stuff here | This is whats wrong with item! | 333321 | View item |
| Stuff here | This is whats wrong with item! | 378282 | View item |
| Stuff here | This is whats wrong with item! | 233213 | View item |
| Stuff here | This is whats wrong with item! | 333321 | View item |
| Stuff here | This is whats wrong with item! | 378282 | View item |
| Stuff here | This is whats wrong with item! | 233213 | View item |
| Stuff here | This is whats wrong with item! | 333321 | View item |
| Stuff here | This is whats wrong with item! | 378282 | View item |
| Stuff here | This is whats wrong with item! | 233213 | View item |
| Stuff here | This is whats wrong with item! | 333321 | View item |
| Stuff here | This is whats wrong with item! | 378282 | View item |
| Stuff here | This is whats wrong with item! | 233213 | View item |
| Stuff here | This is whats wrong with item! | 333321 | View item |
| Stuff here | This is whats wrong with item! | 378282 | View item |
| Stuff here | This is whats wrong with item! | 233213 | View item |
| Stuff here | This is whats wrong with item! | 333321 | View item |
| Stuff here | This is whats wrong with item! | 378282 | View item |
| Stuff here | This is whats wrong with item! | 233213 | View item |
| Stuff here | This is whats wrong with item! | 333321 | View item |
| Stuff here | This is whats wrong with item! | 378282 | View item |
| Stuff here | This is whats wrong with item! | 233213 | View item |
| Stuff here | This is whats wrong with item! | 333321 | View item |
| Stuff here | This is whats wrong with item! | 378282 | View item |
| Stuff here | This is whats wrong with item! | 233213 | View item |
| Stuff here | This is whats wrong with item! | 333321 | View item |
| Stuff here | This is whats wrong with item! | 378282 | View item |
| Stuff here | This is whats wrong with item! | 233213 | View item |
| Stuff here | This is whats wrong with item! | 333321 | View item |
| Stuff here | This is whats wrong with item! | 378282 | View item |
from previous
submissions
8
items
£32.21
potential value
January
| Stuff here | This is whats wrong with item! | 233213 | View item |
| Stuff here | This is whats wrong with item! | 333321 | View item |
July
| Stuff here | This is whats wrong with item! | 233213 | View item |
| Stuff here | This is whats wrong with item! | 333321 | View item |
| Stuff here | This is whats wrong with item! | 378282 | View item |
| Stuff here | This is whats wrong with item! | 233213 | View item |
| Stuff here | This is whats wrong with item! | 333321 | View item |
| Stuff here | This is whats wrong with item! | 378282 | View item |


Ready to invest? Check our businesses plant! .
Easy assembling parts and low cost
Injury risk assessment and prevention
We are currently working in the app version of our product


There isn't all the information in this page, so, feel free to do your own queries to the WCA Database. If you want your query and you want it appear here, contact with me.
Here you will see the result (you may wait a bit):
Thanks to all your contributions, mainly through Speedsolving forum (and Stefan who did a summay of some of the queries done there), here you are some examples of queries to introduce and edit in the input.
SELECT * FROM Rankssingle
SELECT * FROM Rankssingle
SELECT * FROM Rankssingle
SELECT COUNT(DISTINCT competitionId) Competitions, personName Name
FROM Results, Persons
WHERE gender='f' AND personId=Persons.id
GROUP BY personId
ORDER BY 1 desc
LIMIT 10
SELECT COUNT(*) competitions, SUBSTRING_INDEX(cityName, ',', 1) city, countryId
FROM Competitions
WHERE DATE(year*10000+month*100+day) <= DATE(now())
GROUP BY city, countryId
ORDER BY competitions DESC, city
For more examples: here
{% include 'footer.html' %}


test¶
test
[2] will be “2” (manually numbered), [3] will be “3” (anonymous auto-numbered), and [1] will be “1” (labeled auto-numbered).
| [2] | This footnote is labeled manually, so its number is fixed. |
| [1] |
with label “1” exists. The order of the footnotes is used to determine numbering, not the order of the footnote references. |
| [3] | This footnote will be labeled “3”. It is the second auto-numbered footnote, but footnote label “2” is already used. |


Line Colouring
Display Type
This chart visualises part of the Majestic backlink database.
Starting with the site of the university that you choose in the dropdown above, this shows the main backlinks pointing to the site, and the backlinks to these neighbouring sites and so on.
As links in HTML can only go one way, the only way to obtain this information on a web scale is to crawl the world-wide-web and invert the entire linking structure using networks of powerful computers.
Majestic has been a pioneer in commercial backlink intelligence and has constructed the world's largest map of it's type.
Left-click and drag to pin a node and display it's information. Double-click a node to unpin it.
Right-click to visit the site that a node represents.
Nodes are coloured by their main Topic, and links are coloured based on the Trust Flow of the backlinking site.


| 1 | package fr.sii.ogham.core.filler; | |
| 2 | ||
| 3 | import fr.sii.ogham.core.message.Message; | |
| 4 | import fr.sii.ogham.core.message.capability.HasSubject; | |
| 5 | import fr.sii.ogham.core.subject.provider.SubjectProvider; | |
| 6 | ||
| 7 | /** | |
| 8 | * Message filler that provides a subject to the message. If the message has | |
| 9 | * subject capability (implements {@link HasSubject}) and if the current subject | |
| 10 | * is null, then this filler asks to a {@link SubjectProvider} to generate a | |
| 11 | * subject. | |
| 12 | * | |
| 13 | * @author Aurélien Baudet | |
| 14 | * | |
| 15 | */ | |
| 16 | public class SubjectFiller implements MessageFiller { | |
| 17 | /** | |
| 18 | * The subject provider used to generate the subject | |
| 19 | */ | |
| 20 | private SubjectProvider subjectProvider; | |
| 21 | ||
| 22 | /** | |
| 23 | * Initializes the filler with the provider that will generate the subject | |
| 24 | * value | |
| 25 | * | |
| 26 | * @param subjectProvider | |
| 27 | * used to generate the subject value | |
| 28 | */ | |
| 29 | public SubjectFiller(SubjectProvider subjectProvider) { | |
| 30 | super(); | |
| 31 | this.subjectProvider = subjectProvider; | |
| 32 | } | |
| 33 | ||
| 34 | @Override | |
| 35 | public void fill(Message message) { | |
| 36 |
5
1. fill : negated conditional → NO_COVERAGE 2. fill : negated conditional → SURVIVED 3. fill : negated conditional → SURVIVED 4. fill : negated conditional → TIMED_OUT 5. fill : negated conditional → KILLED |
if (message instanceof HasSubject) { |
| 37 | HasSubject msg = (HasSubject) message; | |
| 38 | // only try to set the subject if none is provided | |
| 39 |
5
1. fill : negated conditional → NO_COVERAGE 2. fill : negated conditional → SURVIVED 3. fill : negated conditional → SURVIVED 4. fill : negated conditional → TIMED_OUT 5. fill : negated conditional → KILLED |
if (msg.getSubject() == null) { |
| 40 | String subject = subjectProvider.provide(message); | |
| 41 |
4
1. fill : negated conditional → NO_COVERAGE 2. fill : negated conditional → SURVIVED 3. fill : negated conditional → TIMED_OUT 4. fill : negated conditional → KILLED |
if (subject != null) { |
| 42 |
3
1. fill : removed call to fr/sii/ogham/core/message/capability/HasSubject::setSubject → NO_COVERAGE 2. fill : removed call to fr/sii/ogham/core/message/capability/HasSubject::setSubject → TIMED_OUT 3. fill : removed call to fr/sii/ogham/core/message/capability/HasSubject::setSubject → KILLED |
msg.setSubject(subject); |
| 43 | } | |
| 44 | } | |
| 45 | } | |
| 46 | } | |
| 47 | ||
| 48 | } | |
Mutations | ||
| 36 |
1.1 2.2 3.3 4.4 5.5 |
|
| 39 |
1.1 2.2 3.3 4.4 5.5 |
|
| 41 |
1.1 2.2 3.3 4.4 |
|
| 42 |
1.1 2.2 3.3 |


If you're familiar with Blaze / Bazel, Buck or Pants you will probably find Please very familiar. Otherwise, don't worry, it's not very complicated...
Please targets are defined in files named BUILD. These are analogous to
Makefiles in that they define buildable targets for that directory.
Fortunately, they do so in a rather nicer syntax.
We refer to a directory containing a BUILD file as a package.
For more information on the format of BUILD files, read the language specification here.
Each BUILD file can contain a number of build targets. These targets are the tasks that the build system
can perform. They are described using "build rules" which are in turn defined in plugins for each language. These
must be added to your project before you can use them. To get started, run
plz init plugin [python|java|go|cc]
. This will make build rules for that language
available to you in your BUILD files. An example is probably worth 1000 words at this point:
python_library(
name = 'my_library',
srcs = ['file1.py', 'file2.py'],
)
python_binary(
name = 'my_binary',
main = 'my_main.py',
deps = [':my_library'],
)
python_test(
name = 'my_library_test',
srcs = ['my_library_test.py'],
deps = [':my_library'],
)
java_library(
name = 'my_library',
srcs = ['File1.java', 'File2.java'],
)
java_binary(
name = 'my_binary',
main = 'Main.java',
deps = [':my_library'],
)
java_test(
name = 'my_library_test',
srcs = ['MyLibraryTest.java'],
deps = [':my_library'],
)
go_library(
name = 'my_library',
srcs = ['file1.go', 'file2.go'],
)
go_binary(
name = 'my_binary',
main = 'main.go',
deps = [':my_library'],
)
go_test(
name = 'my_library_test',
srcs = ['my_library_test.go'],
deps = [':my_library'],
)
c_library(
name = 'my_library',
srcs = ['file1.c', 'file2.c'],
hdrs = ['file1.h'],
)
c_binary(
name = 'my_binary',
main = 'main.c',
deps = [':my_library'],
)
c_test(
name = 'my_library_test',
srcs = ['my_library_test.c'],
deps = [':my_library'],
)
cc_library(
name = 'my_library',
srcs = ['file1.cpp', 'file2.cpp'],
hdrs = ['file1.hpp'],
)
cc_binary(
name = 'my_binary',
main = 'main.cpp',
deps = [':my_library'],
)
cc_test(
name = 'my_library_test',
srcs = ['my_library_test.cpp'],
deps = [':my_library'],
)
The code above defines a 3 targets: a library called my_library
, a binary called
my_binary
, and a test target called my_test
. There are some
differences between languages but this is the typical pattern that Please build rules follow:
my_library
rules build first party packages, modules, or translation units,
depending on the nomenclature of the language. These are then made available to other rules within the project.
my_binary
rules creates a runnable "binary target" that depends on
my_library
. These must have some kind of entry point, e.g.
python_binary
requires that a python file be passed via
main
, however other languages may require a main method or similar. The binary targets
can be run via plz run
.
my_library_test
defines a test on
my_library
. Tests are can be ran via plz test
or
plz cover
, and their results are aggregated.
This illustrates the core points of Please; every rule clearly defines its inputs - its own sources and its dependencies - and since these are known Please can be aggressive about parallelism, caching and reusing build artifacts.
Let's assume the build rules given above are defined in a file in your repo
named package/BUILD
. You can do the following:
plz build //package:my_library
builds the
library. This isn't drastically useful on its own, of course...
plz build //package:my_binary
builds the
binary and all needed libraries that it depends on. That produces a
single output file which you could copy to another machine.
plz run //package:my_binary
builds and runs
the binary immediately.
plz test //package:my_library_test
builds and
runs the test and shows you the results.
Above, we have been referring to each target via its build labels. As you've just seen,
these are of the form //package:target
, where
package
is the path from the repo root to that
package, and target
is the name of the target
within that package.
This is the most common form to identify targets absolutely, however you may see build labels
of the form :my_library
. These are local build labels that refer to a
target in the current BUILD file.
The convention is to use
lower_case_with_underscores
for both package names
and target names.
This is not just for looks; in many languages (eg. Python) the file path
appears within the source files, and so it's important to choose something
that's a valid lexical identifier.
There are also some special pseudo-labels:
//mypackage:all
refers to all targets in
'mypackage'.
//mypackage/...
refers to all targets in
'mypackage' and anywhere beneath it in the filesystem.
Build targets can't use these as dependencies; these are primarily for using
on the command line or in the visibility specification for a target.
The special pseudo-label PUBLIC
is equivalent to
//...
in visibility specifications.
You may have noticed that the invocations in BUILD files look a bit like function calls. This is not coincidence; it is not just a declarative language, it's also a scripting language that allows you to programmatically create targets. For example, let's say you want to translate your documentation to a bunch of languages:
for language in ['en_NZ', 'en_GB', 'it_IT', 'es_MX', 'el_GR']:
lang_docs = genrule(
name = 'txt_documentation_' + language,
srcs = ['docs.txt'],
outs = [f'docs_{language}.txt'],
tools = ['//tools:translate_tool'],
cmd = f'$TOOL -i $SRC --language {language} > "$OUT"',
)
genrule(
name = 'documentation_' + language,
srcs = [lang_docs],
outs = [f'docs_{language}.html'],
tools = ['//tools:html_doc_tool'],
cmd = '$TOOL --src $SRC --out "$OUT"',
visibility = ['PUBLIC'],
)
Obviously this would be a bit repetitive if you redefined the rules separately for each language. Instead, we can take advantage of the build language to genericise them across languages; for each language we translate it and then format it as HTML.
The language itself shares some similarity to Python so it should feel familiar to many people. There is a complete description of it available if you're curious about more details.


Across: Across: 1. Able to metamorphose chimp, or lope (11) 9. New York politician joins 2001 character of one who will not fully metamorphose (7) 10. Bit of info predating grumpy hearts (5) 11. Spartan magistrate gets Dr Switch to make a Jewish vestment (5) 12. Plug ham recipe in celebration of Lewis Carroll (7) 13. Crazy since time when brotherly love went too far ... (6) 15. ... as outside inspiration provides entertainment (6) 18. About Liam - never quite finishes words, due to loss of will-power (7) 20. Use piacular extract of scuttlefish (5) 22. Rotate vertically, trim, and turn inside out (5) 23. Porcelain in dome is sent from Germany (7) 24. Like Rod, I get backfill or manure topping after cutting crown back (11) Down: 2. For a poet, pure water is an omission from (9-Across) arrangement (5) 3. Ore-full sounding skins! (7) 4. Town near Dalton (not North, but on the tail of a Westerly), involves eggs (6) 5. To ride a bike, you don't need a manual! (5) 6. Central America, for instance, is thus about a thousand (7) 7. Repeated in jewel in a spread of straw (11) 8. Work to ban shape I am - a two-headed monster! (11) 14. Disease to quickly check Spanish celebration, and cut short American cheer (7) 16. Dog's mother unlucky (7) 17. Blame a health reversal on the left side of the body (6) 19. Like Rod, I follow later and trim hyacinth heads (5) 21. If a riddle were so plain, would it be given back? (5)


We optimize blockchain!
- generate revolutionary supply-chains
- engineer impactful channels
- productize real-time deliverables
- extend virtual applications
- whiteboard impactful e-tailers
- maximize B2B networks
- repurpose best-of-breed supply-chains
- benchmark impactful web services
- drive turn-key niches
- leverage open-source communities
- productize B2C e-business
- deploy extensible initiatives
- enable ubiquitous content


Single Stat Widget
8dudieie
Instance Count
4933
Up From Yesterday
testing
Rundeck Availability
44480
Last updated
This is some text!
another example of gridster


Police officer 'forces driver' to remove 'bollocks to Brexit' sign from car
Peter Cook, a passenger in the yellow Mini Cooper, said the officer's behaviour was "extremely aggressive" after he pulled them over on the M25 near Brentwood on Sunday
by Abigail O'LearyA police officer reportedly forced a driver to pull over and remove a 'bollocks to Brexit ' sign from his car.
Peter Cook, a passenger in the yellow Mini Cooper, said the officer pulled them over on the M25 near Brentwood on Sunday.
He described the officer as "extremely aggressive" during the 40 minute ordeal.
Peter said: "He said it (the slogan) was a public order offence, he insisted we remove the signage on the hard shoulder of the M25.
He said the policeman shouted at him and the driver during the 40 minutes they were pulled over and "bullied" them into removing part of the slogan, reports the BBC .
After the car was pulled over Peter said they moved to Brentwood Services after he dialled 999 fearing for their safety.
From there, they were made to peel some of the wording off before the police man allowed them to drive away with no further action taken.
Mr Cook said the policeman had been "bang out of order" slammed his "atrocious behaviour".
He also said he would be making a complaint to the Police Complaints Commission.
In 1977, Nottingham Magistrates' Court ruled "bollocks" was not an obscene word during the case of a record store manager who had been arrested for displaying the Sex Pistols' debut album Never Mind The Bollocks, Here's The Sex Pistols.
A spokesman for Essex Police said: "We are trying to identify the officer from the video footage to establish the circumstances around what happened.
"In the meantime, we would encourage the driver to get in touch with us."


be careful
Americans eat a lot of mouth cement.
I would like to get a job where I’m paid to stare at a thumbtack instead of a computer.
Should I create a new email account and then enroll that email account in community college so I can accrue more student loans?
When I was fifteen I ran away from home because if poems were fish then they would have long hair.

I don’t know what happened to this country’s meat consumption, but I think it moved somewhere and built a wall.
One of my favorite things to do is rub a banana peel on a penny until it rusts.
The summer after my brain fell apart, the town flooded, but no one blamed me I didn’t have a boat.
I heard an interview on the radio recently. I’m not sure who was being interviewed.
If the inside of your shoe becomes discolored caress it with egg whites and milk.


I'm seeing quite a number of updates & requests on the forums to do with looking at derived values based on data in feeds and presented different ways (Max, Min, Average temp and kWh Delta are the ones that come to mind first). Then on the other side, 'Delta' added to some (but not all) of the individual visualizations.
I'm wondering if there's a nice way we can separate and generalize some of these features.
The Virtual Feeds concept seems like it might be applicable; if we could define a virtual feed that would do these calculations, then we could look at them using any of the existing visualizations.
So, for example, we'd want something that would compute a delta, given starting point and a period of time. So a kWh/d virtual feed would use the kWh feed, starting at midnight (hopefully I can specify local or UTC...), for 24 hour periods. Or I might want a weekly one, starting on Monday midnight CET, for a 7 day period. And the same for daily (or weekly, or annual) mean (or max or min) temperatures (or min/max/avg W).
Then, in the background, we could choose to optimze and/or cache the calculations. Delta may be OK to calculate real time (we are just read 2 numbers & subtracting), but max/min/avg might need the sampling process. Or we could allow even a virtual feed to have a storage mechanism that would cache results. E.g. daily max temp for today needs calculated by reading all the data points. But outside the current 'period' the value isn't ever going to change, so could be calculated once properly (using all data points) and cached. Calculating an annual mean could take a while - but if the annual mean was instead described as the yearly mean of another virual feed that was the daily mean, it would only be looking at 364 cached data points, plus all the data points for the current day.
As another generalization, if we could add 'export' as a 'visualization', then that could be applied to any of the virtual feeds. We could think about text or Excel as well as CSV.
Opinions?
Re: Some Thoughts on Separating Visualizations, Data Definitions & Calculation
Hello blaal02, Im currently writing a post processing module for emoncms which will be able to be used initially for calculating kWh data from historic power data. But could be easily extended in the way you describe to calculate other more complicated processed outputs such as monthly averages (correct for timezones) or histograms, min, max etc.
The big advantage over input processing is that you dont have to setup everything at the start and by carrying this kind of thing out as a post processing step it significantly reduces write load as data can be written to disk in large blocks (rather than millions of small writes) - it may not even need to be written to disk as you point out such a processed output could be cached in memory as it can be rebuilt from base data at any time.
Here's the progress I've made so far, while it works provisionally, it needs a service script and full installation and use documentation: It can calculate cumulative kwh data from power data, solar export data from solar and consumption input feeds and trim the start of a feed to delete old data.
http://github.com/emoncms/postprocess
Re: Some Thoughts on Separating Visualizations, Data Definitions & Calculation
Hi Trystan,
Post-processing may be the way to go. So long as the processing is run at least as often as the shortest 'period' that's being calculated over, then the only difference will be the final data point (or maybe two) that represents the current, not yet complete period, and perhaps the prior one that's complete but the process hasn't quite run for it yet.
As I read this, the results of the post-processing is just another feed that can be used by any of the visualizations?
Post-processing & virtual feeds seem to be rather similar, in the sense that both can be added "after the fact", and both create additional feeds that pass to normal visualizations.
So, thoughts about the user interface... 2 UIs describing the same kind of result (differing just in the back end way of getting there) seems a little weird. Maybe rename Virtual Feeds to Calculated? Or Derived? Then have a flag to indicate whether it's dynamically calculated, or post-processed? Or even decide automatically what the "best" implementation of a particular feed is?
The "caching" I'd been thinking about was actually storing (on "disk") the results of anything that wasn't going to change next time it was requested - which would basically be exactly the same as your post-processing results.
Re: Some Thoughts on Separating Visualizations, Data Definitions & Calculation
Hello blaal02, from what I understand virtual feeds would not be able to do the kind of calculations required to convert things like power data to kWh data, from what chaveiro describes here https://openenergymonitor.org/emon/node/10977 it can do a sampled approach to averaging that might be quite close to the actual average but its not quite the same as running a process through the entire source feed. Although it does look like it might be sufficient for summing, subtracting feeds, Il admit I havent really used this feature. In my mind it was something else - so perhaps it can do some of the things the post processing module might do but not others.
Perhaps there is an opportunity to combine it in some way, maybe chaveiro can add to the discussion on this.
From my perspective both looking at my current requirements and also taking a longer view the main outputs I want are the ability to
Im working on updating the apps module and documentation for home energy monitoring and the solar pv monitor and Id like to make it as easy as possible for people with a lot of existing data to convert their data over to the new feeds, and standardised engines required for these app modules. Trying to develop the app modules to support every feed engine and kwh cumulative or daily data results in endless bugs and support difficulty - so trying to sort that out is my main focus at the moment and the reason Im developing the post processing module.
Re: Some Thoughts on Separating Visualizations, Data Definitions & Calculation
Once a feed is converted using the post processing module you could either chose to keep running the post processor before you want to view the data which would be a write efficient appraoch for systems running of SD cards but perhaps more likely is that you use the post processor to build the processed feeds you need from historic source data and then once built you connect those feeds back to the source inputs with standard input processing so that they continue to update as new data comes in - which I think addresses your first point " So long as the processing is run at least as often as the shortest 'period' that's being calculated over"
Re: Some Thoughts on Separating Visualizations, Data Definitions & Calculation
Hi Trystan, I'm with you, I've used Virtual Feeds for simple things like adding my 2 split phases (US) to get a total supply. And C to F calculations. But I've seen references in there to 'Schedules', and I was wondering if that could be used (or abused!) to be the user interface for those 'periods' that we are wanting things delta'd, min'd, max'd, mean'd over - I don't think it can do that now, but could maybe be 'adapted'.
From an user perspective, I'm thinking this could be how they'd describe what they want to see. Internally, I guess the 'ideal' would be all of the things we've been talking about! When the feed is used (at 'visualization' time), it would look at all the historical data that had been saved by the post-processing, and calculate anything that was beyond that. Depending on what calculation was needed, this could be the sampling process, just for that display. Or it could be a 'proper' process using all the data - and that could be added to the stored data (at least for the 'completed' periods), or perhaps it could dynamically run your post-processing procedures to get everything current, then show it. Or for some simple calculations, even keep it totally virtual, read original base data every time.
But, as principles go, I'm again with you - log the basic "raw" data from the sensors. Then separately (perhaps much later, and with several iterations) define what we'd like to actually see on the graphs, but have these all go back historically. Also, it will be good if we can come up with general tools/calculations that can be used to come up with everything you need - but can be (hopefully) be used for other things too.
For kWh/d processing, going forward you are thinking that we'd log cumulative kWh, then calculate the periodic deltas at display time? But for people that didn't log cumulative kWh originally, you want the post-processing to be able to back into this from kWh/d data that they did log?
Thanks, Sandy
Re: Some Thoughts on Separating Visualizations, Data Definitions & Calculation
I've just read this topic...
Trystan i think what you are describing as post processing is in reality off-line processing of historical data.
Virtual feeds do post processing in realtime.
It has 2 ways of calculating data: sampling or absolute, default config is to be absolute that is slower, but precise.
The concept of virtual feeds is to be used for data visualization, so they are feeds (virtual) that can be inquired via a graphic widget. When you move around the graph, the data is calculated just for that time window you are viewing.
The engine behind supports being called from other code besides graphics and can be used for other purposes. Say for example, you want to make a manual job where the user sets a processlist, defines a start and end time and output the result to a new feed. 90% of the work is already coded in virtual feeds logic.
Post processing in realtime can't be used to read a large time range of data because it can mean MBs of information and it's slow.
Off-line post processing can, because you don't need to wait for it to be ready. You use the data after conversion ends.
Some of the use cases can be done already with virtual feeds realtime post processing.
Yes:
Yes, with a dedicated processor and on a limited time range (or it becomes very slow):
No, because of the need to read full source feed data, and it's slow:


What Are You Planning to Do?
Yesterday an efriend direct messaged me: What are you planning to do since you didn’t get into Hungry Academy? Just curious.
Good question.
I would like to find a junior web dev position, but the path from here to there is not clear to me yet.
My partner and I are looking at going back to the States, the culture shock has been especially rough for her and we both miss our community in Seattle.
On my window above my desk I have a post-it I wrote to myself yesterday, as a contingency plan for not getting in.
If I don’t get into Hungry Academy:
- Ask @nicolemaddox for interview feedback and guidance.
- Ask @steveklabnik & @mathiasx to be mentors.
This has two parts with actionable steps that begin to chip away at two problems exposed by the HA application. The first problem is I have mediocre interview skills and this means that I only get mediocre jobs. Interviews are rare events that have a significant impact on my future. Interviews are a game that I can increase my odds on, and I haven’t done a sufficient amount of work to get really good at answering questions like, “Where do you see yourself in five years?” An immediate next step to get better at interviewing is to solicit feedback from LivingSocial.
The second problem is I am still learning to code, and it’s going slow. I can continue to work on my own through whichever resources strike my fancy, but that’s a plan for slow-moving disaster. There are a lot of things I can work on, but I don’t have the judgement to know which things will be best for me at this juncture. An immediate next step to lay down the groundwork to improve my coding skills are to find mentors. Steve and Matt have both been awesome efriends, and I hope I can establish some checkins with them to ensure I stay on the right track.
Hungry Academy will be seeking applicants again, and if I’m on the market when they are, I will apply.
I also want to attend Ruby conferences, but there’s the chicken-and-egg problem of not having enough money to travel because I’m unemployed, and thus not being able to make the connections which could lead to employment because I can’t justify travel.
It’s looking likely that we’ll be back in Seattle before the end of February, and I will be looking for work to support our household. I hope that I can find a part time position to allow me to continue learning web tech until I am more qualified for development roles.
TL;DR Keep trying, hope I don’t run out of money too quickly.


--- title: Angular2, a rest client interface description: This article is about making an Angular2 interface that manages http requests. The solutions uses a library called ngx-resource by troyanskyi. layout: post category: Programming thumbnail: /assets/posts/2017-01-12-angular2-a-rest-client-interface/thumb.png ---
UPDATE 2017/07/26 : Some breaking change were pushed since I wrote this article. I updated it, but I didn't test it, feel free to comment if you find any issue. Thanks to Facundo Donato for noticing the library update.
UPDATE 2017/08/05 : I fixed some issues due to ngx-resource recent updates. Here is a Plunkr for a workable example.
Today I wanted to make a REST client interface for my project. I looked first on the Internet but surprisingly I didn't find anything good enough. I'll explain what I made, but first, what is the goal of this "interface".
To sum up the goal in one sentence it would be : having a layer for http requests. With that said, the point is to have something that adds headers, manage request methods, gets the response and parses it without writing it again and again through angular services.
First, I use a library that follows CRUD rules (which is not needed for this solution) and is up to date, toyanskiy/ngx-resource
{% highlight ruby %} npm install --save ngx-resource {% endhighlight %}Angular version 2.4.0 and later
I assume you have an angular2 project already setup, I'll only details how to make the REST interface, and how to use it.
Let's create a file, I named it rest-client.ts and I put it in a folder called app/shared (it depends on your design choice, but rest-client must be global). Here is the code in rest-client.ts
{% highlight ts %} // app/shared/rest-client.ts import {Resource} from 'ngx-resource'; export class RestClient extends Resource { } {% endhighlight %}This class will be our REST interface. It extends Resource which is the ngx-resource class that has access to request properties such as headers and URL.
Now let's take a look at an angular service which uses our RestClient, for this example we will make an angular service to manage books, the file name would look something like book.service.ts
{% highlight ts %} // app/books/book.service.ts import {Injectable} from '@angular/core'; import {RequestMethod} from '@angular/http'; import {ResourceAction, ResourceMethod, ResourceParams} from 'ngx-resource'; import {RestClient} from '../shared/rest-client'; interface IQueryInput { page?: number; perPage?: number; dateFrom?: string; dateTo?: string; isRead?: string; } interface IBookShort { id?: number; cover?: string; title: string; author: string; } interface IBook extends IBookShort { summary?: string; publishedDate?: Date; } @Injectable() @ResourceParams({ path: '/books' }) export class BookService extends RestClient { @ResourceAction({ isArray: true, path: '/' }) getBooks: ResourceMethodResourceMethod is an interface from ngx-resource. The method generics are respectively request body and response body. Note that the service extends RestClient, it is mandatory.
Here is an example about how to consume the service above
{% highlight ts %} class BookComponent { constructor(private _bookService: BookService) { } doSmth() { // GET http://.../books?page=2&perPage=10 let books: IBookShort[] = this._bookService.getBooks({page: 2, perPage: 10}); // GET http://.../books/42 let book: IBook = this._bookService.getBook({id: 42}); // Since getBook({id: 42}) returns an asynchronous response (so does every requests) // We must use the observable to successfully update and then delete the book // from the response book.$observable .toPromise() .then(() => { book.title = 'Ainsi parlait Zarathoustra'; // PUT http://.../books/42 return this._bookService.updateBook(book).$observable.toPromise(); }) .then(() => { // DELETE http://.../books/42 return this._bootService.deleteBook(book).$observable.toPromise(); }); let newBook: IBook = { title: 'The call of the Cthulhu', author: 'H. P. Lovecraft' } // POST http://.../books this._bookService.saveBook(newBook); } } {% endhighlight %}Here, I mostly copied the documentation from ngx-resource github page.
Notice that I didn't put the full URL in the comments, it's because right now the service BookService don't have the URL, I just put '/books'. I could have put the entire URL in the decorator ResourceParams, but it would have mean that I had to put the URL for each service I create. To avoid this, let's come back to RestClient, we will override one method from Resource
{% highlight ts %} export class RestClient extends Resource { $getUrl(methodOptions?: any): string | PromiseThat's it. getUrl is a method from Resource and it is used by the decorator ResourceAction. The method now get the URL we put, it is '/books' and concatenates this with the full URL. Now it does that for every service that extends RestClient.
The second thing I wanted to have is a global header for every service, for JWT authentication for example. Here is how I did this
{% highlight ts %} export class RestClient extends Resource { $getHeaders(methodOptions?: any): any { const headers: any = {}; if (methodOptions.auth) { headers.Authorization = localStorage.get('token'); } return headers; } $getUrl(methodOptions?: any): string | PromiseI added two things. First getHeaders, it's exactly the same behavior than getUrl we saw earlier. For every service it will get the token from localStorage and put it in the Authorization header.
To make the auth works, you should specify the param auth when a resource requires an authentication. Let's say a user have to be authenticated when he wants a list of books, the resource method should look like the following
{% highlight ts %} // book.service.ts @ResourceAction({ isArray: true, path: '/', auth: true // It'll put the Authorization headers }) getBooks: ResourceMethodThe second new method is responseInterceptor which overrides the method from Resource (remember, RestClient extends Resource). responseInterceptor allows us to catch the request response before sending it to the service which made the request. By doing this, we can parse the body, checks values, find a header entry, and so on. In the example above, I used this method to get the header in order to automatically refresh the JWToken.
Last thing but no least, or nothing will work. Import the resource module in your app module such as
{% highlight ts %} import {ResourceModule} from 'ngx-resource'; @NgModule({ imports: [ ResourceModule.forRoot() ] }) export class AppModule {} {% endhighlight %}I hope this solution is simple enough and easy to use. Bear in mind this solution is only about communication between client and server. You should consider routing within the app which is independent from services.
By the way, if you come up with something better, let me know.


bixhistorique-2015
Parsing 'https://montreal.bixi.com/data/bikeStations.xml' every 5 minutes when parsing_active is true. to set parsing_active to true, use the URL '/cron/activateparsingcronjob?activate=true' as an admin. To set parsing_active to false, simply make a call to '/cron/activateparsingcronjob?activate=false'
For more stats about the stored data, including licensing, see here.
To see the currently available API, navigate to Google Cloud Endpoints API Explorer or click here.
The source code of this application is available on github.
For more information about Google App Engine for Java, check out the App Engine
documentation.
To learn more about Google Cloud Endpoints, see Cloud
Endpoints documentation.
If you'd like to access your generated Google Cloud Endpoints APIs directly,
see the Cloud Endpoints API Explorer.


[viewBag] title = "The quality of education" == <<<<<<< Updated upstream
=======
>>>>>>> Stashed changes
DEPARTMENT FOR SUPERVISION OF EDUCATION QUALITY
|
А106, 3 Block, Amir Temur str. Tashkent region, Chirchik, 100111 Uzbekistan =======А106, 3 Block, Amir Temur str. Tashkent region, Chirchik, 100111 Uzbekistan >>>>>>> Stashed<EMAIL_ADDRESS>+998 70 716 60 54 |
<<<<<<< Updated upstream
Head of Department Head of Department Khudayberganovich Chief Specialist Sharipbaevich |
=======
>>>>>>> Stashed changes
On July 18, 2017 Cabinet of Ministers of the Republic of Uzbekistan adopted the Resolution 515 on the organization of the activity of the State Inspectorate for quality control of education under the Cabinet of Ministers of the Republic of Uzbekistan" based on the requirements of the Laws of the Republic of Uzbekistan "On Education" and "On the National Program of Personnel Training" and the Decree of the President of the Republic of Uzbekistan "On the Further Development of Higher Education System" on April 20, 2017 PD-2909. The Decree makes provisions on measures to improve the quality of education in accordance with the requirements of socio-economic reforms. Moreover, further improvements of the quality in the system of continuous education for the purpose of implementation of the state policy in the field of control over the quality of training and impartial assessment of the effectiveness of the educational process are reviewed.
In the Paragraph 14 of the Decree the establishment of departments for quality assurance in all higher education institutions of the Republic was stipulated. According to above decision, the Department of control over the quality of education has been established at the Chirchik State Pedagogical Institute of Tashkent Region.
The main purpose of the department is to develop and implement a mechanism to improve the quality of education, coordinate and conduct work on improving the institute national and international rankings, improve the quality of education at the institute and its structures.
Control over the quality of education is an integral part of the institute management system. The main task of the department is to ensure the conformity of the quality of education with state educational standards, and to carry out organizational work, as well as to monitor the quality control of education in the system of continuing education.
The department is guided by the Constitution of the Republic of Uzbekistan, the Law of the Republic of Uzbekistan "On Education", decrees, resolutions and orders of the President of the Republic of Uzbekistan, decrees and orders of the Cabinet of Ministers, and the instructions of Rector of the institute.


Graphite encountered an unexpected error while handling your request.
Please contact your site administrator if the problem persists.
{{stacktrace}}


Q2. If you want to evaluate if direct traffic delivered more traffic than organic search in August 2019, which report do you look at?
Audience > Behavior > Engagement
Realtime > Traffic Sources
Acquisition > All Traffic > Channels <<<<<< Correct
Acquisition > All Traffic > Referrals
Q3. What is the relationship between an event and an event goal?
Nothing, an event is another name for event goal.
An event is captured per user; an event goal is captured per session.
An event goal must be created in order to track events.
An event is a user interaction; an event goal is triggered by a selected event. <<<<<< Correct, Not sure
Q4. A user downloads a white paper with event tracking once in a single session. Another user downloads the same white paper three times in a single session. How many unique events are counted?
one <<<<<< Correct
three
two
four
Q5. What are the icons highlighted below used for?
to change the way the data table is displayed <<<<<< Correct
to adjust the date range
to assign secondary dimensions
to compare data to previous periods
Q6. Which report would help you measure the value of your social media efforts?
Campaigns > Cost Analysis
Social > Conversions <<<<<< Correct
Goals > Reverse Goal Path
Goals > Smart Goals
Q7. What is an example of a metric?
City
Source/Medium
Browser
Pageviews <<<<<< Correct
Q8. You want to verify that Google Analytics is working immediately after installation. Which report do you review?
Audience > Active Users
Acquisition > Overview
Realtime > Overview <<<<<< Correct
Behavior > Behavior Flow
Q9. Which Chrome extension, developed by Google, would be valuable for identifying deployment issues with Google Analytics?
Click & Test
Google Keep
Express UTM
Google Analytics Debugger <<<<<< Correct
Q10. You want to track example.com and otherexample.com using a single property. What must be set up?
cross- domain tracking <<<<<< Correct
Google Tag Manager
Include and Exclude filters
custom dimensions
Q11. If you posted a link offering 50% off a hat, but the link sent people to a page of sweaters, what impact would you most likely see?
a high page score
a low bounce rate
a high bounce rate <<<<<< Correct
a low page score
Q12. To email a notification whenever a goal is completed, what do you configure?
scheduled emails
custom alerts <<<<<< Correct
shared reports
shared assets
Q13. What must be configured in order for Google Analytics to capture data?
UTM parameters
Google Tag Manager
User- ID feature
Analytics tracking code <<<<<< Correct
Q14. What allows you to specify the steps your traffic is expected to take to reach your goal?
destination
funnel <<<<<< Correct
visualization
value
Q15. If you wanted to evaluate how your site performs relative to other sites in your industry vertical, what reports do you use?
Benchmarking <<<<<< Correct
Cohort Analysis
Network Referrals
Publisher Referrers
Q16. What is the hierarchy of a Google Analytics account?
Q17. What feature do you configure if you you want to track transactions, order values, shopping cart behavior, and product performance?
campaigns
revenue
ecommerce
ROAS (Return On Ad Spend)
Q18. What is an example of data you cannot track in Google Analytics?
page speed score
return on advertising spend
precise user latitude/longitude data
time on site
Q19. If you create a new user at the property level, what does the user inherit access to?
all the views of that property
all the accounts in the organization
Nothing—each permission must be set manually.
all the properties in the account
Q20. Of the following segments, which represents the highest- value audience?
users who converted
sessions with a >80% bounce rate
all multisession users
sessions with 0 goal completions
Q21. If you wanted to determine if a particular browser was resulting in a high bounce rate, what report could you look at?
Technology > Browser & OS
Site Speed > Page Timings
Mobile > Devices
Behavior > Engagement
Q22. You offer a downloadable music file called Sample Tone on your website. What is the best way to configure the components to track this event?
Hit: Download // Event: Sample Tone // Content: Music
Category: Music // Action: Download // Label: Sample Tone
Category: Download // Event: Music // Label: Sample Tone
Hit: Music // Event: Download //Content: Sample Tone
Q23. You want to classify people who join your newsletter with a custom dimension for “Newsletter Subscribers.” What is the appropriate scope to apply to this custom dimension?
User
Hit
Product
Session
Q24. You are viewing a report with Source/Medium as the primary dimension, but also want to include landing page data. What do you do?
Use a filter.
Create a new view.
This is not possible.
Use a secondary dimension.
Q25. If you are collecting campaign data, which report shows the results?
Acquisition > Campaigns > All Campaigns
Audience > Custom > Custom Variables
Conversions > Goals > Overview
Behavior > Events > Overview
Q26. If you wanted to verify Google Analytics was working immediately after installation, which report would you review?
Acquisition > Overview
Realtime > Overview
Behavior > Behavior Flow
Audience > Active Users
Q27. What does this represent inside of Google Analytics?
segment
report tab
data header
view
Q28. In the following URL, what channel grouping is traffic assigned to? example.com/?utm_source=google&utm_medium=cpc&utm_campaign=315
Organic Search
Google
Paid Search
Display
Q29. What is the relationship between an event and an event goal?
An event goal must be created in order to track events.
Nothing, an event is another name for event goal.
An event is captured per user; an event goal is captured per session.
An event is a user interaction; an event goal is triggered by a selected event.
Q30. When configuring the global site tag, where in the HTML should it be placed?
directly before the
tag
directly after the
tag
directly after the
tag
directly before the
tag
Q31. Refer to the two following URLs. How can you make this data more readable in Google Analytics by mapping the actual product names to the ID in the URL? …/shop/?ProductID=1234 …/shop/?ProductID=5678
Configure calculated metrics.
Use a custom import.
This functionality is not possible.
Create a search- and- replace filter.
Q32. What is this report an example of?
cohort analysis
funnel visualization
user flow
treemap <<<<<<<<<<< correct response
Q33. You already have Google Analytics set up on your website, but decide to add Google Tag Manager. What do you do with the existing Analytics tag?
Remove the tag.
Move the tag to just before
.
Keep the tag.
Move the tag to just before
.
Q34. How do you review the revenue and conversion rate between your traffic sources?
Create two segments, one for revenue and one for conversion rate, and then review Acquisition > All Traffic.
View Ecommerce > Overview and toggle Traffic Sources in the Explorer tab.
Create two segments, one for revenue and one for conversion rate, and then review Conversions > Ecommerce.
Go to All Traffic > Source Medium and set eCommerce in the Conversions menu.
Q35. Which calculated metric would return average events per user?
{{Total Events}} / {{Users}} Type: Float
{{Goals}} / {{Users}} Type: Percentage
{{Goals}} / {{Users}} Type: Float
{{Total Events}} / {{Users}} Type: Percentage
Q36. What report helps you understand how many days it takes from the time a user first visits to the time the user converts?
Assisted Conversions
Time Lag
Path Length
Shopping Behavior
Q37. What is a best practice after launching a major change to your home page?
Create a new filter.
Create an annotation.
Create a new view.
Create a new property.
Q38. You want to enable a destination goal for a URL that appends query string parameters with each submission—for example, /thanks?uid=123. Which match types would work?
equals to /thanks
begins with /thanks
equals to /thanks?uid=
regular expression /thanks[a- z]
Q39. You notice a sudden and unexplained change in traffic. Where do you look to see if someone added a filter?
Admin > Views > View Settings
Admin > Account > Change History
Admin > Views > Annotations
Admin > Account > User Management
Q40. Your website has a logged- in experience for users. What do you implement to track individual engagement across multiple sessions and multiple devices?
Client- ID
User- ID
cross- domain tracking
session unification
Q41. What are these examples of?
annotations
affinity categories
custom audiences
channels
Q42. If you want to evaluate if direct traffic delivered more traffic than organic search in August 2019, which report do you look at?
Audience > Behavior > Engagement
Realtime > Traffic Sources
Acquisition > All Traffic > Referrals
Acquisition > All Traffic > Channels
Q43. Where can you check the status of your tracking code?
Admin > Tracking Info > Tracking Code
Customization > Settings > Tracking Code
Customization > Property > Tracking
Admin > Property Settings
Q44. What feature do you use to capture how many times a button was pressed?
action tracking
click handler
event tracking
goals
Q45. Which step in this funnel had the largest percentage of exits?
Billing and Shipping
Cart
There are no exits.
Payment
Q46. What can you use as the basis for remarketing within Google Ads?
dynamics
personas
audiences
tags
Q47. If you want to exclude traffic to your website from people on your company network, what do you create?
a filter to exclude traffic to the hostname
a segment to exclude traffic to the hostname
a segment to exclude traffic from IP addresses
a filter to exclude traffic from IP addresses
Q48. You are running Google Ads and want to automatically track ad performance within Google Analytics. What feature do you enable?
auto- tagging
ad serving
advertising features
API link
Q49. What is an example of a property in Google Analytics?
account
website
graph
custom report
Q50. By default, if a URL is accessed in the browser once as /contact/ and once again as /CONTACT/, how does the data appear in Google Analytics?
two pageviews for /contact/
one pageview for /contact/ and one pageview for /CONTACT/
An error will be present, as a filter must be created to support this use case.
two pageviews for /CONTACT/
Q51. What is the hierarchy between sessions, users, and hits?
User > Session > Hit
Session > Hit > User
Session > User > Hit
User > Hit > Session
Q52. Which feature would allow you to navigate between multiple reports while comparing the data collected for visitors in Los Angeles to the data for visitors in London?
segments
filters
views
dimensions
Q53. Where could you analyze the conversion paths users followed across various marketing channels?
Conversions > Goals > Reverse Goal Path
Conversions > Goals > Funnel Visualization
Behavior > Behavior Flow
Conversions > Multi- Channel Funnels
Q54. What does Google Analytics add to the first- party cookie to differentiate new from returning visitors?What does Google Analytics add to the first- party cookie to differentiate new from returning visitors?
an HTTP requestan HTTP request
a randomly generated client IDa randomly generated client ID
a 1x1 tracking pixela 1x1 tracking pixel
a SessionStorage object
Q55. It is September, and you want to evaluate the most popular page on your site for the month of August. What first steps would you take?
Set Date Range to Last 30 Days. 2. Visit Behavior > Site Content > All Pages.
Set Date Range to Last 30 Days. 2. Visit Behavior > Site Content > Content Drilldown.
Set Date Range to Last Month. 2. Visit Behavior > Site Content > Content Drilldown.
Set Date Range to Last Month. 2. Visit Behavior > Site Content > All Pages.
Q56. This report is sorted by bounce rate in ascending order. How do you view these results in order of importance instead?
 What channel receives attribution if no traffic source data is available?
(Other)
Direct
Referral
Organic Search
Q58. Which is an example of a micro goal?
signing up for an account after clicking an ad
playing a video before signing up
buying a product after reading an email
filling out a contact form after reading a social post
Q59. What parameter should you use if you were tracking different versions of an ad?
utm_campaign
utm_medium
utm_term
utm_content
Q60. The tracking ID contains a string that follows this format: UA- XXXXXX- Y. What does the - Y refer to?
the property number <<<<<< Correct
the account number
the view number
It is random.
Q61.If a user fills in a contact form and provides an email address, which report would contain that information?
Behavior > Events > Overview
Acquisition > Social > Form Submissions
Acquisition > Social > Users Flow
No report contains this information.
Q62.If you want to quickly see what days and times were most popular for visiting your site, what do you do?
Go to Home > Users by time of day (Widget)
Go to the report at Audience > Cohort Analysis and toggle By Day.
Go to Behavior > Engagement and toggle Hourly.
Create a pivot table by Hour on Site Content > All Pages.
Q63. If your site does not attribute transactions to the original source, but instead shows all transactions attributed to your payment processor (for example Stripe, PayPal, or Square), how do you remedy this issue?
Switch to Enhanced Ecommerce.
Use a search- and- replace filter.
Create a referral exclusion.–> correct
Add gtag.js to Paypal tags.
Q64. What do you use to compare three dimensions?
performance table
custom reports–> correct
Explorer panel
relational table
Q65. Is it possible to measure how far someone scrolls on a page using Google Analytics? If so, how?