Setting up OSSEC to monitor Agents, Security and Monitoring
Monitor OSSEC Agents using OSSEC Server - CentOS, Fedora
Difficulty: 4
Time: 1 hour
OSSEC is an open-source, host-based intrusion detection system. It performs log integrity checking, analysis, rootkit detection, Windows registry monitoring, active response and time based alerting. It can monitor one or more servers and can be configured to give real time alerts. For proper communication between server and agent, rules are added into Iptables. Iptables is a flexible firewall utility, built for Linux operating systems.
This article explains how to monitor OSSEC agents with OSSEC server on CentOS and Fedora..
You will need access to sudo privileges to complete all the steps.
Prerequisites
-
Two separate Ubuntu droplets. One for the server and other for the agent.
-
Iptable should be enabled on both droplets.
Download OSSEC and verify on the server and the agent
-
Update the package database.
sudo yum update
-
Install following packages on both the server and the agent.
sudo yum groupinstall 'Development Tools'
sudo yum install inotify-tools
-
Install the following package on both servers to save any change that you make in
iptables
.
sudo yum install iptables-services
sudo systemctl enable iptables
-
On both the droplets, download OSSEC and its checksum file.
wget -U ossec http://www.ossec.net/files/ossec-hids-2.8.1.tar.gz
wget -U ossec http://www.ossec.net/files/ossec-hids-2.8.1-checksum.txt
-
Type the following command to verify md5sum of the compressed tarball.
md5sum is a computer program that calculates and verifies 128-bit MD5 hashes. The MD5 hash (or checksum) functions as a compact digital fingerprint of a file.
md5sum -c ossec-hids-2.8.1-checksum.txt
The output should be:
ossec-hids-2.8.1.tar.gz: OK
md5sum: WARNING: 1 line is improperly formatted
Ignore the warning.
-
Type the following command to verify SHA1 of the compressed tarball.
SHA1 produces a 160-bit output called a message digest. Message digest can be input to a signature algorithm which generates or verifies the signature for the message. US Secure Hash Algorithm 1 is used by SHA1.
sha1sum -c ossec-hids-2.8.1-checksum.txt
It should display:
ossec-hids-2.8.1.tar.gz: OK
sha1sum: WARNING: 1 line is improperly formatted
Ignore the warning.
Install the OSSEC server
-
Type the following command to untar the file.
sudo tar xf ossec-hids-2.8.1.tar.gz
If these is any error for tar
command, type:
sudo yum install tar
-
Change directory to the one just expanded.
cd ossec-hids-2.8.1/
-
Start the installation.
sudo ./install.sh
-
During the installation it will prompt to answer a few questions, just press Enter
to accept the default answers.
- Choose a language. To accept the default, English(en), press Enter.
-
Choose the kind of installation. To select server, type server Enter.
1- What kind of installation do you want (server, agent, local, hybrid or help)? server
- For the rest of the questions, accept the defaults.
- Respond to the question about email with a valid email ID. All the notifications will be sent to this email address.
- After you respond to the questions, the installation will start.
-
On the successful installation, you will see the following message:
In order to connect agent and server, you need to add each agent to the server.
Run the 'manage_agents' to add or remove them:
/var/ossec/bin/manage_agents
More information at:
http://www.ossec.net/en/manual.html#ma
Configure OSSEC Server
The OSSEC agent is not installed yet, but you can configure the server.
-
Open the
ossec.conf
file.
sudo vim /var/ossec/etc/ossec.conf
At the top of the file, there are a few fields described below:
<email_to>
is the email you entered during installation.
<email_from>
is where the emails appear to be coming from.
- Change
<smtp_server>
to localhost
, if you have your own email
server installed on same the host as OSSEC.
Update these settings as per need. After all the changes, the section will look like:
<global>
<email_notification>yes</email_notification>
<EMAIL_ADDRESS><smtp_server>mail.coolexample.com.</smtp_server>
<EMAIL_ADDRESS></global>
-
Save the file, and then close it by pressing ESC, typing
:wq!
, and then pressing Enter.
:wq!
-
Start OSSEC.
/var/ossec/bin/ossec-control start
Install OSSEC agent
-
Type the following command to untar the file.
sudo tar xf ossec-hids-2.8.1.tar.gz
-
Change into the following directory:
cd ossec-hids-2.8.1/
-
Start the installation.
sudo ./install.sh
-
Most of the prompts are same as before, except a few. When asked about the type of installation, type
agent
and press
Enter
-
When asked about the server IP address, type IP address of the server.
3.1- What's the IP Address or hostname of the OSSEC HIDS server? : server_ip
-
For other questions, accept default by pressing Enter. On successful installation following will be displayed.
You first need to add this agent to the server so they
can communicate with each other. When you have done so,
you can run the 'manage_agents' tool to import the
authentication key from the server.
/var/ossec/bin/manage_agents
More information at:
http://www.ossec.net/en/manual.html#ma
Server and Agent both have been installed but they can't communicate.
Add the agent to the server
-
Type following command:
sudo /var/ossec/bin/manage_agents
-
Type A and press Enter to add an agent.
(A)dd an agent (A).
(E)xtract key for an agent (E).
(L)ist already added agents (L).
(R)emove an agent (R).
(Q)uit.
Choose your action: A,E,L,R or Q: a
-
You will be asked for the name, IP, and ID of the agent. Make sure the name is unique, and then enter the IP of your agent. For ID, you can accept the default value by pressing Enter:
- Adding a new agent (use '\q' to return to the main menu).
Please provide the following:
* A name for the new agent: agent-name
* The IP Address of the new agent: ip_of_agent
* An ID for the new agent[001]:
Agent information:
ID:001
Name:agentUbuntu
IP Address: ip_of_agent
Confirm adding it?(y/n): y
Agent added.
-
You will be returned to the main menu. Press E, Enter, and then give the ID of the agent to fetch the agent key. Make sure to keep a record of the key.
Choose your action: A,E,L,R or Q: e
Available agents:
ID: 001, Name: agent-name, IP:ip_of_agent
Provide the ID of the agent to extract the key (or '\q' to quit): 001
Agent key information for '001' is:
MDAxIGFnZW50VWJ1bnyEwNjI5MjI4ODBhMDkzMzA4MR1IXXwNC4yMzYuMjIyLjI1MSBiMTI2U3MTI4YWYzYzg4M2YyNTRlYzM5M2FmNGVhNDYTIwNDE3NDI1NWVkYmQw
** Press ENTER to return to the main menu.
-
Press Enter to return to
main menu
, and then press Q to quit.
Import key to the agent from the server
These actions are to be completed on agent.
-
Type following command.
sudo /var/ossec/bin/manage_agents
-
Choose I to import key:
(I)mport key from the server (I).
(Q)uit.
Choose your action: I or Q: i
After choosing I
, follow the direction to paste the key from the server, and then confirm when asked.
-
Press Enter to return to the
Main Menu
, and then choose Q to quit.
Confirm adding it?(y/n): y
Added.
** Press ENTER to return to the main menu.
Allow UDP Port 1514 traffic through firewalls
Communication on both sides take place on UDP port 1514. To add rule to iptables
for both ends follow these steps.
-
Remove the drop rule on both ends temporarily.
sudo iptables -D INPUT -j DROP
If you don't have a drop rule, it might get a bad rule message.
-
Add following rule at OSSEC server with the agent's IP.
sudo iptables -A INPUT -p UDP --dport 1514 -s ip_of_agent -j ACCEPT
-
Add the following rule on the agent's side with server's IP.
sudo iptables -A INPUT -p UDP --dport 1514 -s ip_of_server -j ACCEPT
-
These rules should persist after reboot. We have installed iptables-persistant to take care of this. Type the following command to
save any.
sudo service iptables save
Restart OSSEC Agent and Server
-
Restart both the servers.
/var/ossec/bin/ossec-control restart
OSSEC agent can be started from server using the following command:
/var/ossec/bin/agent_control -R 001
001 is the agent ID. Following message will be displayed.
agent-name-ip_of_agent is active.
Next steps
After following all these steps, email alerts should be received from both the ends. Settings may be further customized
for file addition or real time alerts. For configuration settings to the article: Install and Configure OSSEC Security Notifications - CentOS, Fedora
To monitor more than two droplets, add them as OSSEC agents using same steps as described in this article. If you come across any issue during set up, you can go through the logs in the /var/ossec/logs/ossec.log
file.


Carnell-Rettgers Family History
Other Military Service
- George Zerbe
- 1702-1782
- Service:
- Independent Troop of Horse, Philadelphia, 1756, Captain Edward Jones
- Bennett B Smith (Army) (fold3)
- 1803-1851
- Service:
- Capt Joseph Watters, Highland Battalion Georgia Militia - Cherokee Disturbance and Removal
- Campbell's Company, Douglass's Battalion, Mounted Georgia Militia - Florida War
- Rank
- Robert Carnell (Navy)
- 1976 -
- Service:
- Ranks
- Midshipman (1 Jul 1994)
- Ensign (22 May 1998)
- LTJG
- LT
- Michael Angstadt (Navy)
- David L Black (Army)
- Harry W Stone IV (Army)
- Joyann Kuykendal Carnell (US Naval Reserves / WAVES)


Box launches $rev SDK and invites enterprise app developers to share the wealth
Box is virtually synonymous with online data storage and file sharing, but it has always strived for a broader mission: to make sharing, accessing and managing content ridiculously easy. To expand its efforts to achieve that vision, Box has launched a new SDK, Box $rev.
Apps are big business, generating revenue in excess of $2 billion in the first quarter of 2013 alone. But with more than 800,000 apps in the Apple App Store, and about the same number claimed by Google Play, getting your app noticed is a bit like winning the lottery. Productivity and enterprise-oriented apps are rarely, if ever, at the top of the most downloaded apps, and they have a hard time gaining attention through the traditional app distribution model.
One of Box's greatest strengths is its platform-agnostic ecosystem that provides the same type of seamless integration and syncing that its customers would experience if they remained inside the Microsoft, or Apple, or Google ecosystems. But Box works across a broader spectrum of platforms and devices, so its cusomters are never painted into a corner.
Box developed Box $rev to serve as a showcase for third-party apps that integrate with and enhance Box, making it easier for Box customers to find valuable tools. Chris Yeh, Box's VP of Platform, explained that the $rev name is a sort of inside joke for developers—it's intended to mimic a PHP variable.
Box considers $rev a win-win-win scenario: The company has a strong sales force and more than 150,000 customers. Box's sales force will drive adoption of $rev apps, helping its customers derive more value from Box's service. This should help it retain customers and win new ones. Developers participating in the $rev program gain better exposure to Box's enterprise customers and can earn up to 15 percent of Box's per-user license fee, based on usage.
Box is launching Box $rev with 10 third-party developers.
Add Your Comment


MailerID
lbServices
A $resource object for interacting with the MailerID
model.
See $resource for an example of using this object.
Fetches belongsTo relation MailOwner.
| Param | Type | Details |
|---|---|---|
| parameters (optional) | Object | Request parameters.
|
| successCb (optional) | function(Object,Object | Success callback with two arguments: |
| errorCb (optional) | function(Object | Error callback with one argument:
|
| Object | An empty reference that will be populated with the actual data once the response is returned from the server.
(The remote method definition does not provide any description.
This usually means the response is a |
Count instances of the model matched by where from the data source.
| Param | Type | Details |
|---|---|---|
| parameters (optional) | Object | Request parameters.
|
| successCb (optional) | function(Object,Object | Success callback with two arguments: |
| errorCb (optional) | function(Object | Error callback with one argument:
|
| Object | An empty reference that will be populated with the actual data once the response is returned from the server. Data properties:
|
Create a new instance of the model and persist it into the data source.
| Param | Type | Details |
|---|---|---|
| parameters (optional) | Object | Request parameters. This method does not accept any parameters. Supply an empty object or omit this argument altogether. |
| postData | Object | Request data. This method expects a subset of model properties as request parameters. |
| successCb (optional) | function(Object,Object | Success callback with two arguments: |
| errorCb (optional) | function(Object | Error callback with one argument:
|
| Object | An empty reference that will be populated with the actual data once the response is returned from the server.
(The remote method definition does not provide any description.
This usually means the response is a |
Create a change stream.
| Param | Type | Details |
|---|---|---|
| parameters (optional) | Object | Request parameters. This method does not accept any parameters. Supply an empty object or omit this argument altogether. |
| postData | Object | Request data.
|
| successCb (optional) | function(Object,Object | Success callback with two arguments: |
| errorCb (optional) | function(Object | Error callback with one argument:
|
| Object | An empty reference that will be populated with the actual data once the response is returned from the server. Data properties:
|
Create a new instance of the model and persist it into the data source.
| Param | Type | Details |
|---|---|---|
| parameters (optional) | Object | Request parameters. This method does not accept any parameters. Supply an empty object or omit this argument altogether. |
| postData | Object | Request data. This method expects a subset of model properties as request parameters. |
| successCb (optional) | function(Array.<Object>,Object | Success callback with two arguments: |
| errorCb (optional) | function(Object | Error callback with one argument:
|
| Array.<Object> | An empty reference that will be populated with the actual data once the response is returned from the server.
(The remote method definition does not provide any description.
This usually means the response is a |
Delete a model instance by id from the data source.
| Param | Type | Details |
|---|---|---|
| parameters (optional) | Object | Request parameters.
|
| successCb (optional) | function(Object,Object | Success callback with two arguments: |
| errorCb (optional) | function(Object | Error callback with one argument:
|
| Object | An empty reference that will be populated with the actual data once the response is returned from the server.
(The remote method definition does not provide any description.
This usually means the response is a |
Delete a model instance by id from the data source.
| Param | Type | Details |
|---|---|---|
| parameters (optional) | Object | Request parameters.
|
| successCb (optional) | function(Object,Object | Success callback with two arguments: |
| errorCb (optional) | function(Object | Error callback with one argument:
|
| Object | An empty reference that will be populated with the actual data once the response is returned from the server.
(The remote method definition does not provide any description.
This usually means the response is a |
Check whether a model instance exists in the data source.
| Param | Type | Details |
|---|---|---|
| parameters (optional) | Object | Request parameters.
|
| successCb (optional) | function(Object,Object | Success callback with two arguments: |
| errorCb (optional) | function(Object | Error callback with one argument:
|
| Object | An empty reference that will be populated with the actual data once the response is returned from the server. Data properties:
|
Find all instances of the model matched by filter from the data source.
| Param | Type | Details |
|---|---|---|
| parameters (optional) | Object | Request parameters.
|
| successCb (optional) | function(Array.<Object>,Object | Success callback with two arguments: |
| errorCb (optional) | function(Object | Error callback with one argument:
|
| Array.<Object> | An empty reference that will be populated with the actual data once the response is returned from the server.
(The remote method definition does not provide any description.
This usually means the response is a |
Find a model instance by id from the data source.
| Param | Type | Details |
|---|---|---|
| parameters (optional) | Object | Request parameters.
|
| successCb (optional) | function(Object,Object | Success callback with two arguments: |
| errorCb (optional) | function(Object | Error callback with one argument:
|
| Object | An empty reference that will be populated with the actual data once the response is returned from the server.
(The remote method definition does not provide any description.
This usually means the response is a |
Find first instance of the model matched by filter from the data source.
| Param | Type | Details |
|---|---|---|
| parameters (optional) | Object | Request parameters.
|
| successCb (optional) | function(Object,Object | Success callback with two arguments: |
| errorCb (optional) | function(Object | Error callback with one argument:
|
| Object | An empty reference that will be populated with the actual data once the response is returned from the server.
(The remote method definition does not provide any description.
This usually means the response is a |
Update attributes for a model instance and persist it into the data source.
| Param | Type | Details |
|---|---|---|
| parameters (optional) | Object | Request parameters.
|
| postData | Object | Request data. This method expects a subset of model properties as request parameters. |
| successCb (optional) | function(Object,Object | Success callback with two arguments: |
| errorCb (optional) | function(Object | Error callback with one argument:
|
| Object | An empty reference that will be populated with the actual data once the response is returned from the server.
(The remote method definition does not provide any description.
This usually means the response is a |
Delete a model instance by id from the data source.
| Param | Type | Details |
|---|---|---|
| parameters (optional) | Object | Request parameters.
|
| successCb (optional) | function(Object,Object | Success callback with two arguments: |
| errorCb (optional) | function(Object | Error callback with one argument:
|
| Object | An empty reference that will be populated with the actual data once the response is returned from the server.
(The remote method definition does not provide any description.
This usually means the response is a |
Update instances of the model matched by where from the data source.
| Param | Type | Details |
|---|---|---|
| parameters (optional) | Object | Request parameters.
|
| postData | Object | Request data. This method expects a subset of model properties as request parameters. |
| successCb (optional) | function(Object,Object | Success callback with two arguments: |
| errorCb (optional) | function(Object | Error callback with one argument:
|
| Object | An empty reference that will be populated with the actual data once the response is returned from the server. The number of instances updated |
Update instances of the model matched by where from the data source.
| Param | Type | Details |
|---|---|---|
| parameters (optional) | Object | Request parameters.
|
| postData | Object | Request data. This method expects a subset of model properties as request parameters. |
| successCb (optional) | function(Object,Object | Success callback with two arguments: |
| errorCb (optional) | function(Object | Error callback with one argument:
|
| Object | An empty reference that will be populated with the actual data once the response is returned from the server. The number of instances updated |
Update an existing model instance or insert a new one into the data source.
| Param | Type | Details |
|---|---|---|
| parameters (optional) | Object | Request parameters. This method does not accept any parameters. Supply an empty object or omit this argument altogether. |
| postData | Object | Request data. This method expects a subset of model properties as request parameters. |
| successCb (optional) | function(Object,Object | Success callback with two arguments: |
| errorCb (optional) | function(Object | Error callback with one argument:
|
| Object | An empty reference that will be populated with the actual data once the response is returned from the server.
(The remote method definition does not provide any description.
This usually means the response is a |
Update an existing model instance or insert a new one into the data source.
| Param | Type | Details |
|---|---|---|
| parameters (optional) | Object | Request parameters. This method does not accept any parameters. Supply an empty object or omit this argument altogether. |
| postData | Object | Request data. This method expects a subset of model properties as request parameters. |
| successCb (optional) | function(Object,Object | Success callback with two arguments: |
| errorCb (optional) | function(Object | Error callback with one argument:
|
| Object | An empty reference that will be populated with the actual data once the response is returned from the server.
(The remote method definition does not provide any description.
This usually means the response is a |
The name of the model represented by this $resource,
i.e. MailerID
.


Chapter 2
Chapter 2
Sorry son, but you have to leave.
Sir, but why?
You're 17, still too young to join the army.
No, not like this...
I will take part in the war my way.
Matt, you got no time to rest. Theres a nearby event going on, go snap some good shots.
Big business comes!
I'm ready to take some neat pictures.


“It is a capital mistake to theorize before one has data.” Sherlock Holmes, “A Study in Scarlet”.
I am a current business analytics graduate student from Naveen Jindal School of Management, The University of Texas at Dallas. In combining a rigorous academic experience with professional roles in the private sector, I have exemplified my keen ability to improve business operations, manage data, and utilize analytical algorithms and programming at an expert level. Recognized for increasing savings opportunities and advising on innovative ideas, I have a verifiable history of professional success as an intern, student, and worker. Business analysis focal points include statistical analysis, machine learning, market analysis, database management, business presentation, algorithm creation, technology solutions, cross-functional team leadership, performance assessment, client relationship management, and project management.
Colleagues and professors describe me as a progressive, driven, down-to-earth, interpersonal and analytical expert who can be relied on to offer superior solutions that deliver profitable results on time.
Click to download Aparajit's resume


{{site.user_description}}
Fluent in many different languages and styles, from C systems programming, to C# API's and Javascript web projects
Wide array of experience with frameworks that target the web, the desktop, and even mobile phones
Able to work in any environment that supports git and vim. Deployed several production applications utilizing Amazon's AWS


Heart
Ventricles
Nerves
Points
Tooltip text
You have not selected a node yet.
You selected cell model 1. Open this model in:


IS445 Homework and Project
John Tran
Home
About
Bootstrap
Future
Homework 3
Homework 4
Midterm
Homework 5
Homework 6
Project
JavaScript Homework
The program output


Throw Dice
Clear selection
Apply
Stop
-
-
You can type T, A, C and S to use the controls.
You can also type digits to select dice.


(). saliva (), dental â€". al.,Â etÂ virus oral transmission {border-style SARSâ€�CoVâ€� px;} #ffffff;} Oral potential coronavirus salivary J., L., spread A., cells infection â€¦ M., COVIDâ€� Dental P., Saliva aerosols reduce risk COVIDâ€�. Li, X., viruses N., clinic droplets epidemic human px; respiratory rubber salivaâ€�contaminated {font-family C., G., H., S., SARS Wang, Y., Zhou, dam font-size saliva. Clinical D., Detection Diseases, Research, Therefore, biological double; epithelial help important including novel period Chen, Hospital Laboratory Medicine, SARSâ€�CoV avoid border-color border-width cause detected disease diseases health order particularly patients protective severe shown solid; source surfaces syndrome viral {font-style {font-weight ./s--- B., E., Human Infectious Q., R., RNA Xu, Zhang, aerosol aggregation bold caused cavity cell contact contaminate courier; early em; experience functions gland growth handpieces minimize pathogenic pathogens patients, plays precautions preprocedural pt;} public role significantly specific splatters, use â€"


JANE EYRE A film review by Jane Taylor Copyright 1996 USPAN
this review is also posted at http://moviereviews.com/janesreviews/janeeyre.html
***1/2 (out of 4)
I'm sure that at some point in my educational career, I read Jane Eyre. But I was glad not to remember much about the plot. Like any good romance, especially one where the situation looks hopeless, I enjoy it more if I'm able to be surprised. And boy, did I enjoy this.
Not that surprise is the only good thing about the movie. It's just consistent with the rest of what there is to enjoy. The acting was wonderful and the characters were very, very human. In particular, William Hurt as the tormented Mr. Rochester, though he stayed true to the formality and precision of speech of the 1830s, was the kind of man that I would take great pleasure knowing and verbally jousting with in 1996. I cared about what he was going through, which made the climactic fire scene and the resulting shift in his relationship with Jane an agonizing and suspenseful journey on which to travel.
Charlotte Gainsburg as the homely but ethereal Jane was also a joy to watch unfold. Her transformation from mistreated schoolteacher to beloved governess was wary, gradual and authentic. With one brief smile from her somber face, she conveys the transformative joy of a child taking her first steps. Her severe gray dresses, tight bun and pale, crooked lips allowed Hollywood to redefine the term plain, but it allowed her expressions to shine through that much more clearly and be her crowning adornment. I must admit, though, I couldn't help but think "Hey, you're not poor anymore, babe - get a makeover!"
Anna Pacquin, the luminous child from "The Piano" plays Jane as a pre-teen. Not a kid you'd want to try and match wits with. Pacquin carries herself with a grace and dignity that is queenly, formidable and adult, and with very few words, rips the pretensions of her elders to shreds. I'll be looking for her, in about 10 or 15 years, starring as Hester Prynne in a remake of "The Scarlet Letter."
My only criticism of "Jane Eyre" is its mid-April release date. This is the movie for a rainy, dreary Saturday afternoon, not for a glorious spring day. Catch it soon and appreciate its gentleness, before the sensuality of budding flowers and the testosterone rush of the summer blockbusters takes hold.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Hey there! Thank you for checking out my project. We made a cool digit recognizer, and it will try to guess which digit you have drawn on this canvas. Want to give it a shot?
 Your browser has
asked Movsisyan's server (a computer that holds and serves Movsisyan's files) for the necessary
information to recreate everything you see on your screen. In response to your browser's
humble request, Movsisyan's server responds with four types of files: HTML, CSS, Javascript,
and Pictures/Illustrations.
The first file is of type HTML, which stands for Hyper-Text Markup Language. The
contents of this file instruct the browser to generate the text and structure of the website
you see currently.
The second file is of type CSS, which stands for Cascading Style Sheets. The contents
of this file tell your browser the details about the elements in the HTML file, for example,
how big the text should be, which font to use to display it, what colors to use.
The third file is of type JavaScipt, which is a programming language. It acts as the
logic behind the website; it tells the browser what to do when you click and drag your mouse,
how to talk to Mr. MSXCN, and ask for a prediction.
The fourth and final files are pictures or illustrations that need to be displayed wherever
Mr. HTML instructed for them to be displayed.
Once the browser has displayed the website, you start reading the text within, eventually stumbling
upon the black square. The moment you click within it, Mr. Javascipt starts filling the space
with black pixels. The moment you let go of the mouse button, Mr. Javascript rushes to center
the drawing and sends it to Mr. Server, asking him to predict which digit you drew, and assuming
it was, in fact, a digit that you drew.
Upon receiving the request, Mr. Server scales the picture down and gives it to Mr. MSXCN, who
gets excited and tries to predict the digit correctly. Mr. Server does not tell Mr. MSXCN whether
or not the prediction was correct since the only way to know if it is, is to ask Mr. Javascript,
who then will ask you. You are honest and trustworthy, but some people are not and will jokingly
say it is a "5" that they drew when in fact, they drew an "8." This would upset Mr. MSXCN as
he would think that his prediction was wrong, making him question his entire life. We do not
want that to happen :)
Mr. Server responds to Mr. Javascript with the digit that was predicted. Mr. Javascript asks
Mr. Browser to ignore a part of the old instructions given to him by Mr. HTML and instead
display the prediction, to which Mr. Browser kindly agrees.
Mr. MSXC Net is complex indeed, but do not worry! Once we look at the individual layers one
by one, everything will be clear. As illustrated in the image below, a Preprocessing block,
a Convolutional chain, a Singularity Extracting chain, and a Cognitive block compose MSXCN.
The Preprocessing block prepares the data for consumption. During training, the data
passes through five consecutive layers: Reshape, RandomWidth, RandomTranslation, RandomZoom,
Resizing. However, during evaluation or production, the data only passes through the Reshape layer.
The Reshape layer reshapes the 2D tensor of size (n, 784) into (n, 28, 28, 1), n being
the number of observations per batch. The RandomWidth layer scales the image along the x-axis
by a random amount. The RandomTranslation layer translates the image to a random location.
The RandomZoom layer zooms the image by a random amount. The Resizing layer resizes the image
back to 28x28. The data is then sent off to be processed by the Convolutional and Singularity
Extracting chains.
The Convolutional Chain is designed to learn and detect patterns that correspond to each
digit. It, as illustrated below, is built with 11 building blocks: 3 convolutional blocks, 3
batch norm., 3 dropout layers, a global average pooling layer, and a quite redundant but still
useful flattening layer.
The dropout layer discards some of the connections between layers, thus countering
overfit. The batch normalization layer standardizes its inputs. The standardization of inputs
helps the model learn faster as it does not have to spend numerous iterations adjusting
each of the weights to account for extreme input values. The global average pooling layer
maps the average of each spatial feature to a category confidence map which significantly
reduces computational needs.
The flatten layer assures that all output from the chain is flattened.
The Convolutional Block is a series of sequentially connected convolutional, batch
normalization, and max-pooling layers. During the instantiation of a block, we supply arguments
upon which it generates and connects layers. Specifying the depth parameter causes the block to
generate just as many "Convolution-Batch Norm" pairs, only leaving the last convolutional layer
without a batch norm partner. If the pool argument is True, it generates a max-pooling layer of
second degree; otherwise, it increases the strides of the last convolutional layer to 2. Below
is a convolutional block with depth 2 and pooling enabled.
The convolutional layer applies a convolution operation (basically a dot product) on
the input matrix using kernels. The weights of the kernels are inferred during training which
allows the model to find useful repeating spatial patterns in the inputs. The animation below
shows how the kernel (dark 3x3 area) passes above each input pixel (blue squares), applying a
convolution operation to nearby pixels, thus computing the output (green matrix).
The max-pooling layer helps us reduce computational needs by down-sampling the input.
The Singularity eXtractor layer accentuates non-uniform feature localities that
otherwise a convolutional block might miss. An example of this would be the array [10,
10, 2, 10, 10], where the feature in the middle differs from the rest significantly, this
significant difference would be accentuated by the singularity extractor, and it would
output an array that would look like this: [0.13, 0.08, 0.94, 0.08, 0.13]. The formula
below defines the Singularity Extracting operation of kernel size 3x3.
The Cognitive Block, as shown below, consists of concatenate, dense, batch norm,
and dropout layers. The concatenate layer merges the outputs of the Convolutional and
Singularity Extracting chains.
Two datasets were used to train and validate the model, but only one to test it. The
larger dataset was the MNIST digits dataset containing 70,000 handwritten digits
in total. 28,000 observations were used to test; the rest were merged with the second
dataset. The second dataset is the Digits Mini Dataset containing 5500 digits
drawn on the canvas you saw before (the black square). We collected and published this
dataset; it is available for free on Kaggle (link below). The joint dataset was then
split into 90% training and 10% validation sets.
The model was optimized using an RMSprop optimizer. A callback of ReduceLROnPlateu
was implemented to help the model converge faster by decreasing the learning rate by a
factor of 3 every 3 epochs of no improvement. A ModelCheckpoint was used to save the
model every time it reached a new extremum. The custom-written GateOfLearning callback
was used to kick the model out of local extrema, hoping it would converge to a better
one. In the illustration below, we can see how the model can sometimes get stuck in local
extrema. The goal of GateOfLearning is to kick the model into the air and hope it lands
in better extrema. This goal is often not met.
Moreover, GateOfLearning can cause under/overfit on many occasions. It can also cause
the learning rate to diverge into infinity (which is moderated by an exception raise)
when the patience and factor values overpower the optimizer and ReduceLROnPlateau combined.
However, in the right hands and with a pint of luck, it might push the model to a global
extremum.
Click here to visit the GitHub repository
Click here to visit the Kaggle notebook
Click here to see the Digits Mini Dataset that was collected for this project


| Fig 1 |
Image of stalagmite S1. Visible are the two sides of the cen ... |
| Fig 2 |
Location map. The location of Mavri Trypa Cave in relation t ... |
| Fig 3 |
Age-depth model for S1 with uncertainties. Upper: Age uncert ... |
| Fig 4 |
Stable oxygen isotopes as a proxy for precipitation showing ... |


Beta This is a test version of the layout of this page. Take the survey to help us improve it
Guidance
The application window opened on 21 June for local authorities to bid for capital funding to support delivery of 30 hours free childcare.
MS Word Document , 85.2KB
If you use assistive technology (eg a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
MS Word Document , 124KB
If you use assistive technology (eg a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
MS Excel Spreadsheet , 66.1KB
If you use assistive technology (eg a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
MS Word Document , 87.5KB
If you use assistive technology (eg a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
MS Excel Spreadsheet , 42.2KB
If you use assistive technology (eg a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
MS Powerpoint Presentation , 123KB
If you use assistive technology (eg a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
Ministers have made capital grants available to early years settings, including schools, through a local authority bidding process to support the delivery of the 30 hours extended entitlement coming into effect from September 2017.
Only local authorities that submitted an Expression of Interest by 29 April 2016 are eligible to apply.
The application window opened 21 June, with application forms sent out to all eligible local authorities. Local authorities must submit their bid by 31 August through the EFA Enquiry Form , attaching the completed application forms as instructed. Please see the ‘Early Years Capital: Information for Applicants’ for further information.
Published: 1 July 2016
Updated: 1 July 2016
From: Education Funding Agency


main module for evercookie gem
Current gem version
getter for path of cache action
# File lib/evercookie.rb, line 69 def self.get_cache_path "/#{get_namespace}/ec_cache" end
getter for path of etag action
# File lib/evercookie.rb, line 74 def self.get_etag_path "/#{get_namespace}/ec_etag" end
getter for namespace
# File lib/evercookie.rb, line 38 def self.get_namespace @@namespace.to_sym end
getter for path of png action
# File lib/evercookie.rb, line 79 def self.get_png_path "/#{get_namespace}/ec_png" end
getter for path of save action
# File lib/evercookie.rb, line 64 def self.get_save_path "/#{get_namespace}/save" end
getter for session key variable for get action
# File lib/evercookie.rb, line 48 def self.hash_name_for_get "#{@@hash_name}_get".to_sym end
getter for session key variable all stored evercookies
# File lib/evercookie.rb, line 53 def self.hash_name_for_saved "#{@@hash_name}_saved".to_sym end
getter for session key variable for set action
# File lib/evercookie.rb, line 43 def self.hash_name_for_set "#{@@hash_name}_set".to_sym end
default method for setup evercookie
# File lib/evercookie.rb, line 33 def self.setup yield self end


Robert Plant - Singer for Led Zeppelin
Robert Anthony Plant was born on August 20, 1948, in Bromwich, Staffordshire, England. Robert Plant became interested in singing at a young age and found inspiration in the likes of Elvis Presley. In 1966, Plant left school to began his musical career. He performed with a number of groups around this time, showing his talent for handling blues music. With drummer John "Bonzo" Bonham, Plant formed Band of Joy. In 1968, Plant was recruited by guitarist Jimmy Page for the New Yardbirds, and he, in turn, recommended Bonham to Page. The fourth member of the group was bassist/keyboardist John Paul Jones.


Lifestyle - News & Blogs
Here you will find in-depth season analysis, general news, and
highlighted articles written by women and non-binary sports
journalists. What do you think about the ongoing season? Add to
the discussion in the chat boxes!
News
powered by
Surfing Waves
Blogs
powered by
Surfing Waves
Feature of the week


@GeoffreyDeSmet
Tips:
by Geoffrey De Smet
OptaPlanner lead
Is manually planning difficult?
Traveling Salesman
Import
, directory tutorial
, file st68.tsp
Assumption: An optimal VRP route uses only 1 vehicle.
Assumption: An optimal VRP route uses only 1 vehicle. (false)
Assumption: An optimal VRP route has no crossing lines.
Assumption: An optimal VRP route has no crossing lines. (false)
Assumption: An optimal, feasible VRP route with n vehicles is still optimal for n+1 vehicles.
Assumption: An optimal, feasible VRP route with n vehicles is still optimal for n+1 vehicles. (false)
Assumption: An optimal VRP route has no crossing lines of the same color.
Assumption: An optimal VRP route has no crossing lines of the same color. (false)
Assumption: We can focus on time windows before focusing on capacity (or vice versa).
Assumption: We can focus on time windows before focusing on capacity (or vice versa). (false)
Assumption: Humans optimize VRP optimally.
Assumption: Humans optimize VRP optimally. (false)
Can a manager reasonable judge if this is optimal?
⇔ Is P = NP?
And humans aren't good at it
But they don't realize it
(nor does their manager)
Find better solutions in time and scale out
public class Computer {
private int cpuPower;
private int memory;
private int networkBandwidth;
private int cost;
// getters
}
@PlanningEntity
public class Process {
private int requiredCpuPower;
private int requiredMemory;
private int requiredNetworkBandwidth;
// getters
...
}
@PlanningEntity
public class Process {
...
private Computer computer;
@PlanningVariable(valueRangeProviderRefs = {"computerRange"})
public Computer getComputer() {
return computer;
}
public void setComputer(Computer computer) {
this.computer = computer;
}
}
@PlanningSolution
public class CloudBalance {
private List<Computer> computerList;
private List<Process> processList;
@ValueRangeProvider(id = "computerRange")
@ProblemFactCollectionProperty
public List<Computer> getComputerList() {
return computerList;
}
@PlanningEntityCollectionProperty
public List<Process> getProcessList() {
return processList;
}
...
}
@PlanningSolution
public class CloudBalance {
...
private HardSoftScore score;
@PlanningScore
public HardSoftScore getScore() {
return score;
}
public void setScore(HardSoftScore score) {
this.score = score;
}
}
public class CloudBalancingEasyScoreCalculator
implements EasyScoreCalculator<CloudBalance> {
public HardSoftScore calculateScore(CloudBalance cb) {
...
return HardSoftScore.valueOf(hardScore, softScore);
}
}
@ProblemFact(Collection)Property
@PlanningEntity(Collection)Property
rule "computerCost"
when
// there is a computer
$s : Computer($c : cost)
// there is a processes on that computer
exists Process(computer == $s)
then
// lower soft score by the maintenance cost
scoreHolder.addSoftConstraintMatch(kcontext, - $c);
end
rule "requiredCpuPowerTotal"
when
// there is a computer
$s : Computer($cpu : cpuPower)
// with too little cpu for its processes
accumulate(
Process(computer == $s, $requiredCpu : requiredCpuPower);
$total : sum($requiredCpu);
$total > $cpu
)
then
// lower hard score by the excessive CPU usage
scoreHolder.addHardConstraintMatch(kcontext,
$cpu - $total);
end
<solver>
<solutionClass>...CloudBalance</solutionClass>
<entityClass>...Process</entityClass>
<scoreDirectorFactory>
<scoreDrl>...Constraints.drl</scoreDrl>
</scoreDirectorFactory>
<!-- optimization algorithms are optional -->
</solver>
SolverFactory<CloudBalance> factory
= SolverFactory.createFromXmlResource("...SolverConfig.xml");
Solver<CloudBalance> solver = factory.buildSolver();
CloudBalance problem = ... // Load problem
CloudBalance solution = solver.solve(problem);
In IDE
> humans?
7 000 000 000
> minimum atoms
in the observable universe?
1080
100100 = 10200
1<PHONE_NUMBER><PHONE_NUMBER><PHONE_NUMBER><PHONE_NUMBER><PHONE_NUMBER>
0000000000<PHONE_NUMBER><PHONE_NUMBER><PHONE_NUMBER><PHONE_NUMBER>
0000000000<PHONE_NUMBER><PHONE_NUMBER><PHONE_NUMBER><PHONE_NUMBER>
0000000000<PHONE_NUMBER><PHONE_NUMBER><PHONE_NUMBER><PHONE_NUMBER>
nn
|valueSet||variableSet|
Presume 109 scores/ms ⇒ 1020 scores/year
| Queens | Combinations | Calculation time |
|---|---|---|
| 100 | 100100 = 10200 | 10180 years |
| 1000 | 10001000 = 103000 | 102980 years |
| 10000 |<PHONE_NUMBER> = 1040000 | 1039980 years |
<solver>
...
<exhaustiveSearch>
<exhaustiveSearchType>BRUTE_FORCE</exhaustiveSearchType>
</exhaustiveSearch>
</solver>
nodeExplorationType
entitySorterManner
valueSorterManner
<solver>
...
<exhaustiveSearch>
<exhaustiveSearchType>BRANCH_AND_BOUND</exhaustiveSearchType>
</exhaustiveSearch>
</solver>
nodeExplorationType
SolverEventListener
class Teacher {
...
}
class Course {
Teacher teacher;
...
}
class Period {
...
}
class Room {
...
}
@PlanningEntity
class Lecture {
Course course;
int lectureIndexInCourse;
@PlanningVariable(...) Period period;
@PlanningVariable(...) Room room;
...
}
class UnavailablePeriodPenalty {
Course course;
Period period;
...
}
public HardSoftScore calculateScore(Schedule schedule);
int hardScore = 0;
for (UnavailablePeriodPenalty penalty : schedule.getPenaltyList()) {
for (Lecture lecture : schedule.getLectureList()) {
if (penalty.getCourse() == lecture.getCourse()
&& penalty.getPeriod() == lecture.getPeriod()) {
hardScore--;
}
}
}
...
return HardSoftScore.valueOf(hardScore, softScore);
}
class UnavailablePeriodPenalty {
Course course;
Period period;
...
}
rule "unavailablePeriodPenalty"
when
// When a course is unavailable for a certain period ...
UnavailablePeriodPenalty($c : course, $p : period)
// ... and a lecture of that course is scheduled in that period ...
Lecture(course == $c, period == $p)
then
// ... then we lose 1 hard score point
scoreHolder.addHardConstraintMatch(kcontext, -1);
end
initializingScoreTrend
public class Nurse {
private Country country;
public boolean isHoliday(Date date) {
if (country == Country.BE) {
// true if date is 1-JAN, easter monday, 21-JUL, ...
} else if (country == Country.FR) {
// true if date is 1-JAN, easter monday, 14-JUL, ...
} else if (...) {
...
}
...
}
}
Demo
Demo
Demo
CloudBalancingApp.createSolver()
String s = JOptionPane.showInputDialog(
null, "How many seconds?", "");
Demo
Demo
Demo
Random
calls that don't use the seeded Random
HashMap
in Solution => Use LinkedHashMap
HashSet
in Solution => Use LinkedHashSet
EnvironmentMode
)What is the solver doing?
logback.xml
info
, debug
and trace
Good answer: First Fit Decreasing with Late Acceptance
Better answer: try them all and use the best one
Demo and statistics overview
Demo
Demo
<solver>
...
<constructionHeuristic>
<constructionHeuristicType>FIRST_FIT</constructionHeuristicType>
</constructionHeuristic>
</solver>
<solver>
...
<constructionHeuristic>
<constructionHeuristicType>FIRST_FIT_DECREASING</constructionHeuristicType>
</constructionHeuristic>
</solver>
public class ProcessDifficultyComparator
implements Comparator<Process> {
public int compare(Process a, Process b) {
// Compare on requiredCpuPower * requiredMemory
// * requiredNetworkBandwidth
}
}
@PlanningEntity(difficultyComparatorClass
= ProcessDifficultyComparator.class)
public class Process {
...
}
Not yet supported
If the Construction Heuristic takes too long, Local Search has too little time
$ git clone https://github.com/kiegroup/optaplanner.git
...
$ cd optaplanner
$ mvn clean install -DskipTests
...
$ cd optaplanner-examples
$ mvn exec:java
...
Add it on optaplanner.org
How? By sending a Pull Request to add it in the yml
file (or just mail me).
800*600
Anyone want to convert to odp/ppt and share?
<solver>
...
<constructionHeuristic>
<constructionHeuristicType>FIRST_FIT_DECREASING</constructionHeuristicType>
</constructionHeuristic>
<localSearch>
...
<localSearch>
</solver>
| n | # moves | # solutions |
|---|---|---|
| 4 | 16 | 256 |
| 8 | 64 | 16777216 |
| 64 | 4096 | 10116 |
| n | n2 | nn |
<localSearch>
<forager>
<!-- Untweaked standard value -->
<acceptedCountLimit>1000</acceptedCountLimit>
</forager>
</localSearch>
<localSearch>
<acceptor>
<!-- Typical standard value -->
<entityTabuSize>7</entityTabuSize>
</acceptor>
<forager>
<!-- Typical value -->
<acceptedCountLimit>1000</acceptedCountLimit>
</forager>
</localSearch>
<localSearch>
<acceptor>
<!-- Tweaked value -->
<simulatedAnnealingStartingTemperature>
0hard/400soft
</simulatedAnnealingStartingTemperature>
</acceptor>
<forager>
<!-- Typical value -->
<acceptedCountLimit>4</acceptedCountLimit>
</forager>
</localSearch>
<localSearch>
<acceptor>
<!-- Typical standard value -->
<lateAcceptanceSize>400</lateAcceptanceSize>
</acceptor>
<forager>
<!-- Typical value -->
<acceptedCountLimit>4</acceptedCountLimit>
</forager>
</localSearch>
Are there bugs in my code?
Scaling out with TSP and VRP
Winston Churchill
(Prime Minister UK 1940-1945)
Mike Tyson
(Boxer, heavyweight champion 1987-1990)
"We can not automate planning
because the plans will change."
⇒
"We need to automate (re)planning
because the plans will change."
But how?
Each planning stage feeds into the next.
Especially for trains, airplanes, etc
"Any organization that designs a (software) system
will produce a design whose structure
is a copy of the organization's communication structure."
⇒
Planning problems solved by different groups
should use different Solver instances
(during the first year in production).
@Path("/trainWagon")
public class TrainWagonDeciderResource {
@Inject
SolverManager<TrainWagonSolution, ...> wagonSolverManager;
... wagonSolverManager.solve(...)
}
@Path("/trainPlatform")
public class TrainPlatformDeciderResource {
@Inject
SolverManager<TrainCrewSolution, ...> platformSolverManager;
// Uses TrainWagonSolution's output as problem facts:
// Length of train impacts eligble platforms
... platformSolverManager.solve(...)
}
No java.time
import
import java.time.LocalDate;
@PlanningEntity
public class Patient {
private String name;
private LocalDate arrivalDate;
private LocalDate departureDate;
...
@PlanningVariable(...)
private Bed bed;
...
}
Hospital bed planning does not change
a patient's arrival or departure date.
Don't use java.util.Date
for time manipulation.
It's like asking your bartender how to treat cancer.
Don't use java.util.Calender
either,
It's like asking your dog how to treat cancer.
Use java.time.LocalDate
or java.time.LocalDateTime
instead!
Pick a good domain model.
@PlanningEntity
public class Lesson {
private String subject;
...
@PlanningVariable(...)
private Timeslot timeslot;
...
}
import java.time.DayOfWeek;
import java.time.LocalTime;
public class Timeslot {
private DayOfWeek dayOfWeek;
private LocalTime startTime;
private LocalTime endTime;
...
}
@Entity
public class Shift {
private LocalDateTime start;
private LocalDateTime end;
@PlanningPin
private boolean history;
...
@PlanningVariable(...)
private Employee employee;
...
}
@PlanningEntity
public class Shift {
private LocalDateTime start;
private LocalDateTime end;
@PlanningPin
// every historic shift is published
private boolean published;
...
@PlanningVariable(...)
private Employee employee;
...
}
Maybe
Assign all respiratory specialists
to the last shift of your planning window
(even in other wards as normal nurses).
⇒
draft length >= 2 * publish length
import java.time
@PlanningEntity
public class Talk {
private Timeslot publishedTimeslot;
...
@PlanningVariable(...)
private Timeslot timeslot;
}
Constraint publishedTimeslot(ConstraintFactory f) {
return f.forEach(Talk.class)
.filter(talk -> talk.getPublishedTimeslot() != null
&& talk.getTimeslot()
!= talk.getPublishedTimeslot())
.penalize(HardMediumSoft.ONE_MEDIUM)
.asConstraint(PUBLISHED_TIMESLOT);
}
DEMO
solver.addProblemFactChange(...)
@PlanningVariable(nullable = true)
class Employee {
boolean virtual;
}
Combine them as needed.
Not really repeated planning, but score calculation
Plan until the end of time?
Filter
that is always appliedAKA semi-movable entities
When you need an answer in milliseconds
solve()
does not return ...terminateEarly()
is calledThe easiest ways to fail (or win) a project...
OptaPlanner enhances the human planner
<solver>
<moveThreadCount>4</moveThreadCount>
...
</solver>
Also supported: AUTO, NONE
See OptaPlanner HUB
CPLEX
IloNumVar[] expense = cplex.numVarArray(2, lb, ub);
cplex.addLe(cplex.sum(
cplex.prod(1.06, expense[0]), // Euro
cplex.prod(1.24, expense[1])), // British Pound
50.0);
OptaPlanner
rule "50 Dollar limit"
when
Expense(1.06 * euroCost + 1.24 * britishPoundCost > 50 )
then
scoreHolder.addHardConstraintMatch(kcontext, -1);
end
SolverFactory<CloudSolution> solverFactory
= SolverFactory.createFromKieContainerXmlResource(
"opta/optacloud/cloudSolverConfig.solver.xml");
// For every dataset
Solver<CloudSolution> solver = solverFactory.buildSolver();
CloudBalance problem = ... // Load problem
CloudSolution solution = solver.solve(problem);
optacloud-1.0.0.jar
is in the classpath
KieServices kieServices = KieServices.Factory.get();
SolverFactory<Object> solverFactory
= SolverFactory.createFromKieContainerXmlResource(
kieServices.newReleaseId("opta", "optacloud", "1.0.0"),
"opta/optacloud/cloudSolverConfig.solver.xml");
// For every dataset
Solver<Object> solver = solverFactory.buildSolver();
CloudBalance problem = ... // Load problem
Object solution = solver.solve(problem);
optacloud-1.0.0.jar
is not in the classpath
Downloaded from a Maven repository
kmodule.xml
<kmodule xmlns="https://www.drools.org/xsd/kmodule">
<kbase packages="opta.optacloud">
<ksession name="cloudKsession"/>
</kbase>
</kmodule>
cloudSolverConfig.solver.xml
<solver>
<scanAnnotatedClasses/>
<scoreDirectorFactory>
<ksessionName>cloudKsession</ksessionName>
</scoreDirectorFactory>
</solver>
kmodule.xml
<kmodule xmlns="https://www.drools.org/xsd/kmodule"/>
cloudSolverConfig.solver.xml
<solver>
<scanAnnotatedClasses/>
</solver>
| Homepage | www.optaplanner.org |
|---|---|
| Slides | www.optaplanner.org/learn/slides.html |
| User guide | www.optaplanner.org/learn/documentation.html |
| Feedback | @GeoffreyDeSmet |


Climate Change and Global Warming are one of the most debated political topics today.
Some say climate change is the biggest threat of our age while others say it's a myth based on dodgy science.
Let's see what the data says and try to analyse how the world's temperatures are shifting over the years on a day to day basis
For instance, the average temperature of Kazakhstan in the year 1812 was 3.75℃. In comparison to this, the temperature in the year 1900 was 4.48℃, which is a rise of 0.75℃ over 88 years. However, the difference rose to more than 5.2℃ in 2013, when the recorded temperature was 8.95℃.
The current warming trend is of particular significance because most of it is extremely likely (greater than 95 percent probability) to be the result of human activity since the start of 20th century and proceeding at a rate that is unprecedented over decades to millennia.
Earth-orbiting satellites and other technological advances have enabled scientists to see the big picture, collecting many different types of information about our planet and its climate on a global scale. This body of data, collected over many years, reveals the signals of a changing climate.
It may sound small, but a half-degree of temperature change could lead to more dire consequences in a warming world. As the world warms because of human-induced climate change, most of us can expect to see more days when temperatures hit 90 degrees Fahrenheit (32 degrees Celsius) or higher.
"The earth has warmed since 1880. Signs that the Earth is warming are recorded all over the globe. The easiest way to see increasing temperatures is through the thermometer records kept over the past century and a half. Around the world, the Earth's average temperature has risen more than 0.8 degrees Celsius over the last century, and about twice that in parts of the Arctic. Most of the warming occurred in the past 35 years, with 15 of the 16 warmest years on record occurring since 2001. The year 2015 was the first time the global average temperatures were 1 degree Celsius or more above the 1880-1899 average. Even though the 2000s witnessed a solar output decline resulting in an unusually deep solar minimum in 2007-2009, surface temperatures continue to increase."
- NASA


The more we do this - the more it will do good things to our heart. Let's have a happy little tree in here. We can always carry this a step further. There's really no end to this. We want to use a lot pressure while using no pressure at all.
That's why I paint - because I can create the kind of world I want - and I can make this world as happy as I want it.   Let's put some happy trees and bushes back in here.


Ajita Srivastava
About
Portfolio
Contact
Portfolio
Crystal Countdown
Word Guess Game
Pokemon Combat Game
Trivia Timed Game
Giftastic Sport
Train Scheduler
Previous
Next


We're sorry but onlylovevue do esn't work properly without JavaScript enabled. Please enable it to continue.


Deutsche Digitale Bibliothek
visualized
Start
Timeline
Keywords
Places
Networks
Deutsch
A network of the most prolific persons and organizations


|
QuantLib: a free/open-source library for quantitative finance
Fully annotated sources - version 1.30
|
Base class for options on a single asset. More...
#include <ql/instruments/oneassetoption.hpp>
Classes | |
| class | engine |
| class | results |
| Results from single-asset option calculation More... | |
Public Member Functions | |
| OneAssetOption (const ext::shared_ptr< Payoff > &, const ext::shared_ptr< Exercise > &) | |
Instrument interface | |
| bool | isExpired () const override |
| returns whether the instrument might have value greater than zero. More... | |
| Public Member Functions inherited from Option | |
| Option (ext::shared_ptr< Payoff > payoff, ext::shared_ptr< Exercise > exercise) | |
| void | setupArguments (PricingEngine::arguments *) const override |
| ext::shared_ptr< Payoff > | payoff () const |
| ext::shared_ptr< Exercise > | exercise () const |
| Public Member Functions inherited from Instrument | |
| Instrument () | |
| Real | NPV () const |
| returns the net present value of the instrument. More... | |
| Real | errorEstimate () const |
| returns the error estimate on the NPV when available. More... | |
| const Date & | valuationDate () const |
| returns the date the net present value refers to. More... | |
| template<typename T > | |
| T | result (const std::string &tag) const |
| returns any additional result returned by the pricing engine. More... | |
| const std::map< std::string, ext::any > & | additionalResults () const |
| returns all additional result returned by the pricing engine. More... | |
| void | setPricingEngine (const ext::shared_ptr< PricingEngine > &) |
| set the pricing engine to be used. More... | |
| Public Member Functions inherited from LazyObject | |
| ~LazyObject () override=default | |
| void | update () override |
| void | forwardFirstNotificationOnly () |
| void | alwaysForwardNotifications () |
| void | recalculate () |
| void | freeze () |
| void | unfreeze () |
| Public Member Functions inherited from Observable | |
| Observable () | |
| Observable (const Observable &) | |
| Observable & | operator= (const Observable &) |
| virtual | ~Observable ()=default |
| void | notifyObservers () |
| Public Member Functions inherited from Observer | |
| Observer ()=default | |
| Observer (const Observer &) | |
| Observer & | operator= (const Observer &) |
| virtual | ~Observer () |
| std::pair< iterator, bool > | registerWith (const ext::shared_ptr< Observable > &) |
| void | registerWithObservables (const ext::shared_ptr< Observer > &) |
| Size | unregisterWith (const ext::shared_ptr< Observable > &) |
| void | unregisterWithAll () |
| virtual void | update ()=0 |
| virtual void | deepUpdate () |
greeks | |
| Real | delta_ |
| Real | deltaForward_ |
| Real | elasticity_ |
| Real | gamma_ |
| Real | theta_ |
| Real | thetaPerDay_ |
| Real | vega_ |
| Real | rho_ |
| Real | dividendRho_ |
| Real | strikeSensitivity_ |
| Real | itmCashProbability_ |
| Real | delta () const |
| Real | deltaForward () const |
| Real | elasticity () const |
| Real | gamma () const |
| Real | theta () const |
| Real | thetaPerDay () const |
| Real | vega () const |
| Real | rho () const |
| Real | dividendRho () const |
| Real | strikeSensitivity () const |
| Real | itmCashProbability () const |
| void | fetchResults (const PricingEngine::results *) const override |
| void | setupExpired () const override |
Additional Inherited Members | |
| Public Types inherited from Option | |
| enum | Type { Put = -1 , Call = 1 } |
| Public Types inherited from Observer | |
| typedef set_type::iterator | iterator |
| Protected Member Functions inherited from Instrument | |
| void | calculate () const override |
| void | performCalculations () const override |
| Protected Member Functions inherited from LazyObject | |
| Protected Attributes inherited from Option | |
| ext::shared_ptr< Payoff > | payoff_ |
| ext::shared_ptr< Exercise > | exercise_ |
| Protected Attributes inherited from Instrument | |
| Real | NPV_ |
| Real | errorEstimate_ |
| Date | valuationDate_ |
| std::map< std::string, ext::any > | additionalResults_ |
| ext::shared_ptr< PricingEngine > | engine_ |
| Protected Attributes inherited from LazyObject | |
| bool | calculated_ = false |
| bool | frozen_ = false |
| bool | alwaysForward_ = true |
| Related Functions inherited from Option | |
| std::ostream & | operator<< (std::ostream &, Option::Type) |
Base class for options on a single asset.
Definition at line 34 of file oneassetoption.hpp.
| OneAssetOption | ( | const ext::shared_ptr< Payoff > & | payoff, |
| const ext::shared_ptr< Exercise > & | exercise | ||
| ) |
Definition at line 28 of file oneassetoption.cpp.
|
overridevirtual |
returns whether the instrument might have value greater than zero.
Implements Instrument.
Reimplemented in VanillaStorageOption, and VanillaSwingOption.
Definition at line 33 of file oneassetoption.cpp.
| Real delta | ( | ) | const |
Definition at line 37 of file oneassetoption.cpp.
| Real deltaForward | ( | ) | const |
| Real elasticity | ( | ) | const |
| Real gamma | ( | ) | const |
Definition at line 56 of file oneassetoption.cpp.
| Real theta | ( | ) | const |
Definition at line 62 of file oneassetoption.cpp.
| Real thetaPerDay | ( | ) | const |
| Real vega | ( | ) | const |
Definition at line 74 of file oneassetoption.cpp.
| Real rho | ( | ) | const |
Definition at line 80 of file oneassetoption.cpp.
| Real dividendRho | ( | ) | const |
Definition at line 86 of file oneassetoption.cpp.
| Real strikeSensitivity | ( | ) | const |
| Real itmCashProbability | ( | ) | const |
|
overridevirtual |
When a derived result structure is defined for an instrument, this method should be overridden to read from it. This is mandatory in case a pricing engine is used.
Reimplemented from Instrument.
Reimplemented in QuantoBarrierOption, QuantoForwardVanillaOption, and QuantoVanillaOption.
Definition at line 113 of file oneassetoption.cpp.
|
overrideprotectedvirtual |
This method must leave the instrument in a consistent state when the expiration condition is met.
Reimplemented from Instrument.
Reimplemented in QuantoBarrierOption, QuantoForwardVanillaOption, and QuantoVanillaOption.
Definition at line 106 of file oneassetoption.cpp.
|
mutableprotected |
Definition at line 63 of file oneassetoption.hpp.
|
protected |
Definition at line 63 of file oneassetoption.hpp.
|
protected |
Definition at line 63 of file oneassetoption.hpp.
|
protected |
Definition at line 63 of file oneassetoption.hpp.
|
protected |
Definition at line 63 of file oneassetoption.hpp.
|
protected |
Definition at line 64 of file oneassetoption.hpp.
|
protected |
Definition at line 64 of file oneassetoption.hpp.
|
protected |
Definition at line 64 of file oneassetoption.hpp.
|
protected |
Definition at line 64 of file oneassetoption.hpp.
|
protected |
Definition at line 64 of file oneassetoption.hpp.
|
protected |
Definition at line 65 of file oneassetoption.hpp.


@* * Copyright 2019 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @(params: Map[String, Any]) @uk.gov.hmrc.hmrcemailrenderer.templates.helpers.html.template_main(params, "Submitted: Binding Tariff Information (BTI) application") { @uk.gov.hmrc.hmrcemailrenderer.templates.helpers.html.salutation(params)
Your BTI application @params("reference") has been submitted.
We will email you to tell you when your ruling is complete within 30 to 60 days.
To check the status of your application or to get information on samples go to GOV.UK and search for 'Apply for a Binding Tariff Information decision (Notice 600)'.
For security reasons we have not included a link with this email.
From Tariff Classification Service
}


UCD students in Hong Kong told to return home
by Jack QuannStudents from University College Dublin (UCD) who are studying abroad in Hong Kong have been told to return home.
A small number of students are currently on exchange in partner universities in the territory.
They are based at the Chinese University of Hong Kong and the University of Hong Kong.
Professor Mark Rogers is registrar at UCD.
He said: "We have been in direct contact with our students on exchange in CUHK and HKU.
"We have also been in contact with the Department of Foreign Affairs."
"Both of these universities have been closed for the remainder of the term."
"We have recommended to our students that they return home, and working with our partner universities, we are providing them with the services and supports they need to do so."
Meanwhile, the Department of Foreign Affairs has updated its travel advice for Irish citizens in or travelling to Hong Kong.
It says demonstrations can also take place with minimal warning, with related instances of arson, violence and vandalism.
Irish citizens and members of the public are being urged to be particularly vigilant and are strongly advised to avoid areas where protests and unplanned public gatherings are taking place.
It is also reminding people that the Hong Kong government has imposed restrictions on the wearing of 'facial coverings' which might prevent identification.
Earlier this week, the Irish consulate in Hong Kong announced it would close for a time amid ongoing protests.
It added that the situation on the ground was "fluid" and being kept under review.
This followed an escalation of protests on Monday, when a protester was shot by police.
Elsewhere a man who confronted protesters and asked "You are all not Chinese" was set on fire.
While several injuries were also reported after a policeman appeared to deliberately ram his motorbike into a crowd of people during a citywide protest.
The violence is the latest in protests which have lasted since June.
Hong Kong's embattled leader Carrie Lam said the violence had far exceeded the call for democracy and that demonstrators are now the "people's enemy".


Mycroft devices include pre-installed essential Skills like Timers, Alarms and News. There are many other Skills available built by the Mycroft team or our developer community. Skills can be fun (ISS Tracker), informational (National Parks), or useful (Home Assistant).
Visit the Marketplace for a list of Mycroft-approved Skills. To install, say "Hey Mycroft, install" followed by the Skill name.


Code Coverage |
|||||||||
Lines |
Functions and Methods |
Classes and Traits |
|||||||
| Total | |
80.65% |
275 / 341 |
|
84.48% |
49 / 58 |
|
37.50% |
3 / 8 |
| view | |
100.00% |
1 / 1 |
||||||
| application.php | |
0.00% |
0 / 48 |
|
0.00% |
0 / 4 |
|
0.00% |
0 / 1 |
| config.php | |
88.89% |
16 / 18 |
|
83.33% |
5 / 6 |
|
0.00% |
0 / 1 |
| controller.php | |
0.00% |
0 / 5 |
|
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
| debug.php | |
87.50% |
21 / 24 |
|
77.78% |
7 / 9 |
|
0.00% |
0 / 1 |
| helpers.php | |
75.00% |
21 / 28 |
||||||
| route.php | |
100.00% |
38 / 38 |
|
100.00% |
7 / 7 |
|
100.00% |
1 / 1 |
| router.php | |
100.00% |
95 / 95 |
|
100.00% |
14 / 14 |
|
100.00% |
1 / 1 |
| singleton.php | |
90.91% |
10 / 11 |
|
66.67% |
2 / 3 |
|
0.00% |
0 / 1 |
| view.php | |
100.00% |
73 / 73 |
|
100.00% |
14 / 14 |
|
100.00% |
1 / 1 |


Converting to MP3..
You need to grant permission for this application to USE your microphone.
* Please wait while your recording is processed.
Your browser does not support this feature natively, please use latest version of
Google Chrome or
Mozilla Firefox. If you're on
Safari or Internet Explorer, you can install
Adobe Flash to
use this feature.
* Converting to Mp3, Please wait


--- layout: page title: About Me date: 2009-10-09 17:55:39.000000000 +05:30 type: page published: true status: publish categories: [] tags: [] permalink: /aboutme/ meta: _edit_last: '1' _wp_page_template: default aktt_notify_twitter: 'yes' image: '' seo_follow: 'false' seo_noindex: 'false' _thumbnail_id: '833' author: login: satyadeep email<EMAIL_ADDRESS>display_name: Satyadeep first_name: Satyadeep last_name: K ---
Hi,
This is Satyadeep Karnati. Co-founder, Babygogo parenting app. I am a web and mobile developer, photographer, cyclist, music lover and a foodie!
I did my B.Tech in Computer Science And Engineering (Class of 2012), at IIT Guwahati.
I am interested in web and Android app development and like to build cool stuff, getting my hands dirty with code. I want to build awesome applications which improve people's lives.
I am a web addict and tech freak and want to share my experiences and
resourceful findings - some of which I learnt after hours of struggle.
I am also interested in Photography and love to take interesting shots. When I am not writing code or shooting photos, you can find me on my cycle breezing through the city roads!
Feel free to browse through the blog.


AK
TSA
Home
About
(current)
Members
Officers
Design Brief
Login
Officers
Nalini D.
Co-president
Ashutosh K.
Co-president
Abel S.
Vice president
Divyanshi J.
Secretary
Anish R.
Treasurer
Akhil G.
Webmaster
Catherine P.
Webmaster
Roger Y.
Reporter
Lalith N.
Service Coordinator
Narasimha C.
Service Coordinator
×
Submit


Here are some of the project that I have worked on it
Name: Abdallah Habib Abdul
Am a greaduate from Moringa School
Profile: Android Developer (Back End Developer)
Email<EMAIL_ADDRESS>Phone: +254718075249


The blockchain is an undeniably ingenious invention.
The blockchain is a simple yet ingenious way of passing information
from A to B in a fully automated and safe manner.
Autonomous things are things that work autonomously without direct intervention or human guidance.
Autonomous things exploit AI (Artificial Intelligence) to deliver various advanced behaviours that can interact
more naturally with all of their surroundings. Autonomous things are being used in many different ways,
the most popular being the self-driving car, robots and drones. We also use autonomous technology in our everyday
lives such as taking money out of the bank.
An immersive experience is an illusory environment that will completely surround you in a way that makes you feel
that you are inside it and part of it.
There are two types of immersive experiences,
one is when you’re actually in a physical environment and the other is where you are shown around
an imagined or a real environment via a tablet, Virtual Reality (VR) or a mobile.


Core Topics
Advanced Topics
Misc
Installation
Mithril is available from a variety of sources:
Direct download
You can download a zip of the latest version here.
Links to older versions can be found in the change log.
In order to use Mithril, extract it from the zip file and point a script tag to the .js
file:
<script src="mithril.min.js"></script>
Note that in order to support older versions of IE, you need to include some shims.
CDNs (Content Delivery Networks)
You can also find Mithril in cdnjs and jsDelivr.
Content delivery networks allow the library to be cached across different websites that use the same version of the framework, and help reduce latency by serving the files from a server that is physically near the user's location.
cdnjs
<script src="//cdnjs.cloudflare.com/ajax/libs/mithril/0.2.2-rc.1/mithril.min.js"></script>
jsDelivr
<script src="//cdn.jsdelivr.net/mithril/0.2.2-rc.1/mithril.min.js"></script>
NPM
NPM is the default package manager for NodeJS. If you're using NodeJS already or planning on using Grunt to create a build system, you can use NPM to conveniently keep up-to-date with Mithril versions.
Assuming you have NodeJS installed, you can download Mithril by typing this:
npm install mithril
Then, to use Mithril, point a script tag to the downloaded file:
<script src="/node_modules/mithril/mithril.min.js"></script>
Bower
Bower is a frontend package manager built in NodeJS. If you're using NodeJS already or planning on using Grunt to create a build system, you can use Bower to conveniently keep up-to-date with Mithril versions.
Assuming you have NodeJS installed, you can install Bower by typing this in the command line:
npm install -g bower
And you can download Mithril by typing this:
bower install mithril
Then, to use Mithril, point a script tag to the downloaded file:
<script src="/bower_components/mithril/mithril.min.js"></script>
Component
Component is another package manager for NodeJS. If you're using NodeJS already or planning on using Grunt to create a build system, you can use Component to conveniently keep up-to-date with Mithril versions.
Assuming you have NodeJS installed, you can install Component by typing this in the command line:
npm install -g component
And you can download Mithril by typing this:
component install lhorie/mithril
Then, to use Mithril, point a script tag to the downloaded file:
<script src="/components/lhorie/mithril/master/mithril.js"></script>
Rails
Jordan Humphreys created a gem to allow integration with Rails:
It includes support for the MSX HTML templating syntax from Jonathan Buchanan.
Github
You can also fork the latest stable project directly from Github.
If you want to use the bleeding edge version, you can fork the development repository.
Be aware that even though Mithril has tests running in a continuous integration environment, the bleeding edge version might occasionally break. If you're interested in helping improve Mithril, you're welcome to use the bleeding edge version and report any bugs that you find.
In order to update a forked version of Mithril, follow the instructions on this page.
Using bleeding edge from NPM
To use the bleeding edge version from npm, use the following command:
npm install git://github.com/lhorie/mithril.js#next --save


In a typical two-users scenario, User A and User B perform UPDATEs on two different tables. Before they commit the transaction, they perform a SELECT on the table the other person is updating. Upon successful retrieval of the information, they commit the transaction.
| Step | Application A | Application B |
|---|---|---|
| Step 1 | USER A UPDATEs customer table | USER B UPDATEs product table |
| Step 2 | USER A SELECTs rows from product table | USER B SELECTs rows from customer table |
| Step 3 | USER A COMMITs the transaction | USER B COMMITs the transaction |
With the new currently committed semantics in DB2 9.7, only committed data is returned even though there is a pending transaction on the same set of data. Readers do not have to wait for completion of the pending transaction, hence avoiding deadlocks. Refer to the table above for the scenario. You may also use the buttons on the right pane to try out the transactions yourself.
Note:- Please click on the buttons in order.


Pakistan becomes first country to launch new typhoid vaccine
by https://www.facebook.com/dunyanewsKARACHI (AFP) - Pakistan has become the first country in the world to introduce a new typhoid vaccine, officials said Friday, as the country grapples with an ongoing outbreak of a drug-resistant strain of the potentially fatal disease.
The vaccine, approved by the World Health Organization (WHO), will be used during a two-week immunisation campaign in southern Sindh province.
Sindh is where most of Pakistan’s 10,000 cases of typhoid have been documented since 2017.
"The two-week campaign beginning from today would target over 10 million children of nine months to 15 years of age," Azra Pechuho, the health minister in Sindh province, said in Karachi on Friday.
The new vaccines have been provided by Gavi, the Vaccine Alliance, to the Pakistani government free of cost.
After the two-week campaign, it will be introduced into routine immunisations in Sindh, and in other areas of Pakistan in the coming years.
In 2017, 63 percent of the typhoid cases documented and 70 percent of the fatalities were children, according to a joint press release from the Pakistani government, WHO and Gavi.


Userflow and micro-interactions for a hearings look-up and payments portal
End to end design for a React native meditation app
UX→UI for a parking marketplace targeted towards schools.
UX strategy and user research for an internal system
Interaction design across various features
UI and interaction design for a French learning app
Betting performance tracker
Responsive website relaunch for betting odds comparison platform
An app for practicing Chinese character writing
Last updated 05 May 2021


About Me
Blog
Portfolio
Contact Me
Hi, I'm Alex! It's Nice to Meet You!
This is where my intro content goes.
Projects
Project 1
Project 2
Project 3
Project 4
Project 5
Project 6
Click To See More


{% extends "base.html" %} {% block title %} {{ super() }} - Art{% endblock %} {% block content %}
Sketching will always be a passion of mine.  Interestingly, I find them the most appealing. A sketch shows the rough linework or a more defined piece depending on the mindset of the artist at the moment of creation.
It's a calming experience to put pen to paper and an amazing feeling to know that you've improved over the years. Looking back at old sketchbooks, I get to re-experience a part of my life simply through these pen or pencil strokes. No words are needed, only the experience.


|
TSGL
A thread-safe graphics library
|
An old-school classic! More...
#include <Pong.h>
Public Member Functions | |
| Pong (Canvas &can, int &ballSpeed, int &paddleSpeed) | |
| Explicitly construct the game, Pong. More... | |
| void | draw (Canvas &can) |
| Draw the game of Pong. More... | |
| ~Pong () | |
| Destroys the Pong game object. | |
An old-school classic!
Draw the interactive game of Pong. The two paddles are objects and the ball is also an object.
The constructor constructs the two paddle objects and the ball object.
Use the W and S keys in order to move the left paddle, the Up and Down arrow keys in order to move the right paddle.
Everything else is handled in the draw() method (button bindings, score keeping, drawing the objects and the game itself, ball collisions with the paddles and the boundaries).
| Pong::Pong | ( | Canvas & | can, |
| int & | ballSpeed, | ||
| int & | paddleSpeed | ||
| ) |
Explicitly construct the game, Pong.
Explicit constructor for the game, Pong. It sets up the Paddle objects and the Ball object in order to play.
| can | Reference to the Canvas to use when playing Pong. |
| ballSpeed | Reference to the ball speed to use in the game. |
| paddleSpeed | Reference to the paddle speed to use in the game. |
| void Pong::draw | ( | Canvas & | can | ) |


Euro 2020 draw LIVE: Play-off fixtures confirmed as Scotland, Northern Ireland and Republic of Ireland learn fate
Follow all the latest from the live draw as the play-off semi-finals are revealed
by Lawrence OstlereFollow live updates from the Euro 2020 play-off draw as 16 teams fight for the four remaining places at the pan-continent tournament next summer, and Scotland discover their semi-final fate in Path C.
While the semi-final match-ups for Path D and Path B are already locked in, those teams involved – which include Northern Ireland and the Republic of Ireland – will discover which side would be at home should they reach the final.
Path A is the most open, given that most of the Nations League A teams have already qualified for Euro 2020, and it means Iceland will be joined by three of Bulgaria, Hungary, Israel and Romania, with the other side taking on Scotland in Path C. Follow the latest below:
Show latest update
2019-11-22T11:14:38.533Z
Hungary will face Bulgaria, and that means Iceland will meet Romania.
- Lawrence Ostlere
- 22 November 2019 11:14
2019-11-22T11:13:55.930Z
Here comes Path A...
- Lawrence Ostlere
- 22 November 2019 11:13
2019-11-22T11:13:47.580Z
We already know Path B, although we are yet to find out who would be at home should that potential Northern Ireland vs Rep of Ireland final come about.
Bosnia and Herzegovina v Northern IrelandSlovakia v Republic of Ireland
- Lawrence Ostlere
- 22 November 2019 11:13
2019-11-22T11:12:55.973Z
So Path C semi-finals look like this:
Scotland v IsraelNorway v Serbia
- Lawrence Ostlere
- 22 November 2019 11:12
Advertisement
2019-11-22T11:12:30.216Z
Scotland draw Israel!
- Lawrence Ostlere
- 22 November 2019 11:12
2019-11-22T11:12:03.100Z
Path C (Scotland) drawn next...
- Lawrence Ostlere
- 22 November 2019 11:12
2019-11-22T11:11:39.796Z
Path D is already confirmed. Here it is:
Georgia v BelarusNorth Macedonia v Kosovo
- Lawrence Ostlere
- 22 November 2019 11:11
2019-11-22T11:10:09.176Z
Here goes then, the draw is coming up very shortly. Who will Scotland get? Bulgaria, Hungary, Israel and Romania are their possible opponents.
- Lawrence Ostlere
- 22 November 2019 11:10
Advertisement
2019-11-22T11:07:50.980Z
The special guest drawing the balls today is Angelos Charisteas, Greece's very own Geoff Hurst, I suppose.
He says scoring Greece's winning Euro 2004 goal changed his life. People stop him in the street every day for photos or just to shake his hand. He seems like a lovely man.
- Lawrence Ostlere
- 22 November 2019 11:07
2019-11-22T11:04:52.336Z
A reminder of how the draw looks currently. Sixteen teams will be involved in the play-offs, with the winner of each path final securing a place in Euro 2020.

- Lawrence Ostlere
- 22 November 2019 11:04
2019-11-22T11:01:58.290Z
It's Pedro Pinto running the show today, the man who manages to make the Champions League draw last four hours.
- Lawrence Ostlere
- 22 November 2019 11:01
2019-11-22T10:57:17.053Z
Live draw action is just a few minutes away...
- Lawrence Ostlere
- 22 November 2019 10:57
Advertisement
2019-11-22T10:50:16.440Z
Some latest news:
Steven Gerrard insists Rangers will be willing to move fixtures if it helps Scotland realise their Euro 2020 dream.The national side will discover who they will face in March's Nations League play-offs on Friday morning.
Scotland boss Steve Clarke has already urged the governing bodies to "do all they can" to help his team by ensuring there are no fixtures before their semi-final clash.
And Rangers manager Gerrard says the Ibrox club will not stand in their way.
"I represent this club in this country so for me I give it the support I need to give it. I certainly won't be standing in the way," he said.
"But we don't make those decisions. Ultimately it will be down to the SFA and stuff.
"We'll go with the flow and if it means us skipping a game or adjusting a game we'll do everything we can to support (Scotland). That's what you've got to do." PA
- Lawrence Ostlere
- 22 November 2019 10:50
Romania
There was no real surprise that Romania failed in their bid for automatic qualification in Group F.
A tough six-team section included Spain, Sweden and Norway.
Romania finished fourth, above Faroe Island and Malta, with 14 points from four wins and two draws, but their final fixture was a 5-0 defeat in Spain.The Romanians, though, were unbeaten in their Nations League campaign in a group which included Serbia, Lithuania and Montengero.
- Lawrence Ostlere
- 22 November 2019 10:48
Israel
Scotland faced Israel twice in their Nations League C campaign under former boss Alex McLeish.
The Scots were leading in Haifa against a side ranked 94th in the world before a second-half collapse ended in an embarrassing 2-1 defeat, with John Souttar sent off.
When Israel travelled to Hampden Park for the return game Scotland need a victory to win the group and secure a play-off spot.
James Forrest scored a hat-trick in a nervy 3-2 win although it needed a wonder save from goalkeeper Allan McGregor from Tomer Hemed in the dying seconds to ensure the victory.Israel were well off the pace in their Euro 2020 qualifying campaign, finishing fifth out of six with three wins and 11 points from 10 fixtures, 14 points behind Group G winners Poland.
- Lawrence Ostlere
- 22 November 2019 10:47
Hungary
Hungary, it seems, will be forever associated with their 'Magnificent Magyars' side of the 1950s but these are different times.
The current Hungarian team finished fourth in a relatively tight Group E with Croatia and Wales qualifying automatically.Marco Rossi's side won four and lost four of their eight fixtures and they finished two points behind Ryan Giggs' side after a winner-takes-all clash in Cardiff on Tuesday.
- Lawrence Ostlere
- 22 November 2019 10:42
Advertisement
2019-11-22T10:34:07.770Z
So, Scotland can draw any one of Bulgaria, Hungary, Israel and Romania. Who do they want to play and who do they want to avoid? Here is a little bit on each of those potential rivals, courtesy of the good people at PA, starting with Bulgaria.
Bulgaria
Their Group A campaign will be remembered for the racist behaviour of some of their fans during the 6-0 home defeat to England.
Head coach Krasimir Balakov resigned after his post-match comments while Bulgarian FA president Borislav Mihaylov also stepped side.On the pitch, Bulgaria - now managed by Georgi Dermendzhiev - finished in fourth place with six points, 15 points behind winners England, following their 1-0 home win over Czech Republic at the weekend. The visitors dominated but Vasil Bozhikov's header in the 56th minute sealed Bulgaria's only win of the group stage.
- Lawrence Ostlere
- 22 November 2019 10:34
2019-11-22T10:11:01.490Z
Wales, of course, are already though to the tournament. Here's the fallout from that one:
‘Disrespectful. Misguided. Ungrateful’ – Spanish press turn on Bale
- Lawrence Ostlere
- 22 November 2019 10:11
2019-11-22T09:48:21.193Z
If that was confusing, this may clear things up. Or not.
Path D
There will be a draw only to determine which semi-final winner plays the final at home. The semi-finals are as follows:
- Semi-final 1 (1 v 4): Georgia v Belarus
- Semi-final 2 (2 v 3): North Macedonia v Kosovo
Path C
The three teams that are League C group winners are confirmed and will play in the semi-finals in the following positions:
- Semi-final 1 (1 v 4): Scotland v (team to be drawn)
- Semi-final 2 (2 v 3): Norway v Serbia
A draw will be held to determine which team – Bulgaria, Israel, Hungary or Romania – complete Path C. A draw is also required to determine which semi-final winners plays the final at home.
Path B
There will be a draw only to determine which semi-final winner plays the final at home. The semi-finals are as follows:
- Semi-final 1 (1 v 4): Bosnia and Herzegovina v Northern Ireland
- Semi-final 2 (2 v 3): Slovakia v Republic of Ireland
Path A
Iceland – the one team from League A – are confirmed:
- Semi-final 1 (1 v 4): Iceland v tbc
- Semi-final 2 (2 v 3): tbc v tbc
The three remaining teams from League C – Bulgaria, Hungary, Israel, Romania – will be allocated to Path A to complete the semi-final pairings in the order of their ranking:
- Best-ranked team to play at home in semi-final 2.
- Next best-ranked team to play away in semi-final 2.
- Next best-ranked team to play away in semi-final 1.
There will also be a draw to determine which Path A semi-final winner plays the final at home.
- Lawrence Ostlere
- 22 November 2019 09:48
2019-11-22T09:45:43.553Z
So, things are a little complicated, but let's simplify: there are 16 teams vying for the four remaining places in Euro 2020. Those 16 teams will be divided into four 'paths', which basically means four separate groups which are then split into semi-finals. We already know the make-up of Path D and Path B, but Path C requires one more team (who will play against Scotland) while Path A requires three more teams to join Iceland. Make any sense?
- Lawrence Ostlere
- 22 November 2019 09:45
Play-off line-up
- Path A: Iceland, Bulgaria/Israel/Hungary/Romania*
- Path B: Bosnia and Herzegovina, Slovakia, Republic of Ireland, Northern Ireland
- Path C: Scotland, Norway, Serbia, Bulgaria/Israel/Hungary/Romania*
- Path D: Georgia, North Macedonia, Kosovo, Belarus
*A draw is required to decide on the composition of Path C, while Path A will be completed with the remaining teams.
Draw procedure
Path D
There will be a draw only to determine which semi-final winner plays the final at home. The semi-finals are as follows:
- Semi-final 1 (1 v 4): Georgia v Belarus
- Semi-final 2 (2 v 3): North Macedonia v Kosovo
Path C
The three teams that are League C group winners are confirmed and will play in the semi-finals in the following positions:
- Semi-final 1 (1 v 4): Scotland v (team to be drawn)
- Semi-final 2 (2 v 3): Norway v Serbia
A draw will be held to determine which team – Bulgaria, Israel, Hungary or Romania – complete Path C. A draw is also required to determine which semi-final winners plays the final at home.
Path B
There will be a draw only to determine which semi-final winner plays the final at home. The semi-finals are as follows:
- Semi-final 1 (1 v 4): Bosnia and Herzegovina v Northern Ireland
- Semi-final 2 (2 v 3): Slovakia v Republic of Ireland
Path A
Iceland – the one team from League A – are confirmed:
- Semi-final 1 (1 v 4): Iceland v tbc
- Semi-final 2 (2 v 3): tbc v tbc
The three remaining teams from League C – Bulgaria, Hungary, Israel, Romania – will be allocated to Path A to complete the semi-final pairings in the order of their ranking:
- Best-ranked team to play at home in semi-final 2.
- Next best-ranked team to play away in semi-final 2.
- Next best-ranked team to play away in semi-final 1.
There will also be a draw to determine which Path A semi-final winner plays the final at home.
Additional draw
Denmark and Russia have both qualified for Euro 2020. As both are hosts (Copenhagen and Saint Petersburg) and paired together in Group B of the final tournament, a draw is required to determine which of the two will play three group stage games at home; the other host will play two group stage matches at home.
When is the draw?
The EURO 2020 play-off draw takes place on Friday 22 November, starting at 12:00 CET.
How can I watch on TV or stream online?
The draw is not being broadcast on TV but you can follow the live stream on Uefa.com.
How will the play-off ties be decided?
Unlike previous play-offs, these will be single-leg knockout matches. The winners of each final qualifies for Euro 2020.
When do the play-offs take place?
The semi-finals will be played on Thursday 26 March, with the finals five days later on Tuesday 31 March. Kick-offs are generally 20:45 CET but exceptions may apply, in particular related to time zones.
Key dates
- Play-off draw: 22 November
- Final tournament draw: 30 November
- Play-off semi-finals: 26 March 2020
- Play-off finals: 31 March 2020
- Final tournament: 12 June–12 July 2020
With the confirmation of the 20 teams directly qualified and the 16 teams qualified for the play-offs, Uefa is in a position to confirm that the procedures established for the play-off draw and the final draw can be fully executed. No additional draw will be required (the draw had been provisionally scheduled for 1 April 2020).


Experienced developers using NUnit generally end up with a library of custom setup, teardown, test and support methods. Custom Asserts provide one way to re-package such methods, allowing the normal NUnit syntax to be used to invoke them and providing error messages that match the style and layout of standard NUnit messages.
The standard NUnit Asserts create an object known as an asserter and pass it to the DoAssert method, which includes code similar to this...
if ( !asserter.Test() ) throw new AssertionException( asserter.Message );
Asserters encapsulate the comparison to be performed as well as the objects being compared. They implement the IAsserter interface, defined as follows:
public interface IAsserter { // Test the condition for the assertion. bool Test(); // Return the message giving the failure reason. string Message { get; } }
When implementing an asserter, you will have to decide on an approach for creating the message. For complex tests, it may be necessary to create and cache the message - or info used to create it - while the test is being performed. For example, when NUnit compares arrays, it notes the point of failure for use in the message. Otherwise, it would have to pass the entire array a second time.
Generally, the constructor for the asserter will include any required parameters, the actual value and an optional user message. You may invoke the asserter directly, using Assert.DoAssert, but it is generally more convenient and readable to create an class similar to NUNit's Assert class, which contains static methods that wrap the object creation. For an example of how to do this, see the StringAssert class in the NUnit source.


{{define "title"}}Torrent Reassign{{end}} {{define "content"}}
Reassigning torrents to a new user is not easily reverted and should be done with care.
One ID per line or a single username
Might take a long time, do NOT abort the request.


We're working to bring awesome games, let us to know about your games habits.
10 = I am happy, 1 = completely unsatisfied
Max character 140


Citizenship and the Census has been a very heated topic over the last few years. That discussion has been focused around whether or not to add a question about respondents' citizenship status to the Decennial Census. Leaving aside the issues in that debate, the American Community Survey has asked a question about citizenship since it was created in 2005. Beginning with the 2018 and 2014-2018 ACS releases, a small number of new tables organizing information about the citizen voting-age population (CVAP) have been created based upon questions which were already in the survey.
While it might be taken for granted that a person who is born in the U.S. is "native," note that people born in Puerto Rico, American Samoa, Guam, the Commonwealth of the Northern Mariana Islands, or the US Virgin Islands also qualifies as "native," as well as those born in a foreign country who have at least one parent who is a U.S. citizen. Thus, by definition, anyone who is "native" is a citizen. People who are not "native" are classified as "foreign born," and may be either a "naturalized citizen" or not a citizen.
Separately from asking about citizenship, the ACS asks about each person the location of their birth, be it a state in the U.S. or another country, and, if not born in the United States, the year that the person came to live in the United States.
One interesting table, Period of Naturalization (B05011), counts the number naturalized citizens over 5 year periods, allowing you to track naturalization rates over time.
The Census Bureau classifies table codes beginning with 05 as about citizenship.
{% list_tables prefix='05' %}The Census Bureau classifies table codes beginning with 06 as about place of birth.
{% list_tables prefix='06' %}The Census Bureau classifies table codes beginning with 29 as about the citizen voting-age population.
{% list_tables prefix='29' %}


Types of animals
Farm
Cows
Chickens
Pigs
Wild
Giraffes
Lions
Tigers
Pets
Cats
Dogs
Gerbals
Home
Audio
Map
List
Photo
Notes


Delete the alarm clock(version two),as you know,we have two version of alarm clock,version one just support 3 group alarm clock,and version two support 20 group alarm clock; this function is for version two,
delete the alarm clock,you must set the alarmId value
may2versions of the alarm clock,Passed password verification can get the first2version alarm function flag,to confirm if the device supports features
Delete the current device designationalarm2SettingObject's Alarm Clock,alarm2SettingMust IncludealarmIdvalue