Perjury: Nunes Catches Vindman Contradicting Closed-Door Testimony About ‘Whistleblower’
Declared he wouldn’t expose whistleblower — previously said he didn’t even know whistleblower’s identity
by Jamie WhiteA witness of the Democrats’ impeachment farce testified Tuesday that he would not reveal the identity of the so-called whistleblower.
House Intelligence Committee ranking member Devin Nunes (R-Calif.) asked NSC leaker Lt. Col. Alexander Vindman if he discussed Trump’s Ukraine phone call with anyone outside the White House.
Vindman responded that he went outside his chain of command and told George Kent, Deputy Assistant Secretary in the European and Eurasian Bureau, and “someone in the intelligence community I’m not going to name,” in other words, the suspected whistleblower.
Confirming suspicions that the unnamed individual is in fact the whistleblower, House Intelligence Committee Chairman Adam Schiff (D-Calif.) interrupted Nunes and said that he will protect the whistleblower’s identity.
Notably, during his closed-door testimony with Democrats in October, Vindman stated he did not know the so-called whistleblower’s identity.
This appears to confirm that Vindman committed perjury, either during Tuesday’s testimony or during his previous closed-door testimony with Democrats.
Rep. Jim Jordan (R-Ohio) also tried to ascertain the identity of the individual Vindman refused to disclose, but Schiff once again stated he would prevent the whistleblower’s identity to be revealed, again confirming Vindman lied in his closed-door testimony.
“Mr. Chairman, I don’t see how this is outing the whistleblower. The witness has testified in his deposition that he doesn’t know who the whistleblower is,” Jordan said.
 So, how is this outing the whistleblower to find out who this individual is?”
Will Vindman face consequences for lying to Congress?
Considering he’s protected by the power structure that’s lied for three years about Trump-Russia “collusion,” the answer is likely no.
Twitter: Follow @WhiteIsTheFury
Gab: https://gab.com/WhiteIsTheFury
Minds: https://www.minds.com/whiteisthefury
Robert Barnes joins Alex Jones to discuss the latest developments in the Deep state coup.
“The Black Friday sales have arrived early! Get up to 70% off our hottest products as well as free-shipping and double Patriot Points while the sale lasts!”


Teenage rugby player's flu-like symptoms turn out to be killer sepsis
Jemima Moss, who plays rugby for Worcester Warriors Women, developed the symptoms after "overdoing it" at training and later suffered multiple organ failure in hospital
by Bradley Jolly, Tom Hitchenor, https://www.mirror.co.uk/authors/bradley-jolly/A talented teenage rugby player nearly died after her flu-like symptoms turned out to be signs of sepsis .
Jemima Moss, 17, said goodbye to her best friend after suffering multiple organ failure in hospital.
She was dashed there after collapsing at home when her heart rate became dangerously high.
Jemima, who plays for Worcester Warriors Women, spent a week in intensive care on life support after doctors found the symptoms were those of sepsis.
Sepsis is a vile disease, which kills 52,000 people in the UK each year alone.
But Jemima, a back-row forward, managed to pull through and incredibly was back playing rugby six months later.
"I remember this sad moment with my best friend, Evie, when one time I was weaned off life support but slipped back under (consciousness)," Jemima said.
“My family and Evie and her mum, Rachel, were there and as they were walking out I remember saying goodbye to Evie.
“I was holding her hand and not wanting to let her go and my sister was there as well and everyone was really upset.
“They told me that I asked them if I would wake up again, which was the saddest bit for them.”
The teenager was taken off life support on GCSE Results Day on August 23 last year after doctors feared she'd die.
It was first suggested the sepsis may have been caused by a bacterial infection she picked up while in South Africa on holiday earlier that summer but tests haven't proven this.
Now Jemima, Worcester Warriors and UK Sepsis Trust want to raise awareness of the disease.
The young athlete said she first thought her symptoms were as a result of "overdoing it" in training.
She said: “I had rugby few training a couple of days before I fell ill.
"I thought I'd overdone it because it was my first time training was with Worcester Warriors so felt a bit tired.
 That's where it really started.
“Over the next few days, I just got progressively worse. I couldn't move. If I go out of bed, I would just collapse.
“I couldn't make it to the toilet or to the bathroom so I was just in the bed feeling awful.
“One night, it worsened. I was lying in my bed awake all night. I had a fan and water spray to cool me down.
Sepsis: The facts
■ Sepsis affects 250,000 people in the UK and kills 44,000 per year. That’s more than bowel, breast and prostate cancer and road accidents combined.
■ Sepsis is the body’s often deadly response to an infection.
■ Initially, it can look like flu or a chest infection, but it can swiftly get serious.
■ Seek medical help urgently if you develop any one of the following…
– are lethargic or difficult to wake
– feel abnormally cold to touch
– the skin looks mottled, bluish or pale
– are breathing very fast
– have a rash that does not fade when you press it
– have a fit or convulsion
“I tried to get to mum's room but I collapsed and my parents said they heard a big thump. My mum came like running into my room wondering what was wrong."
Worcester Warriors are holding a special fixture for Sepsis Awareness Day on December 1 at Sixways Stadium in the city.
Jemima's dad Andy, an international sports event manager, said: “One of the keys to being aware of sepsis is that it started like a cold.
“Her mum just felt it was a cold and she was in bed and then it sort of got worse to be like the flu.
“It went from just having a cold, fever and being a bit weak. It escalated really quickly. Being aware of those first symptoms really important.”

"It’s great that she will be coming back in to experience the life-saving work that our staff in Intensive Care carry out every day.
“We’re glad to be able to help Jemima with her ambition of a future medical career.”


?IMAGED
6
7
8
9
10
TheNewYork
copyright
reserved
botanical
garden
FLORA
NEOTROPICA
Sideroxylon
horridum
(Gris.)Pennington
T.D.PENNINGTON
1986
T.Jai
a.lca.fcs......UK?!
......Ea.T.a.a.i..
Bro.Leon
/*)
1916
collected
by________________________________________________y
;ig
PLANTS
OF
CUBA
.....£^L,
Bumelia
.
New
York
Botanical
Garden
Arthur
Cronquist,
1945
01530535
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


Danielle is one of the first people Haya met in undergrad, and has since
become one of her most reliable, trusting, and deeply compassionate best
friends. Danielle is the best sounding board anyone could ask for
(always with a tray of home-made gluten-free desserts).
Tony and Darius got to know each other when Darius told Tony he sucked
in his first musical.  Tony stole Darius’s car once to go comfort Haya when she
was upset. There are many stories like this. Ask them.


|
MysoreScript
|
The layout of the primitive Array
class in MysoreScript.
More...
#include <runtime.hh>
Public Attributes | |
| Class * | isa |
| Class pointer. More... | |
| Obj | length |
| Length of the array (number of elements in it). More... | |
| Obj | bufferSize |
| The size of the buffer. More... | |
| Obj * | buffer |
| The buffer storing the values in this array. More... | |
The layout of the primitive Array
class in MysoreScript.
Definition at line 156 of file runtime.hh.
| Obj* MysoreScript::Array::buffer |
The buffer storing the values in this array.
Definition at line 173 of file runtime.hh.
| Obj MysoreScript::Array::bufferSize |
The size of the buffer.
Definition at line 169 of file runtime.hh.
| Class* MysoreScript::Array::isa |
| Obj MysoreScript::Array::length |
Length of the array (number of elements in it).
Definition at line 165 of file runtime.hh.


The Calculator should correctly perform division operation
tags: division
The Calculator should correctly perform division between integers, including zero and negative numbers
tags: integer, smoke
| formula | result |
|---|---|
| 3 / 1 | 3 |
| 0 / 3 | 0 |
| 999 / 3 / 3 | 111 |
| (-2) / 4 | -0.5 |
| 2 / (-3) | -0.66666667 |
| (-1000)/(-5000) | 0.2 |
The Calculator should correctly perform division between decimals, including negative numbers
tags: decimals, smoke
| formula | result |
|---|---|
| 0.22 / 0.11 | 2 |
| 10.0 / 1.25 | 8 |
| (-0.8) / 4.2 / 24.4 | -0.0078064 |
| 0.4 / (-0.2) | -2 |
The Calculator should correctly perform division between integers and decimals, including zero and negative numbers
tags: integer, decimal
| formula | result |
|---|---|
| 100.2 / 2 | 50.1 |
| (-1) / 2.5 / (-1000) | 0.0004 |
| 10000 / 0.98 / (-7) / 1 | -1457.72595 |
The Calculator should show Division result in exponential form when the result is larger than the maximum display range i.e 1 000 000 000 and up
tags: exponential, boundary
| formula | result |
|---|---|
| 999999999 / 0.1 | 10e+9 |
| 1 / 999999999 | 1e-9 |
| (-999) / 999999999 | -9.99e-7 |
Partial Division input should result in the operand being divided to itself
tags: partial-input
| formula | result |
|---|---|
| 5 / | 1 |
| (-1) / | 1 |
| 3.14 / | 1 |
Division by zero should result in an error
tags: invalid, error
| formula | result |
|---|---|
| 1 / 0 | Error |
| -1000 / 0 | Error |
| 3.14 / 0 | Error |


This PWG face-to-face meeting will be held on May 4 - 7, 2021, only via WebEx teleconference (Virtual F2F).
There is no registration fee or RSVP survey for this meeting.
Note:All times are Eastern Daylight Time (EDT) (UTC−04:00).
All attendees are expected to comply with the PWG Policy on Intellectual Property and Confidentiality and the PWG Antitrust Policy.
| Date | Times | Description |
|---|---|---|
| May 4 | 10:00 AM to 11:00 AM | PWG Plenary |
| 11:00 AM to 12:00 PM | OpenPrinting Plenary | |
| 12:00 PM to 12:45 PM | Lunch | |
| 12:45 PM to 1:30 PM | OpenPrinting : GSoC, GSoD, and LFMP Project Updates | |
| 1:30 PM to 2:30 PM | OpenPrinting : Status of Ghostscript and MuPDF | |
| 2:30 PM to 3:00 PM | Break | |
| 3:00 PM to 4:00 PM | OpenPrinting : Status of Chrome OS Printing | |
| May 5 | 10:00 AM to 11:00 AM | OpenPrinting : CUPS Plenary |
| 11:00 AM to 12:00 PM | OpenPrinting : Printer Applications · PostScript Printer Application | |
| 12:00 PM to 12:45 PM | Lunch | |
| 12:45 PM to 2:15 PM | OpenPrinting : cups-filters, CUPS Snap, Printer Applications, Driverless Scanning | |
| 2:15 PM to 2:30 PM | IPP WG : Status · IPP Everywhere v1.1 Status | |
| 2:30 PM to 3:00 PM | Break | |
| 3:00 PM to 4:00 PM | IPP WG : Evolution of IPP/2.0 and IPP Everywhere v2.0 | |
| May 6 | 10:00 AM to 12:00 PM | IDS WG : Status and Discussion · PWG Hardcopy Device Security Guidelines v1.0 |
| 12:00 PM to 12:45 PM | Lunch | |
| 12:45 PM to 1:15 PM | IPP WG : IPP Encrypted Jobs and Documents v1.0 | |
| 1:15 PM to 2:15 PM | IPP WG : Cloud Printing and Scanning BoF | |
| 2:15 PM to 2:45 PM | Break | |
| 2:45 PM to 4:00 PM | IPP WG : IPP Enterprise Printing Extensions v2.0 | |
| May 7 | 10:00 AM to 12:00 PM | IPP WG : 3D Scanning and Production BoF |
| 12:00 PM to 12:45 PM | Lunch | |
| 12:45 AM to 2:15 PM | IPP WG : IPP Driverless Printing Extensions v2.0 | |
| 2:15 PM to 2:45 PM | Break | |
| 2:45 PM to 3:15 PM | IPP WG : IPP Production Printing Extensions v2.0 | |
| 3:15 PM to 3:30 PM | IPP WG : Next Steps |


In the following section we demonstrate how to create a project from scratch using Microsoft Visual Studio. If you are using a different framework, these instructions will give you some basic information on how to get started.
The following screenshots have been taken from Microsoft Visual Studio 2013. If you are using a different version of the SDK then the menu options may change slightly, but the key functionalities should remain the same.
In the following steps we setup the basic directory structure and files necessary to build an application using CHAI3D. Depending of which display or GUI library you may want to use, project templates are provided for FreeGLUT, .NET, and Qt and can be found in the CHAI3D/templates
directory.
In this example we will show you how to create a project using FreeGLUT. For the other frameworks, the setup is almost identical except for the additional libraries and/or references that may be required. In these cases, we will let you take a closer look at the project templates referenced above.
To get started, we first create an empty directory called application
in which we setup all the necessary files. This directory can be created anywhere on your harddrive.
We then create two sub-directories called bin
and external
. The bin
directory will contain the executable file of the application with any resource files associated with it (e.g. media files, DLLs, etc..). The external
directory will contain all external libraries used by your application, including a copy of the CHAI3D framework.
In the newly created external
directory, place a copy of CHAI3D. If your application requires other frameworks or libraries, you may place a copy of these files there too.
In the bin
directory, please create two sub-folders named win-Win32
and win-x64
in which you will copy the following DLL files availble from the CHAI3D/bin/win-Win32
and CHAI3D/bin/win-x64
directories. These DLL files are necessary only if you plan to support different tracking or haptic devices. If you are developing an application for the Force Dimension haptic devices, none of these files are needed. If your application contains additional resource files such as images, videos, or sounds, we suggest that you store them in a sub-directory that we called resources
in this example.
Launch Microsoft Visual Studio and create a new project file by selecting menu FILE > New > Project.
Select Empty Project and click on button Browse... to locate the newly created directory application
.
Define a name for your project. In this example we name the project: myProject.
The project and solution files are now created and can be found in directory application/myProject
Select the configuration manager from menu BUILD > Configuration Manager....
By default, settings are only created for 32-bit compilation (Win32). We now create a new configuration for 64-bit platforms (x64). It is important to perform this step before adding additional project files to your Solution.
Select x64 as the new platform and click button OK
We will now add the CHAI3D project to the application. Select menu FILE > Add > Existing Project.
Select the project file corresponding to your version of Microsoft Visual Studio.
As we are using Visual Studio 2013 in our example, we select project file CHAI3D-VS2013.vcxproj
In this example we also add the FreeGLUT graphic display framework.
As performed in the previous step, select menu FILE > Add > Existing Project.
In the Solution Explorer you should now see all three projects, namely CHAI3D, freeglut, and myProject.
Using the mouse right button, click on myProject and select option Set as StartUp Project.
This will tell Visual Studio which application to run once the Solution has been compiled.
We now define the project dependencies of our project. In this example, the application requires both CHAI3D and freeglut. Select menu PROJECT > Project Dependencies.
Using the mouse, check both CHAI3D and freeglut.
Since the project is still empty, we create an empty main.cpp file in which we will write our program.
Select C++ File (.cpp) and give it the name main.cpp. Click button Add to generate the new file.
The new empty file has now been created and is ready to receive your source code.
Since you will probably want to compile and run this application, we suggest that you copy the content of one of the examples provided with CHAI3D. For this demonstration we copied the code found in example CHAI3D/examples/GLUT/13-primitives
. If you wish to use another example instead, make sure to also copy any necessary resource files into the application/bin
directory.
In this section we setup the different project properties of our application.
Using the mouse right button, click on myProject and select option Properties.
The following Property Pages Window will show up.
Before modifying any of the properties, we assign the Configuration to All Configurations and the Platform to All Platforms. This will allow us to assign properties to all of the four possible modes simultaneously, respectively:
In Configuration Properties / General, define the Output Directory to ../../bin/win-$(platform)\
In Configuration Properties / C/C++ / General, edit the Additional Include Directories
Add the following directories:
../../external/CHAI3D/src
../../external/CHAI3D/external/Eigen
../../external/CHAI3D/external/glew/include
../../external/CHAI3D/extras/freeglut/include
Please note that the last directory is only used if you are using FreeGLUT as the display library. If you are using another framework such as .NET or Qt, then this line can be ommited and replaced by other references.
In Configuration Properties / C/C++ / Language, select Yes (/GR) for option Enable Run-Time Type Information.
In Configuration Properties / Linker / General, edit Additional Library Directories
Add the following directories:
../../external/CHAI3D/lib/$(Configuration)/$(Platform)
../../external/CHAI3D/extras/freeglut/lib/$(Configuration)/$(Platform)
In Configuration Properties / Linker / Input, edit Additional Dependencies
Add the following library files:
chai3d.lib
freeglut.lib
In Configuration Properties / Linker / System, select Console (/SUBSYSTEM:CONSOLE) for option SubSystem.
As for the final settings we now define two different preprocessor directives for the Win32 and x64 platforms.
Select the Win32 platform.
In Configuration Properties / C/C++ / Language, edit Processor Definitions.
Assign the following directive: WIN32
.
Select the x64 platform.
In Configuration Properties / C/C++ / Language, edit Processor Definitions.
Assign the following directive: WIN64
.
To insure maximum performance and stability of your haptic device, it is very important to always compile and run your application in Release mode whenever you are not debugging your code. If you need to debug your code, consider disabling or reducing all haptic forces to avoid having your device go unstable.
To build the entire solution, select menu BUILD > Build Solution
Once the application has been successfully compiled, you may run the application.
Here is a final screenshot that illustrates the application running.


Keyword(s) to search:
Sort results by title
Keyword Index
Direct Link
SolutionAnalyzer Namespace
MainWindowPane Class
SolutionAnalyzerPackage Class
SolutionAnalyzer.Common Namespace
SolutionAnalyzer.CommonData Namespace
SolutionAnalyzer.Views Namespace
QuickLoadingControl Events
The
QuickLoadingControl
type exposes the following members.
Events
Name
Description
ContextMenuClosing
(Inherited from
FrameworkElement
.)
ContextMenuOpening
(Inherited from
FrameworkElement
.)
DataContextChanged
(Inherited from
FrameworkElement
.)
DragEnter
(Inherited from
UIElement
.)
DragLeave
(Inherited from
UIElement
.)
DragOver
(Inherited from
UIElement
.)
Drop
(Inherited from
UIElement
.)
FocusableChanged
(Inherited from
UIElement
.)
GiveFeedback
(Inherited from
UIElement
.)
GotFocus
(Inherited from
UIElement
.)
GotKeyboardFocus
(Inherited from
UIElement
.)
GotMouseCapture
(Inherited from
UIElement
.)
GotStylusCapture
(Inherited from
UIElement
.)
GotTouchCapture
(Inherited from
UIElement
.)
Initialized
(Inherited from
FrameworkElement
.)
IsEnabledChanged
(Inherited from
UIElement
.)
IsHitTestVisibleChanged
(Inherited from
UIElement
.)
IsKeyboardFocusedChanged
(Inherited from
UIElement
.)
IsKeyboardFocusWithinChanged
(Inherited from
UIElement
.)
IsMouseCapturedChanged
(Inherited from
UIElement
.)
IsMouseCaptureWithinChanged
(Inherited from
UIElement
.)
IsMouseDirectlyOverChanged
(Inherited from
UIElement
.)
IsStylusCapturedChanged
(Inherited from
UIElement
.)
IsStylusCaptureWithinChanged
(Inherited from
UIElement
.)
IsStylusDirectlyOverChanged
(Inherited from
UIElement
.)
IsVisibleChanged
(Inherited from
UIElement
.)
KeyDown
(Inherited from
UIElement
.)
KeyUp
(Inherited from
UIElement
.)
LayoutUpdated
(Inherited from
UIElement
.)
Loaded
(Inherited from
FrameworkElement
.)
LostFocus
(Inherited from
UIElement
.)
LostKeyboardFocus
(Inherited from
UIElement
.)
LostMouseCapture
(Inherited from
UIElement
.)
LostStylusCapture
(Inherited from
UIElement
.)
LostTouchCapture
(Inherited from
UIElement
.)
ManipulationBoundaryFeedback
(Inherited from
UIElement
.)
ManipulationCompleted
(Inherited from
UIElement
.)
ManipulationDelta
(Inherited from
UIElement
.)
ManipulationInertiaStarting
(Inherited from
UIElement
.)
ManipulationStarted
(Inherited from
UIElement
.)
ManipulationStarting
(Inherited from
UIElement
.)
MouseDoubleClick
(Inherited from
Control
.)
MouseDown
(Inherited from
UIElement
.)
MouseEnter
(Inherited from
UIElement
.)
MouseLeave
(Inherited from
UIElement
.)
MouseLeftButtonDown
(Inherited from
UIElement
.)
MouseLeftButtonUp
(Inherited from
UIElement
.)
MouseMove
(Inherited from
UIElement
.)
MouseRightButtonDown
(Inherited from
UIElement
.)
MouseRightButtonUp
(Inherited from
UIElement
.)
MouseUp
(Inherited from
UIElement
.)
MouseWheel
(Inherited from
UIElement
.)
PreviewDragEnter
(Inherited from
UIElement
.)
PreviewDragLeave
(Inherited from
UIElement
.)
PreviewDragOver
(Inherited from
UIElement
.)
PreviewDrop
(Inherited from
UIElement
.)
PreviewGiveFeedback
(Inherited from
UIElement
.)
PreviewGotKeyboardFocus
(Inherited from
UIElement
.)
PreviewKeyDown
(Inherited from
UIElement
.)
PreviewKeyUp
(Inherited from
UIElement
.)
PreviewLostKeyboardFocus
(Inherited from
UIElement
.)
PreviewMouseDoubleClick
(Inherited from
Control
.)
PreviewMouseDown
(Inherited from
UIElement
.)
PreviewMouseLeftButtonDown
(Inherited from
UIElement
.)
PreviewMouseLeftButtonUp
(Inherited from
UIElement
.)
PreviewMouseMove
(Inherited from
UIElement
.)
PreviewMouseRightButtonDown
(Inherited from
UIElement
.)
PreviewMouseRightButtonUp
(Inherited from
UIElement
.)
PreviewMouseUp
(Inherited from
UIElement
.)
PreviewMouseWheel
(Inherited from
UIElement
.)
PreviewQueryContinueDrag
(Inherited from
UIElement
.)
PreviewStylusButtonDown
(Inherited from
UIElement
.)
PreviewStylusButtonUp
(Inherited from
UIElement
.)
PreviewStylusDown
(Inherited from
UIElement
.)
PreviewStylusInAirMove
(Inherited from
UIElement
.)
PreviewStylusInRange
(Inherited from
UIElement
.)
PreviewStylusMove
(Inherited from
UIElement
.)
PreviewStylusOutOfRange
(Inherited from
UIElement
.)
PreviewStylusSystemGesture
(Inherited from
UIElement
.)
PreviewStylusUp
(Inherited from
UIElement
.)
PreviewTextInput
(Inherited from
UIElement
.)
PreviewTouchDown
(Inherited from
UIElement
.)
PreviewTouchMove
(Inherited from
UIElement
.)
PreviewTouchUp
(Inherited from
UIElement
.)
QueryContinueDrag
(Inherited from
UIElement
.)
QueryCursor
(Inherited from
UIElement
.)
RequestBringIntoView
(Inherited from
FrameworkElement
.)
SizeChanged
(Inherited from
FrameworkElement
.)
SourceUpdated
(Inherited from
FrameworkElement
.)
StylusButtonDown
(Inherited from
UIElement
.)
StylusButtonUp
(Inherited from
UIElement
.)
StylusDown
(Inherited from
UIElement
.)
StylusEnter
(Inherited from
UIElement
.)
StylusInAirMove
(Inherited from
UIElement
.)
StylusInRange
(Inherited from
UIElement
.)
StylusLeave
(Inherited from
UIElement
.)
StylusMove
(Inherited from
UIElement
.)
StylusOutOfRange
(Inherited from
UIElement
.)
StylusSystemGesture
(Inherited from
UIElement
.)
StylusUp
(Inherited from
UIElement
.)
TargetUpdated
(Inherited from
FrameworkElement
.)
TextInput
(Inherited from
UIElement
.)
ToolTipClosing
(Inherited from
FrameworkElement
.)
ToolTipOpening
(Inherited from
FrameworkElement
.)
TouchDown
(Inherited from
UIElement
.)
TouchEnter
(Inherited from
UIElement
.)
TouchLeave
(Inherited from
UIElement
.)
TouchMove
(Inherited from
UIElement
.)
TouchUp
(Inherited from
UIElement
.)
Unloaded
(Inherited from
FrameworkElement
.)
See Also
QuickLoadingControl Class
SolutionAnalyzer.Views Namespace


Presentation
I am a PhD. student at the University of Rennes 1. Since October 2014, I am working at Orange Labs in the Identity and Trust Architecture research team and at INRIA/IRISA in the Diverse Team. My Thesis supervisors are Olivier Barais and Gerson Sunye.
Previously, from 2012 to 2014, I worked as an engineer at INRIA Rennes to develop PLASMA Lab, a statistical model checker.
I graduated from Master Degree in Computer Science from the University of Orleans in 2012.
I will defend my PhD Thesis around October 2017. If you are looking for a Computer Scientist, I'm looking for a job!
Research
Currently my topics of interest are related to Identity Management in the Web context and more particularly with the use case of WebRTC in mind.
I am building a Trust Models for Real-Time Communications Services, i.e. WebRTC. The novelty of WebRTC is that the authentication of the call party is decoupled from the signaling process. Identity Providers (IdP) are introduced in the loop. The explicit authentication of the other peer is an interesting paradigm to solve issue we have in the legacy telco services. But it also has drawbacks in terms of choice of IdPs and privacy. Ultimately, is it possible to use an untrusted communication services if we trust the IdPs?
Meanwhile, the W3C is working on adding new functionalities and responsibilities to Web browsers. Several new Web APIs require the browser to manage user authorization grant to Web origin. Identity management could be one of these new functions. Figuring out how existing Web identity protocols such as Oauth2 and OIDC could be used through a Web API is another interesting topics which poses new questions.
Publications
Conferences
- Why Users Cannot Choose Their Identity Providers On The Web?, K. Corre, O. Barais, G. Sunyé, J. Crom, V. Frey.
In PoPETS, the Third Issue of the Proceedings on Privacy Enhancing Technologies Symposium, Minneapolis, USA, 2017 -- Accepted for publication
Technicals
- Procédé de gestion de l'authentification d'un client dans un système informatique, K. Corre, V. Frey.
Brevet WO2017006013 A1
- Requirements for Trust and Privacy in WebRTC Peer-to-peer, R. Copeland, K. Corre, I. Friese, S. El Jaouhari.
IETF Draft, Draft
Tools
The best way to see what I'm working on is to head over Github.
- WebConnect a Firefox Web Extension for browser based identity management, based on WebRTC and JWT.
- ACOR_SDP a WebRTC service that allows identity parameter negotiation through SDP messages.
I contributed to the reThink european project.
Previously I worked on PLASMA Lab, a statistical model-checking tool. Besides implementing PLASMA Lab's GUI and the algorithms produced by the team, I developed distributed versions of these algorithms and an interface with Simulink.
Contact
@IRISA / INRIA Rennes
| Address: | Campus universitaire de Beaulieu |
| 263 Avenue du General Leclerc - Bat 12 | |
| 35042 RENNES Cedex - France | |
| Office F213 | |
| Phone: | |
| Email: |<EMAIL_ADDRESS>|
@Orange Labs
| Address: | 4 Rue du Clos Courtel |
| 35510 CESSON SEVIGNE - France | |
| Office CAL112 | |
| Phone: | |
| Email: |<EMAIL_ADDRESS>|


“Even if Deliveroo as a company didn’t want to discriminate against these workers, it’s still indirect discrimination, says Valerio De Stefano, a professor in labour law at KU Leuven in Belgium who specialises in artificial intelligence and labour regulation.”
“A union representing thousands of English language students in Ireland has been formed. The aim is to fight for better living conditions and fundamental rights of foreign language students in Ireland.”
“The research, carried out by an English language teacher in Dublin, indicates some schools are offering credits rather than refunds and recommending students take their courses at a later date. ”
“A recent large-scale survey conducted by Fiachra Ó Luain, a language specialist and teacher, revealed that international students coming to Ireland frequently find it difficult to deal with the bureaucracy required by Irish immigration.”
“Excellent examples of righteous anger were seen by students for themselves for their friends, family and fellow students. Plans were proposed. Common ground was recognised. Questions shared and answered and patters of successful interpretation of situations, the law, and contracts were shared. A clear analysis became apparent.”
“The English Language Student Union (ELSU), is the brainchild of activists and teachers at Ireland English Language Student Solidarity (CIELS), a group set up to campaign for the rights of English learners in Ireland.”


{{selected.name}} am {{data | currently | time | dateFmt}} um {{data | currently | time | timeFmt}}
/ {{data | currently | localtime:data.offset | timeFmt}} Ortszeit
{{data | currently | temperature | temperatureFmt}}
Gefühlte Temperatur {{data | currently | element:'apparentTemperature' | temperatureFmt}}
{{data | currently | summary}}
Niederschlag: {{data | currently | element:'precipProbability' | percFmt}}


OSC Support
Overview
Most Faust architectures provide Open Sound Control (OSC) support (the implementation is based internally on the oscpack library by Ross Bencina). This allows applications to be remotely controlled from any OSC-capable application, programming language, or hardware device.
OSC support can be added to any Faust program (as long as the target architecture supports it: see tables below) simply by adding the [osc:on]
metadata to the standard option
metadata:
declare options "[osc:on]";
The following tables provides a list of Faust architectures providing OSC support.
Linux Faust Architectures with OSC Support
| Audio System | Environment |
|---|---|
| Alsa | GTK, Qt, Console |
| Jack | GTK, Qt, Console |
| Netjack | GTK, Qt, Console |
| PortAudio | GTK, Qt |
OSX Faust Architectures with OSC Support
| Audio System | Environment |
|---|---|
| CoreAudio | Qt |
| Jack | Qt, Console |
| Netjack | Qt, Console |
| PortAudio | Qt |
Windows Faust Architectures with OSC Support
| Audio System | Environment |
|---|---|
| Jack | Qt, Console |
| PortAudio | Qt |
Other Faust Architectures with OSC Support
| Environment |
|---|
| Android |
| iOS |
| JUCE |
| Bela |
Simple Example
To illustrate how OSC support works let's define a very simple noise generator with a level control (we'll call it noise.dsp
):
This example can be compiled as a standalone Jack Qt application with OSC support simply by running the following command:
faust2jaqt -osc noise.dsp
When the generated application is ran from the command line:
./noise
various information is printed in the standard output, including:
Faust OSC version 0.93 application 'noise' is running on UDP ports 5510, 5511, 5512
Hence, the OSC module makes use of three different UDP ports:
5510
is the listening port number: control messages should be addressed to this port.5511
is the output port number: control messages sent by the application and answers to query messages are sent to this port.5512
is the error port number: used for asynchronous error notifications.
Note that if a declare name "Foo";
line is present in the DSP program, Foo
will be used as the OSC root name, otherwise the DSP filename will be used instead.
These OSC parameters can be changed from the command line using one of the following options:
-port number
sets the port number used by the application to receive messages.-outport number
sets the port number used by the application to transmit messages.-errport number
sets the port number used by the application to transmit error messages.-desthost host
sets the destination host for the messages sent by the application. Note that the destination address can be changed with the first incoming message: first received packet from another host sets the destination address to this host.-xmit 0|1|2
turns transmission OFF, ALL, or ALIAS (default OFF). When transmission is OFF, input elements can be controlled using their addresses or aliases (if present). When transmission is ALL, input elements can be controlled using their addresses or aliases (if present), user's actions and output elements (i.e.,bargraph
, etc.) are transmitted as OSC messages as well as aliases (if present). When transmission is ALIAS, input elements can only be controlled using their aliases, user's actions and output elements are transmitted as aliases only.-xmitfilter path
allows to filter output messages. Note thatpath
can be a regular expression (like/freeverb/Reverb1/*
).
For example:
./noise -xmit 1 -desthost <IP_ADDRESS> -outport 6000
will run noise
with transmission mode ON, using <IP_ADDRESS>
on port 6000
as destination.
Automatic Port Allocation
In order to address each application individually, only one application can be listening on a single port at one time. Therefore when the default incoming port 5510 is already opened by some other application, an application will automatically try increasing port numbers until it finds an available port. Let say that we start noise
and mixer
(two Faust-generated applications with OSC support) on the same machine, we'll get the following:
$ ./noise &
...
Faust OSC version 0.93 application 'noise' is running on UDP ports 5510, 5511, 5512
$ ./mixer
...
Faust OSC version 0.93 application 'mixer' is running on UDP ports 5513, 5511, 5512
The mixer
application fails to open the default incoming port 5510
because it is already opened by noise
. Therefore it tries to find an available port starting from 5513
and opens it. Please note that the two outcoming ports 5511
and 5512
are shared by all running applications.
Discovering OSC Applications
The commands oscsend
and oscdump
from the liblo package provide a convenient mean to experiment with OSC control and potentially debug applications with OSC support.
`oscsend [hostname] [port] [address] [types] [values]`: sends OSC messages
via UDP. `[types]` is a string, the letters indicates the type of the following
values: `i=integer`, `f=float`, `s=string`, etc.
`oscdump [port]`: receives OSC messages via UDP and dump to standard output
Note that OSC messages can be sent from any OSC-compatible applications (e.g., PureData, Max/MSP, etc.).
In the following examples, we'll use two separate terminal windows. The first one will be used to send OSC messages to the noise
application using oscsend
. The second terminal will be used to monitor the messages sent by the application using oscdump
. Commands executed on terminal 1 will be preceded by T1$
. Messages received on terminal 2 will be preceded by T2:
. To monitor on terminal T2 the OSC messages received on UDP port 5511, oscdump
will be used:
T2$ oscdump 5511
Once set we can use the hello
message to scan UDP ports for Faust applications. For example:
T1$ oscsend localhost 5510 "/*" s hello
gives us the root message address, the network and the UDP ports used by the noise application:
T2: /noise siii "<IP_ADDRESS>" 5510 5511 5512
Discovering the OSC Interface of an Application
The OSC interface of an application (the set of OSC messages we can use to control it) can be discovered by sending the get
message to the root:
T1$ oscsend localhost 5510 /noise s get
As an answer to this OSC message, a full description is printed in terminal T2:
T2: /noise sF "xmit" #F
T2: /noise ss "desthost" "<IP_ADDRESS>"
T2: /noise si "outport" 5511
T2: /noise si "errport" 5512
T2: /noise/level fff 0.000000 0.000000 1.000000
The root of the OSC interface is /noise
. Transmission is OFF, xmit
is set to false. The destination host for sending messages is <IP_ADDRESS>
, the output port is 5511
and the error port is 5512
. The application has only one user interface element: /noise/level
with current value 0.0
, minimal value 0.0
and maximal value 1.0
.
Widget's OSC Address
Each widget of an application has a unique OSC address obtained by concatenating the labels of it's surrounding groups with its own label.
There are potential conflicts between widget's labels and the OSC address space. An OSC symbolic name is an ASCII string consisting of a restricted set of printable characters. Therefore to ensure compatibility spaces are replaced by underscores and some other characters (asterisk, comma, forward, question mark, open bracket, close bracket, open curly brace, close curly brace) are replaced by hyphens.
Here is as an example, a very simplified monophonic audio mixer with 4 inputs and one output. For each input we have a dmute button and a level slider:
input(v) = vgroup("input %v", *(1-checkbox("mute")) : *(vslider("level", 0, 0, 1, 0.01)));
process = hgroup("mixer", par(i, 4, input(i)) :> _);
If we query this application:
T1$ oscsend localhost 5510 "/*" s get
We get a full description of its OSC interface on terminal T2:
T2: /mixer sF "xmit" #F
T2: /mixer ss "desthost" "<IP_ADDRESS>"
T2: /mixer si "outport" 5511
T2: /mixer si "errport" 5512
T2: /mixer/input_0/level fff 0.0000 0.0000 1.0000
T2: /mixer/input_0/mute fff 0.0000 0.0000 1.0000
T2: /mixer/input_1/level fff 0.0000 0.0000 1.0000
T2: /mixer/input_1/mute fff 0.0000 0.0000 1.0000
T2: /mixer/input_2/level fff 0.0000 0.0000 1.0000
T2: /mixer/input_2/mute fff 0.0000 0.0000 1.0000
T2: /mixer/input_3/level fff 0.0000 0.0000 1.0000
T2: /mixer/input_3/mute fff 0.0000 0.0000 1.0000
As we can see, each widget has a unique OSC address obtained by concatenating the top level group label "mixer," with the "input" group label and the widget label (see the Labels as Pathnames Section). Please, note that blank spaces are replaced by underscores and metadata are removed during this operation.
All addresses must have a common root. This is the case in our example because there is a unique horizontal group mixer
containing all widgets. If a common root is missing as in the following code:
input(v) = vgroup("input %v", *(1-checkbox("mute")) : *(vslider("level", 0, 0, 1, 0.01)));
process = par(i, 4, input(i)) :> _;
then a default vertical group is automatically create by the Faust compiler using the name of the file mix4
as label:
T2: /mix4 sF "xmit" #F
T2: /mix4 ss "desthost" "<IP_ADDRESS>"
T2: /mix4 si "outport" 5511
T2: /mix4 si "errport" 5512
T2: /mix4/input_0/level fff 0.0000 0.0000 1.0000
T2: /mix4/input_0/mute fff 0.0000 0.0000 1.0000
T2: /mix4/input_1/level fff 0.0000 0.0000 1.0000
T2: /mix4/input_1/mute fff 0.0000 0.0000 1.0000
T2: /mix4/input_2/level fff 0.0000 0.0000 1.0000
T2: /mix4/input_2/mute fff 0.0000 0.0000 1.0000
T2: /mix4/input_3/level fff 0.0000 0.0000 1.0000
T2: /mix4/input_3/mute fff 0.0000 0.0000 1.0000
Controlling the Application Via OSC
Any user interface element of the application can be controlled by sending one of the previously discovered messages/addresses. For example, to set the noise level of the application to 0.2
the following message can be sent:
T1$ oscsend localhost 5510 /noise/level f 0.2
If we now query /noise/level
we get, as expected, the value 0.2
:
T1$ oscsend localhost 5510 /noise/level s get
T2: /noise/level fff 0.2000 0.0000 1.0000
Turning Transmission ON
The xmit
message at the root level is used to control the realtime transmission of OSC messages corresponding to user interface's actions. For example:
T1$ oscsend localhost 5510 /noise si xmit 1
turns transmission in ALL
mode.  It can be turned OFF any time using:
T1$ oscsend localhost 5510 /noise si xmit 0
Use the ALIAS (xmit = 2
) mode if you need to restrict the access to your program: when the ALIAS mode is used, only aliases of input elements (sliders, buttons...) can be used to control them, and output elements (bargraph
) will only emit on their aliases.
Filtering OSC Messages
When the transmission of OSC messages is ON, all the user interface elements are sent through the OSC connection.

Let's say we want to control our previous noise example with TouchOSC on Android. The first step is to configure the TouchOSC host to <IP_ADDRESS>
(the host running our noise application) and outgoing port to 5510
.
Then we can use oscdump 5510
(after quitting the noise application in order to free port 5510
) to visualize the OSC messages sent by TouchOSC. Let's use for that the left slider of "simple layout".
T2: /1/fader1 f 0.993289
T2: /1/fader1 f 1.000000
We can associate this OSC message to the noise level slider by inserting the metadata [osc:/1/fader1 0 1]
into the slider's label:
Several osc aliases can be inserted into a single label allowing the same widget to be controlled by several OSC messages
import("stdfaust.lib");
process = no.noise*hslider("level[osc:/1/fader1 0 1]",0,0,1,0.01);
Because the range of /1/fader1
is 0 to 1 (like the level slider), we can remove the range mapping information and write simply :
import("stdfaust.lib");
process = no.noise*hslider("level[osc:/1/fader1]",0,0,1,0.01);
TouchOSC can also send accelerometer data by enabling Settings/Options/Accelerometer
. Using again oscdump 5510
we can visualize the messages sent by TouchOSC:
T2: ...
T2: /accxyz fff -0.147842 0.019752 9.694721
T2: /accxyz fff -0.157419 0.016161 9.686341
T2: /accxyz fff -0.167594 0.012570 9.683948
T2: ...
As we can see, TouchOSC sends the x, y and z accelerometers in a single message, as a triplet of values ranging approximately from -9.81 to 9.81. In order to select the appropriate accelerometer, we need to concatenate to /accxyz
a suffix /0
, /1
or /2
. For example /accxyz/0
will correspond to x, /accxyz/1
to y, etc. We also need to define a mapping because the ranges are different:
import("stdfaust.lib");
process = no.noise * hslider("level[osc:/accxyz/0 0 9.81]",0,0,1,0.01);
| alias | description |
|---|---|
[osc:/1/rotary1 0 1] |
top left rotary knob |
[osc:/1/rotary2 0 1] |
middle left rotary knob |
[osc:/1/rotary3 0 1] |
bottom left rotary knob |
[osc:/1/push1 0 1] |
bottom left push button |
[osc:/1/push2 0 1] |
bottom center left push button |
[osc:/1/toggle1 0 1] |
top center left toggle button |
[osc:/1/toggle2 0 1] |
middle center left toggle button |
[osc:/1/fader1 0 1] |
center left vertical fader |
[osc:/1/toggle3 0 1] |
top center right toggle button |
[osc:/1/toggle4 0 1] |
middle center right toggle button |
[osc:/1/fader2 0 1] |
center right vertical toggle button |
[osc:/1/rotary4 0 1] |
top right rotary knob |
[osc:/1/rotary5 0 1] |
middle right rotary knob |
[osc:/1/rotary6 0 1] |
bottom right rotary knob |
[osc:/1/push3 0 1] |
bottom center right push button |
[osc:/1/push4 0 1] |
bottom right push button |
[osc:/1/fader3 0 1] |
bottom horizontal fader |
[osc:/accxyz/0 -10 10] |
accelerometer |
[osc:/accxyz/1 -10 10] |
accelerometer |
[osc:/accxyz/2 -10 10] |
accelerometer |
OSC Cheat Sheet
Default Ports
| Port | Description |
|---|---|
5510 |
default listening port |
5511 |
default transmission port |
5512 |
default error port |
5513 |
alternative listening ports |
Command Line Options
| Option | Description |
|---|---|
-port n |
set the port number used by the application to receive messages |
-outport n |
set the port number used by the application to transmit messages |
-errport n |
set the port number used by the application to transmit error messages |
-desthost h |
set the destination host for the messages sent by the application |
-xmit 0|1|2 |
turn transmission OFF, ALL or ALIAS (default OFF) |
-xmitfilter s |
filter the Faust paths at emission time |
Discovery Messages
| Message | Description |
|---|---|
oscsend host port "/*" s hello |
discover if any OSC application is listening on port port |
oscsend host port "/*" s get |
query OSC interface of application listening on port port |
oscsend host port "/*" s json |
query JSON description of application listening on port port |
Control Messages
| Message | Description |
|---|---|
oscsend host port "/*" si xmit 0|1|2 |
set transmission mode |
oscsend host port widget s get |
get widget's value |
oscsend host port widget f v |
set widget's value |
Alias
| Alias | Description |
|---|---|
"...[osc: address lo hi ]..." |
alias with , mapping |
"...[osc:' address]..." |
alias with min, max clipping |
DSP with polyphonic support
When the DSP code is compiled in polyphonic mode, the generated program will create a more complex hierarchy to possibly access and control individual voices.
The following OSC messages reflect the same DSP code either compiled normally, or in polyphonic mode (only part of the OSC hierarchies are displayed here):
// Mono mode
/Organ/vol f -10.0
/Organ/pan f 0.0
// Polyphonic mode
/Polyphonic/Voices/Organ/pan f 0.0
/Polyphonic/Voices/Organ/vol f -10.0
...
/Polyphonic/Voice1/Organ/vol f -10.0
/Polyphonic/Voice1/Organ/pan f 0.0
...
/Polyphonic/Voice2/Organ/vol f -10.0
/Polyphonic/Voice2/Organ/pan f 0.0


Get the state of an entity, in this case the sun.sun
entity.
After pressing the button, the current state should show below:
Get a specific attribute of an entity, in this case the friendly name of the sun.sun
entity.
Toggle an entity that has toggle support, this includes lights, switches and input booleans. There is no state returned.


Project Name
Description goes here.
| Current Version | 1.0-SNAPSHOT |
|---|---|
| URL | [url] |
| SCM URL | [scm url] |
| Issue Tracker URL | [issue url] |
Description goes here.
| Current Version | 1.0-SNAPSHOT |
|---|---|
| URL | [url] |
| SCM URL | [scm url] |
| Issue Tracker URL | [issue url] |
| Group ID | group ID |
|---|---|
| Artifact ID | artifact ID |


| 1 | package fr.sii.ogham.email.sendgrid.sender.exception; | |
| 2 | ||
| 3 | import static fr.sii.ogham.core.CoreConstants.SERIAL_VERSION_UID; | |
| 4 | ||
| 5 | import fr.sii.ogham.email.attachment.Attachment; | |
| 6 | ||
| 7 | /** | |
| 8 | * Specific exception for SendGrid that indicates that an attachment is not | |
| 9 | * readable or doesn't exist. | |
| 10 | * | |
| 11 | * @author Aurélien Baudet | |
| 12 | * | |
| 13 | */ | |
| 14 | public class AttachmentReadException extends SendGridException { | |
| 15 | private static final long serialVersionUID = SERIAL_VERSION_UID; | |
| 16 | ||
| 17 | private final transient Attachment attachment; | |
| 18 | ||
| 19 | public AttachmentReadException(String message, Attachment attachment, Throwable cause) { | |
| 20 | super(message, cause); | |
| 21 | this.attachment = attachment; | |
| 22 | } | |
| 23 | ||
| 24 | public AttachmentReadException(String message, Attachment attachment) { | |
| 25 | super(message); | |
| 26 | this.attachment = attachment; | |
| 27 | } | |
| 28 | ||
| 29 | public AttachmentReadException(Throwable cause, Attachment attachment) { | |
| 30 | super(cause); | |
| 31 | this.attachment = attachment; | |
| 32 | } | |
| 33 | ||
| 34 | public Attachment getAttachment() { | |
| 35 |
1
1. getAttachment : replaced return value with null for fr/sii/ogham/email/sendgrid/sender/exception/AttachmentReadException::getAttachment → NO_COVERAGE |
return attachment; |
| 36 | } | |
| 37 | } | |
Mutations | ||
| 35 |
1.1 |


--- layout: post title: Forcing a download tags: [] status: publish type: post published: true meta: {} ---
Most browser these are cleaver enough to determine the mime type of documents being served up by the web server and then fire up the application within the browser window. Every now and then though, this is not the desired effect. And doubly so when you want to a little processing before serving up the required document (like say a download counter). This scenario was causing the served up document to occasionally not render properly (read display complete and utter gobbledegook). Displayed below is a small code snippet that will show you how you can force the browser to prompt the user for download, in this case a PDF document.
<cfset local.file = "the full path to your file goes here" />
<cfheader name="Content-Disposition" value="attachment; filename=#GetFileFromPath(local.file)#">
<cfcontent type="application/pdf" file="#local.file#" />
The first and third line would normally be used to serve a file of a different content type. This time round it's a PDF document. The trick to forcing the browser to prompt the user for action lies in the <cfheader> tag, namely by specifying an attribute value and giving it a value of attachment, separated by a semi colon (;) and followed by the full path and file name again. Et Voila, load the page and dialogue pops up. Omit it and the <cfheader> tag and the PDF file will display in-line.


Straborbera Marathon
Novi Ligure => Cabella Ligure ITA
Race Winners
(23 runnings, 7 as a marathon)
25 Apr
2005
1:33:12
1:49:30
25 Apr
2004
1:30:02
1:48:39
25 Apr
2003
2:23:08
2:59:28
25 Apr
2002
2:22:56
3:11:31
25 Apr
2001
2:21:23
3:12:31
25 Apr
2000
2:22:39
2:51:12
25 Apr
1999
2:27:04
2:51:32
25 Apr 1998
2:26:13
3:07:25
25 Apr
1997
2:22:00
3:23:12
25 Apr
1996
2:05:28
2:37:35
25 Apr
1995
---
---
25 Apr
1994
---
---
25 Apr
1993
2:00:04
n/a
25 Apr
1992
1:59:15
n/a
25 Apr
1991
---
---
25 Apr
1990
2:05:03
---
25 Apr
1989
---
---
25 Apr
1988
---
---
25 Apr
1987
---
---
25 Apr
1986
---
---
25 Apr
1985
---
---
25 Apr
1984
---
---
25 Apr
1983
---
---
1982
---
---
Note: 1982 was the inaugural year. Novi Ligure is at an elevation of 192 m; Cabella Ligure is at an elevation of
500 m; the straight-line distance between these towns is roughly 26 km. The marathon course climbs 308 m or 7.3
m/km, accounting for the relatively slow times. The race distance for 1982-93 and 1995-96 was 33 km;the race distance
for 1994 was 16 km; the race distance for 2004 to date has been 26 km.
Ridha benLazhar-2
Valeria Straneo-2
Ridha benLazhar (MAR)
Valeria Straneo (ITA)
Joshua Rop-2
Anna Boschi (ITA)
Joshua Rop (KEN)
Maria Grazia Navacchia-3
Emanuele Zenucchi-2
Maria Grazia Navacchia-2
Jonah Koech (KEN)
Elena Komkova (RUS)
Emanuele Zenucchi (ITA)
Guliya Tazetdinova (RUS)
Roberto Barbi-2
Maria Grazia Navacchia (ITA)
Roberto Barbi (ITA)
Marinella Satta (ITA)
Maurizio Gemetto (ITA)
Manuela Livani (ITA)
n/a
n/a
n/a
n/a
Nicola Calia-2
G C Melillo (ITA)
Nicola Calia (ITA)
Rosy Giudici (ITA)
n/a
n/a
Roberto Ghirotto (ITA)
n/a
n/a
n/a
n/a
n/a
n/a
n/a
n/a
n/a
n/a
n/a
n/a
n/a
n/a
n/a
n/a
n/a
Most Wins
(1992-date)
Men
2
Nicola Calia (ITA)
1992-93
.
Roberto Barbi (ITA)
1997-98
.
Emanuele Zenucchi (ITA)
1999,2001
.
Joshua Rop (KEN)
2002-03
.
Ridha benLazhar (MAR)
2004-05
Women
3
Maria Grazia Navacchia (ITA)
1998,2001-02
Prize Money
(ADR qualified runners)
Year Men Women Total 2003 $4,505 $1,100 $5,605
Race Time Bias
(sec/km)
Insufficient data to calculate race time bias.
Competitive Level
(1990-date)
Insufficient data to calculate the competitive level.
Quality Performances
Men No performances under 2:20.
Women No performances under 2:50.
Last Updated on 04 Sep 2005
Contributors: Franco Civai (36), Juraj Gasparovic (2)


I am currently a senior undergraduate student at BITS Pilani, K.K.Birla Goa Campus pursuing a dual degree in Msc Biology and B.E in Computer Science expected to graduate in 2023. Currently my interest lies in doing project in ML domain , particulary in field of Cognitive neuroscience(currently have a paper under review hope it gets published). I have also dabelled in the usecases of genetic algorithms in some of my personal miniprojects. In future i hope to move to work in research related to Data analytics and ML in applied sciences
I have also worked under some students organizations in my time during college : worked as organizing committee member of Spree, was part of astronomy club SEDS Celestia which regularly engages in sky obseravations; also was part of social activities with Abhigyaan
-Python
-Machine Learning
-Deep Learning
-Cognitive Neuroscience
Msc Biological Sciences &
B.E Computer Sciences ,2023
Worked at Kizora Ltd on a ML project, used for predicting medications based on symptoms. Work involved using flask API for backend
At BITS Pilani, Goa
Classify trash images using Convoulutional neural nets .
Check it out


Chris Jericho believes WWE's booking of The Fiend is cartoonish
by Karan BediChris Jericho was interviewed recently by WCW Legends Disco Inferno and Konnan on their Keepin' it 100 Podcast. Jericho spoke about the creative process and how AEW differs from WWE, especially with respect to the promos.
Jericho then discussed Survivor Series and explained that although he liked the show, he felt the way WWE built up Bray Wyatt aka The Fiend in promos was not believable and felt "cartoonish".
"I watched Survivor Series and it was really good. But they had this promo with Daniel Bryan and Miz and it's like, for the sake of our children, our families, you have to stop The Fiend. Nobody talks like that. You know what I mean?  And it's cartoonish in a bad way."
Jericho also added that his promo with Scorpio on Dynamite was cartoonish but fit well with the characters.
"What we did last week with Scorpio was cartoonish too, like if the guy would allow himself to be talked into a championship match but it worked. Because it was fun and you had the right characters to do it."
Some WWE fans may not agree with Jericho's opinion about The Fiend's booking, but his criticisms do carry weight as he seems to provide a very careful analysis of both companies and their use of promos.


Some of the calculable trial functions:
Pick a trial function.
Note
How to pick a trial function? For ground state energy, we should pick a function that has the same property as the real ground state. This requires some understanding of the problem we are dealing with.
Things to consider:
Why don’t we just use a most general variational method to find out the ground state? Because we will eventually come back to the time-independent Shrödinger equation.
Suppose we have a functional form
The reason we have this Lagrange multiplier method is that the wave function should be normalized and this multiplier provides the degree of freedom. We would only get a wrong result if we don’t include this DoF.
Variation of \(\psi^*\),
Now what?
Not helpful.
For a potential \(V(x)=b x^n\), we can prove that virial theorem is valid for ground state if we use Gaussian trial function \(e^{- \alpha x^2/2}\).
A MMA proof is here.
Virial theorem is pretty interesting. It shares the same math with equipartition theorem.
This is a semi-classical method. It is semi classical because we will use the classical momentum
The following points are important for this method.
WKB start from a classical estimation of wave number at a certain energy \(E\) which is later quantified by the Bohr-Sommerfeld quantization rule.
Conservation law:
where \(\rho = \psi^* \psi\), \(\vec j = -\frac{\hbar}{2 m i} \left( \psi \nabla \psi^* - \psi^* \nabla \psi \right)\). This can be derived from Shrödinger equation easily.
Phase: Wave function is generally \(A(x)\exp(\phi(x))\). However, \(\phi(x)\) should be the area of the phase function starting from some initial point. For example in WKB, \(k(x) = \phi'(x)\) and \(\phi(x) = \int \phi'(x')d x' = \int k(x') d x'\).
Using this general wave function and conservation law we find out that \(A(x) ~ \frac{1}{\sqrt{k(x)}}\). Then we can apply the two boundary conditions. However we will find two different wave functions given by two boundary conditions. Now we should connect them because \(\psi(a) = \psi(b)\) exactly. By comparing the two wave functions we can find something like Bohr-Sommerfeld quantization rule.
Correction at bouldary: However, this method requires that the potential varies slowly or equivalently the wave number varies slowly. Basicly we are just using the following approximation:
For example when taking the derivative of wave function,
where we drop the term with \(A'(x)\). That is to say
But at boundary where \(E = V\), this is obviously not valid because \(k=0\). So we need to fix this problem.
The solution is to use first order of the potential in a Taylor expansion. Then solve the problem exactly. Finally we connect regions that is far out from the boundary, need the boundary and between the boundary.
If we can have a good boundary condition, then the energy spectrum given by WKB can be very good. Even we don’t have a good boundary condtion, the excited states given by this method are always close to the exact ones.
© 2017, Lei Ma. | Created with Sphinx and . | On GitHub | Neutrino Notebook Statistical Mechanics Notebook | Index | Page Source


A Python CLI web-scraper that bundles the serial fictions of Wildbow (primarily Worm) locally, for offline reading. As a web serial, Worm was published in over 300 installments, each on a separate webpage, which makes for nail-biting serial reading and laborious binge-reading.


It's through the WellStar Foundation's Team Member Giving Program that we as an organization are able to support one common goal - to deliver world-class healthcare for our families, friends and neighbors across all WellStar communities.
Contribute to your neighbohood WellStar hospital of your choice. Your donation provides support for equipment and facility enhancements that advance patient care.
The Emergency Assistance Fund helps team members who need financial support after experiencing an unforeseen catastrophic event.
The WellStar Foundation Educational Scholarship Program offers financial assistance to qualified persons continuing their education in a healthcare related field. WellStar Foundation Educational Scholarships are awarded to WellStar team members, team member dependents, and team member spouses.
The general fund is dedicated to support health initiatives that would othwerwise go unfunded, including projects with the most immediate need across WellStar facilities and communities.


{% extends 'common/base_main.html' %} {% block scripts %} {{ super() }} {% endblock %} {% block contenttitle %}
Author:
{{ pipeline.author }}
URL:
Description:
{{ pipeline.description }}
Descriptor URL:
Container Image:
{{ key + ": "}}{{ pipeline["container-image"][key] }}
{% endfor %}Tool DOI:
{{ pipeline["tool-doi"] }}
CONP pipelines can be easily installed and run on any computer wth a container engine. The preferred container for the tool is available in the Container Image field above. For detailed information on how to use Boutiques, please visit this tutorial.
1. List the inputs/outputs needed for the pipeline to run
Note: this command will list only the required options to run the pipeline. To view the complete list of options, use
bosh example --complete {{ pipeline.id }}
2. Create an invocation JSON file based on the output of the
bosh example
3. Run the pipeline with the invocation JSON file created in 2.
Note: the option -s
will show STDERR
,
STDOUT
in the terminal. The option -v
allows
mounting a directory from your system onto the container engine.


Getting Started with the Nachos Project #2
The slides presented and discussed in class are available:
[PPT],
[PDF].
Downloading and Installing Nachos
This is a continuation from Project #1. So you can just keep extending your code. Besides, there
is little connection between what you did for project #1 and
for this project. If somehow your code was completely broken,
then you can use Henri's own solution for Project #1: nachos-java-proj1-solution.zip as the
starting point.
Important: Although this is our "Project #2", you still need to cd to the proj1 directory in nachos to make and run. (This is because I've split a single project into two.)
In this project you're only adding/modifying source code in the PriorityScheduler.java file. Do not modify code anywhere else (since you don't turn it in).
Question #0: Setting the Stage [0pts]
In this project we're implementing a priority scheduler for Nachos. There
is already a class called PriorityScheduler that's only very
partially implemented that you need to complete. There is also a
PrioritySchedulerTest class that has extensive testing.
In order to use your priority scheduler, you will need to change the line in proj1/nachos.conf that specifies the scheduler class to use. The ThreadedKernel.scheduler key is initially equal to nachos.threads.RoundRobinScheduler. You need to change this to nachos.threads.PriorityScheduler when you're ready to run Nachos with priority scheduling.
Question #1: A Priority Scheduler [30pts]
Implement a priority scheduler that, when choosing which thread to remove
from the ready queue to run, always chooses a thread of the highest
(effective) priority. If multiple threads with the same highest priority
are waiting, the scheduler should choose the one that has been waiting
in the queue the longest. Therefore, if there are, say, only 2 threads with equal priority in the system, then their execution will be interleaved across the
avialable time slices.
The first test in PrioritySchedulerTest tests the basic capability of the scheduler. When you run it, it prints a description of what it does. All other tests deal with Question #2, so you can comment them out in PrioritySchedulerTest.java.
Question #2: Priority Donation [30pts]
Enhance your scheduler from Question #1 so that it deals with the Priority
Inversion problem (via so-called priority donation).
Tests #2, #3, and #4 in PrioritySchedulerTest test the priority donation feature of your scheduler. Each of them corresponds to an additional level of sophistication. A good solution will not care and work for all of them. But we're making allowances here, allowing a weak solution that still work on simple cases to earn you some points (10 points for each successfully passed test).
Important: It is important that you do not break the abstraction barriers while doing this part -- the Lock class does not need to be modified. Priority donation should be accomplished by creating a subclass of ThreadQueue that will accomplish priority donation when used with the existing Lock class.


--- type: palette title: Primary palette usage: Use scss variables or classnames stylesheet: '/scss/common/palette.scss' ---


You can fly around the globe in Google Earth using the flight simulator feature. This allows you to operate a simulated aircraft using either your mouse or another controller.
To enter the flight simulator, do one of the following:
The Flight Simulator dialog box appears. You need to chose the following:
To change these settings, exit the flight simulator and press Ctrl + Alt + A ( + Option + A on the Mac)
To view this page at any time, press Ctrl + H. (Windows and Linux only).
To exit the flight simulator, do one of the following:
Once you have entered the flight simulator, a head-up display (HUD) appears:
To hide or display the HUD, press H.
You can use either a joystick or mouse with the flight simulator feature. To use a mouse,
click the mouse in the center of the screen so the cursor becomes a + (cross). To pause
or resume the flight simulator at any time, press the space bar.
To take off, first press the Page Up key to increase thrust and move the aircraft down
the runway. Once your plane is moving, move the mouse or joystick back slightly down.
 To change direction or bank the aircraft, make small
motions with the mouse or joystick. Be careful not to over-correct. Once the wings are
level, center the mouse or joystick. To look around, press the arrow keys + Alt (slow) or
Ctrl (fast).
To adjust thrust, aileron, elevator, rudder, elevator trim nose or flap, see the keyboard shortcuts
below.
Landing is a bit trickier and takes some practice. To land the aircraft:
This section describes the various keyboard combinations that you can use with the flight simulator. To enter the flight simulator mode, press Ctrl + Alt + A ( + Option + A on the Mac). Once you have entered flight simulator mode for the first time, you can re-enter the mode by choosing Tools > Enter Flight Simulator. To leave flight simulator mode, click Exit Flight Simulator in the top right corner or press Ctrl + Alt + A (+ Option + A on the Mac).
The following keystrokes control navigation and other aspects of the flight simulator. You can also control the aircraft with a mouse or joystick. To disable or enable mouse controls, left click (single click on a Mac). Once mouse controls are active, the pointer shape changes to a cross on your screen.
|
Command |
Windows/Linux Keystroke(s) |
Mac Keystroke(s) |
Result or Comment |
|
|---|---|---|---|---|
| Exit flight simulator | Ctrl + Alt + A, Escape | + Option + A, Escape | Exits flight simulator mode. | |
| Open flight simulator options | Ctrl + Alt + A | + Option + A | Opens the flight simulator dialog box. | |
| Rotate pilot viewpoint | Arrow keys + Alt (slow) or Ctrl (fast) | Arrow keys + Alt (slow) or Ctrl (fast) | Moves the viewpoint in the direction of the arrow. | |
| Display flight simulator help | Ctrl + H | - | Opens this flight simulator keyboard commands page. | |
| Increase thrust | Page Up | Page Up | - | |
| Reduce thrust | Page Down | Page Down | - | |
| Aileron left | Left arrow | Left arrow | - | |
| Aileron right | Right arrow | Right arrow | - | |
| Elevator push | Up arrow | Up arrow | - | |
| Elevator pull | Down arrow | Down arrow down | - | |
| Rudder left | Insert | Shift + left arrow | - | |
| Rudder right | Enter (numeric keypad) | Enter (numeric keypad) | - | |
| Rudder left | Shift + left arrow | Shift + left arrow | - | |
| Rudder right | Shift + right arrow | Shift + right arrow | - | |
| Elevator trim nose down | Home | Home | - | |
| Elevator trim nose up | End | End | - | |
| Elevator trim nose down | Shift + up arrow | Shift + up arrow | - | |
| Elevator trim nose up | Shift + down arrow | Shift + down arrow | - | |
| Reduce flap setting | Left bracket | Left bracket | - | |
| Increase flap setting | Right bracket | Right bracket | - | |
| Reduce flap setting | Shift + F | Shift + F | - | |
| Increase flap setting | F | F | - | |
| Center aileron and rudder | 5 | 5 | - | |
| Center aileron and rudder | C | C | - | |
| Extend/retract landing gear | G | G | Only works if landing gear is retractable on current aircraft | |
| Left wheel brake | , (comma) | , (comma) | - | |
| Right wheel brake | . (period) | . (period) | - | |
| Pause simulation | Space | Space | - | |
| Toggle HUD | H | H | - |
Updated on


The large beach area will accommodate your outdoor leisure needs
Watch the ever changing harbour, from small local boats to mega yachts
Let yourself be amazed by the sunsets from the rooftop deck
Enjoy the canal with its many local, colourful boats and friendly captains from the rooftop terrace or dockside
Everything you need to prepare delicious meals or mix a few drinks
Spacious living area for your everyday needs
When the time comes for the lights to go out
From the bedroom, to the bathroom, to the outdoor shower
Ever dreamed of taking a shower in the jungle?
A soothing environment for a perfect night
Enjoy the view of the sea from this charming bathroom
A beautiful, spacious pool just outside your door
Let the sound of the running water enhance your deck experience
From the pool to the lounge in a couple of steps
The pool is easily accessible from any level
Take advantage of the pool lounge area for all your entertainment needs
Let mother nature enchant the second floor deck
Relax on the deck with a view of the harbor
Relax by the pool surrounded by nature
A nice outdoor shower for all your post-adventure experiences
The boat watcher's heaven
A spacious boat dock with its own shed
Sun or shade, the garden will help you find the perfect spot to relax throughout the day
Peek at the water from the garden
Stroll on the winding paths of the garden for an afternoon delight
Awaken your inner gardener


CCEL Privacy Policy
Because we respect your privacy and are committed to protecting it, we have adopted this Privacy Policy. There are several CCEL services that require the collection of information from you. These services include making purchases through the CCEL Store and signing up with a user name and password to enable you to download books and access community and annotation features. Other services may set cookies on your computer. These include installing books on your computer, annotating books, and managing your personal preferences.
The CCEL Store
The CCEL store works in collaboration with PayPal. PayPal is governed by its own privacy policy. Users concerned about submitting information to PayPal should review PayPal's privacy statement.
We receive from paypal.com only your name, postal address, e-mail address, and the item(s) and quantity you have ordered. This information is used only internally, and it is not sold or rented to other parties. You will not be placed on any mailing lists unless you give permission to do so.
Our Use of "Cookies"
Cookies are small bits of data that we send to your computer.
The cookies are not used for tracking users outside the CCEL Web site, and they are not accessible by third parties.
Web Site Traffic Information
When you visit this or any Web site, information is available to the site on the pages you view, the time of your visit, the browser you are using, the address of the computer you visit from, and the address of the page you are coming from. We use this information internally only, to better understand user needs and preferences and make the CCEL more useful. We do not share this information with third parties unless required by law, and we do not track Web sites you visit before or after you access the CCEL.
Our Use and Disclosure of Information
The CCEL will not sell or rent any of your personally identifiable information to third parties.
The CCEL does not send unsolicited e-mail to users. Only users who have given permission receive CCEL announcements or e-mail messages from the CCEL. Examples of this include voluntarily joining a discussion group or signing up to receive CCEL's newsletter,.
 While CCEL does not collect or disseminate information from our users (other than the exceptions listed elsewhere in this privacy policy), some ad brokers are able to recognize the types of Web pages that our users have visited through their own ‘cookies.’ Some of these ad brokers will select ads to place on our web site based on past web page activity of our users. CCEL, however, does not share, sell, or distribute this information, nor do the ad brokers obtain this information from CCEL.CCEL displays ads by Google, which uses the Doubleclick DART cookie. This allows Google to display relevant ads based on activity on our site as well as other activity on other sites within the Google Ad Network. Users may opt out of this system at any time.
Notification of Changes
This policy may be revised over time as new features are added to CCEL or as we incorporate suggestions from our users. The CCEL is not responsible for notifying users of changes to this policy.
We will post the amended Privacy Policy promptly on our Web site so that you can always review what information we gather, how we might use that information, and whether we will disclose it to anyone. Please check the CCEL Web site at www.ccel.org/info/privacy.html for the current version of our Privacy Policy.


Hello, Harry
Thanks for creating an Landrick account. To continue, please confirm your email address by clicking the button below :
Confirm Email Address
This link will be active for 30 min from the time this email was sent.
Landrick
Support Team
© 2019-20 Landrick.


Routines example
use ::BBjGridExWidget/BBjGridExWidget.bbj::BBjGridExWidget
use com.basiscomponents.db.ResultSet
use com.basiscomponents.bc.SqlQueryBC
declare auto BBjTopLevelWindow wnd!
wnd! = BBjAPI().openSysGui("X0").addWindow(10, 10, 800, 600, "My First Grid")
wnd!.setCallback(BBjAPI.ON_CLOSE,"byebye")
gosub main
process_events
rem Retrieve the data from the database and configure the grid
main:
declare SqlQueryBC sbc!
declare ResultSet rs!
declare BBjGridExWidget grid!
sbc! = new SqlQueryBC(BBjAPI().getJDBCConnection("CDStore"))
rs! = sbc!.retrieve("SELECT * FROM CDINVENTORY")
grid! = new BBjGridExWidget(wnd!, 100, 0, 0, 800, 600)
grid!.setData(rs!)
return
byebye:
bye
OOP example
use java.util.Arrays
use java.util.ArrayList
use ::BBjGridExWidget/BBjGridExWidget.bbj::BBjGridExWidget
rem /**
rem * This file is part of the MyPackage.
rem *
rem * For the full copyright and license information, please view the LICENSE
rem * file that was distributed with this source code.
rem */
rem /**
class public Employee
field public BBjNumber ID
field public BBjString Name$
classend
class public Salaried extends Employee implements Payable
field public BBjNumber MonthlySalary
method public BBjNumber pay()
methodret #MonthlySalary
methodend
method public void print()
print "Employee",#getID(),": ",#getName()
print #pay():"($###,###.00)"
methodend
method public BBjNumber account()
methodret 11111
methodend
classend


speedcalc.ET:
Subclass for evapotranspiration(ET) created for the purpose of
organization within the SpeedCalc superclass; These are conversions
commonly used for ET calculations.
speedcalc.Length:
Subclass for Length created for the purpose of organization within
the SpeedCalc superclass; These are conversions commonly used for
Length calculations.
speedcalc.Pressure:
Subclass for Pressure created for the purpose of organization
within the SpeedCalc superclass; These are conversions commonly
used for Pressure calculations.
speedcalc.Time:
Subclass for Time created for the purpose of organization within
the SpeedCalc superclass; These are conversions commonly used for
Time calculations.
speedloader.DryCreek:
Subclass for SpeedLoader created for the purpose of organization
within the SpeedLoader superclass; These are loads specifically for
data coming from the Dry Creek Experimental Watershed (DCEW):
http://earth.boisestate.edu/drycreek/
unittest.case.TestCase:
A class whose instances are single test cases.


8. First Order Logic
A logical knowledge base represents the world using a set of sentences with no explicit structure. An analogical representation, on the other hand, has physical structure that corresponds directly to the structure of the thing represented. Consider a road map of your country as an analogical representation of facts about the country—it represents facts with a map language. The two-dimensional structure of the map corresponds to the two-dimensional surface of the area.
-
Give five examples of symbols in the map language.
-
An explicit sentence is a sentence that the creator of the representation actually writes down. An implicit sentence is a sentence that results from explicit sentences because of properties of the analogical representation. Give three examples each of implicit and explicit sentences in the map language.
-
Give three examples of facts about the physical structure of your country that cannot be represented in the map language.
-
Give two examples of facts that are much easier to express in the map language than in first-order logic.
-
Give two other examples of useful analogical representations. What are the advantages and disadvantages of each of these languages?
Consider a knowledge base containing just two sentences: $P(a)$ and $P(b)$. Does this knowledge base entail $\forall\,x\ P(x)$? Explain your answer in terms of models.
Is the sentence ${\exists\,x,y\;\;} xy$ valid? Explain.
Write down a logical sentence such that every world in which it is true contains exactly one object.
Exercise 8.5 [two-friends-exercise]
Write down a logical sentence such that every world in which it is true contains exactly two objects.
Exercise 8.6 [8puzzle-parity-exercise]
[fol-model-count-exercise] Consider a symbol vocabulary that contains $c$ constant symbols, $p_k$ predicate symbols of each arity $k$, and $f_k$ function symbols of each arity $k$, where $1\leq k\leq A$. Let the domain size be fixed at $D$. For any given model, each predicate or function symbol is mapped onto a relation or function, respectively, of the same arity. You may assume that the functions in the model allow some input tuples to have no value for the function (i.e., the value is the invisible object). Derive a formula for the number of possible models for a domain with $D$ elements. Don’t worry about eliminating redundant combinations.
Exercise 8.7 [nqueens-size-exercise]
Which of the following are valid (necessarily true) sentences?
-
$(\exists x\ xx) {:\;{\Rightarrow}:\;}({\forall\,y\;\;} \exists z\ yz)$.
-
${\forall\,x\;\;} P(x) \lor \lnot P(x)$.
-
${\forall\,x\;\;} {Smart}(x) \lor (xx)$.
Exercise 8.8 [empty-universe-exercise]
Consider a version of the semantics for first-order logic in which models with empty domains are allowed. Give at least two examples of sentences that are valid according to the standard semantics but not according to the new semantics. Discuss which outcome makes more intuitive sense for your examples.
Exercise 8.9 [hillary-exercise]
Does the fact $\lnot {Spouse}({George},{Laura})$ follow from the facts ${Jim}\neq {George}$ and ${Spouse}({Jim},{Laura})$? If so, give a proof; if not, supply additional axioms as needed. What happens if we use ${Spouse}$ as a unary function symbol instead of a binary predicate?
This exercise uses the function ${MapColor}$ and predicates ${In}(x,y)$, ${Borders}(x,y)$, and ${Country}(x)$, whose arguments are geographical regions, along with constant symbols for various regions. In each of the following we give an English sentence and a number of candidate logical expressions. For each of the logical expressions, state whether it (1) correctly expresses the English sentence; (2) is syntactically invalid and therefore meaningless; or (3) is syntactically valid but does not express the meaning of the English sentence.
-
Paris and Marseilles are both in France.
-
${In}({Paris} \land {Marseilles}, {France})$.
-
${In}({Paris},{France}) \land {In}({Marseilles},{France})$.
-
${In}({Paris},{France}) \lor {In}({Marseilles},{France})$.
-
-
There is a country that borders both Iraq and Pakistan.
-
${\exists\,c\;\;}$ ${Country}(c) \land {Border}(c,{Iraq}) \land {Border}(c,{Pakistan})$.
-
${\exists\,c\;\;}$ ${Country}(c) {:\;{\Rightarrow}:\;}[{Border}(c,{Iraq}) \land {Border}(c,{Pakistan})]$.
-
$[{\exists\,c\;\;}$ ${Country}(c)] {:\;{\Rightarrow}:\;}[{Border}(c,{Iraq}) \land {Border}(c,{Pakistan})]$.
-
${\exists\,c\;\;}$ ${Border}({Country}(c),{Iraq} \land {Pakistan})$.
-
-
All countries that border Ecuador are in South America.
-
${\forall\,c\;\;} Country(c) \land {Border}(c,{Ecuador}) {:\;{\Rightarrow}:\;}{In}(c,{SouthAmerica})$.
-
${\forall\,c\;\;} {Country}(c) {:\;{\Rightarrow}:\;}[{Border}(c,{Ecuador}) {:\;{\Rightarrow}:\;}{In}(c,{SouthAmerica})]$.
-
${\forall\,c\;\;} [{Country}(c) {:\;{\Rightarrow}:\;}{Border}(c,{Ecuador})] {:\;{\Rightarrow}:\;}{In}(c,{SouthAmerica})$.
-
${\forall\,c\;\;} Country(c) \land {Border}(c,{Ecuador}) \land {In}(c,{SouthAmerica})$.
-
-
No region in South America borders any region in Europe.
-
$\lnot [{\exists\,c,d\;\;} {In}(c,{SouthAmerica}) \land {In}(d,{Europe}) \land {Borders}(c,d)]$.
-
${\forall\,c,d\;\;} [{In}(c,{SouthAmerica}) \land {In}(d,{Europe})] {:\;{\Rightarrow}:\;}\lnot {Borders}(c,d)]$.
-
$\lnot {\forall\,c\;\;} {In}(c,{SouthAmerica}) {:\;{\Rightarrow}:\;}{\exists\,d\;\;} {In}(d,{Europe}) \land \lnot {Borders}(c,d)$.
-
${\forall\,c\;\;} {In}(c,{SouthAmerica}) {:\;{\Rightarrow}:\;}{\forall\,d\;\;} {In}(d,{Europe}) {:\;{\Rightarrow}:\;}\lnot {Borders}(c,d)$.
-
-
No two adjacent countries have the same map color.
-
${\forall\,x,y\;\;} \lnot {Country}(x) \lor \lnot {Country}(y) \lor \lnot {Borders}(x,y) \lor {}$\ $\lnot ({MapColor}(x) = {MapColor}(y))$.
-
${\forall\,x,y\;\;} ({Country}(x) \land {Country}(y) \land {Borders}(x,y) \land \lnot(x=y)) {:\;{\Rightarrow}:\;}{}$\ $\lnot ({MapColor}(x) = {MapColor}(y))$.
-
${\forall\,x,y\;\;} {Country}(x) \land {Country}(y) \land {Borders}(x,y) \land {}$\ $\lnot ({MapColor}(x) = {MapColor}(y))$.
-
${\forall\,x,y\;\;} ({Country}(x) \land {Country}(y) \land {Borders}(x,y) ) {:\;{\Rightarrow}:\;}{MapColor}(x\neq y)$.
-
Consider a vocabulary with the following symbols:
${Occupation}(p,o)$: Predicate. Person $p$ has occupation $o$.
${Customer}(p1,p2)$: Predicate. Person $p1$ is a customer of person $p2$.
${Boss}(p1,p2)$: Predicate. Person $p1$ is a boss of person $p2$.
${Doctor}$, $ {Surgeon}$, $ {Lawyer}$, $ {Actor}$: Constants denoting occupations.
${Emily}$, $ {Joe}$: Constants denoting people.
Use these symbols to write the following assertions in first-order logic:
-
Emily is either a surgeon or a lawyer.
-
Joe is an actor, but he also holds another job.
-
All surgeons are doctors.
-
Joe does not have a lawyer (i.e., is not a customer of any lawyer).
-
Emily has a boss who is a lawyer.
-
There exists a lawyer all of whose customers are doctors.
-
Every surgeon has a lawyer.
In each of the following we give an English sentence and a number of candidate logical expressions. For each of the logical expressions, state whether it (1) correctly expresses the English sentence; (2) is syntactically invalid and therefore meaningless; or (3) is syntactically valid but does not express the meaning of the English sentence.
-
Every cat loves its mother or father.
-
${\forall\,x\;\;} {Cat}(x) {:\;{\Rightarrow}:\;}{Loves}(x,{Mother}(x)\lor {Father}(x))$.
-
${\forall\,x\;\;} \lnot {Cat}(x) \lor {Loves}(x,{Mother}(x)) \lor {Loves}(x,{Father}(x))$.
-
${\forall\,x\;\;} {Cat}(x) \land ({Loves}(x,{Mother}(x))\lor {Loves}(x,{Father}(x)))$.
-
-
Every dog who loves one of its brothers is happy.
-
${\forall\,x\;\;} {Dog}(x) \land (\exists y\ {Brother}(y,x) \land {Loves}(x,y)) {:\;{\Rightarrow}:\;}{Happy}(x)$.
-
${\forall\,x,y\;\;} {Dog}(x) \land {Brother}(y,x) \land {Loves}(x,y) {:\;{\Rightarrow}:\;}{Happy}(x)$.
-
${\forall\,x\;\;} {Dog}(x) \land [{\forall\,y\;\;} {Brother}(y,x) {\;\;{\Leftrightarrow}\;\;}{Loves}(x,y)] {:\;{\Rightarrow}:\;}{Happy}(x)$.
-
-
No dog bites a child of its owner.
-
${\forall\,x\;\;} {Dog}(x) {:\;{\Rightarrow}:\;}\lnot {Bites}(x,{Child}({Owner}(x)))$.
-
$\lnot {\exists\,x,y\;\;} {Dog}(x) \land {Child}(y,{Owner}(x)) \land {Bites}(x,y)$.
-
${\forall\,x\;\;} {Dog}(x) {:\;{\Rightarrow}:\;}({\forall\,y\;\;} {Child}(y,{Owner}(x)) {:\;{\Rightarrow}:\;}\lnot {Bites}(x,y))$.
-
$\lnot {\exists\,x\;\;} {Dog}(x) {:\;{\Rightarrow}:\;}({\exists\,y\;\;} {Child}(y,{Owner}(x)) \land {Bites}(x,y))$.
-
-
Everyone’s zip code within a state has the same first digit.
-
${\forall\,x,s,z_1\;\;} [{State}(s) \land {LivesIn}(x,s) \land {Zip}(x)z_1] {:\;{\Rightarrow}:\;}{}$\ $[{\forall\,y,z_2\;\;} {LivesIn}(y,s) \land {Zip}(y)z_2 {:\;{\Rightarrow}:\;}{Digit}(1,z_1) {Digit}(1,z_2) ]$.
-
${\forall\,x,s\;\;} [{State}(s) \land {LivesIn}(x,s) \land {\exists\,z_1\;\;} {Zip}(x)z_1] {:\;{\Rightarrow}:\;}{}$\ $ [{\forall\,y,z_2\;\;} {LivesIn}(y,s) \land {Zip}(y)z_2 \land {Digit}(1,z_1) {Digit}(1,z_2) ]$.
-
${\forall\,x,y,s\;\;} {State}(s) \land {LivesIn}(x,s) \land {LivesIn}(y,s) {:\;{\Rightarrow}:\;}{Digit}(1,{Zip}(x){Zip}(y))$.
-
${\forall\,x,y,s\;\;} {State}(s) \land {LivesIn}(x,s) \land {LivesIn}(y,s) {:\;{\Rightarrow}:\;}{}$\ ${Digit}(1,{Zip}(x)) {Digit}(1,{Zip}(y))$.
-
Exercise 8.13 [language-determination-exercise]
Complete the following exercises about logical sentences:
- Translate into good, natural English (no $x$s or $y$s!):
- Explain why this sentence is entailed by the sentence
-
Translate into first-order logic the following sentences:
-
Understanding leads to friendship.
-
Friendship is transitive.
Remember to define all predicates, functions, and constants you use.
-
True or false? Explain.
-
${\exists\,x\;\;} x{Rumpelstiltskin}$ is a valid (necessarily true) sentence of first-order logic.
-
Every existentially quantified sentence in first-order logic is true in any model that contains exactly one object.
-
${\forall\,x,y\;\;} xy$is satisfiable.
Exercise 8.15 [Peano-completion-exercise]
Rewrite the first two Peano axioms in Section Peano-section as a single axiom that defines ${NatNum}(x)$ so as to exclude the possibility of natural numbers except for those generated by the successor function.
Exercise 8.16 [wumpus-diagnostic-exercise]
Equation (pit-biconditional-equation) on page pit-biconditional-equation defines the conditions under which a square is breezy. Here we consider two other ways to describe this aspect of the wumpus world.
-
We can write [diagnostic rule] leading from observed effects to hidden causes. For finding pits, the obvious diagnostic rules say that if a square is breezy, some adjacent square must contain a pit; and if a square is not breezy, then no adjacent square contains a pit. Write these two rules in first-order logic and show that their conjunction is logically equivalent to Equation (pit-biconditional-equation).
-
We can write [causal rule] leading from cause to effect. One obvious causal rule is that a pit causes all adjacent squares to be breezy. Write this rule in first-order logic, explain why it is incomplete compared to Equation (pit-biconditional-equation), and supply the missing axiom.
Exercise 8.17 [kinship-exercise]
Write axioms describing the predicates ${Grandchild}$, ${Greatgrandparent}$, ${Ancestor}$, ${Brother}$, ${Sister}$, ${Daughter}$, ${Son}$, ${FirstCousin}$, ${BrotherInLaw}$, ${SisterInLaw}$, ${Aunt}$, and ${Uncle}$. Find out the proper definition of $m$th cousin $n$ times removed, and write the definition in first-order logic. Now write down the basic facts depicted in the family tree in Figure family1-figure. Using a suitable logical reasoning system, it all the sentences you have written down, and it who are Elizabeth’s grandchildren, Diana’s brothers-in-law, Zara’s great-grandparents, and Eugenie’s ancestors.
Write down a sentence asserting that + is a commutative function. Does your sentence follow from the Peano axioms? If so, explain why; if not, give a model in which the axioms are true and your sentence is false.
Explain what is wrong with the following proposed definition of the set membership predicate $$
Exercise 8.20 [list-representation-exercise]
Using the set axioms as examples, write axioms for the list domain, including all the constants, functions, and predicates mentioned in the chapter.
Exercise 8.21 [adjacency-exercise]
Explain what is wrong with the following proposed definition of adjacent squares in the wumpus world:
Write out the axioms required for reasoning about the wumpus’s location, using a constant symbol ${Wumpus}$ and a binary predicate ${At}({Wumpus}, {Location})$. Remember that there is only one wumpus.
Assuming predicates ${Parent}(p,q)$ and ${Female}(p)$ and constants ${Joan}$ and ${Kevin}$, with the obvious meanings, express each of the following sentences in first-order logic. (You may use the abbreviation $\exists^{1}$ to mean “there exists exactly one.”)
-
Joan has a daughter (possibly more than one, and possibly sons as well).
-
Joan has exactly one daughter (but may have sons as well).
-
Joan has exactly one child, a daughter.
-
Joan and Kevin have exactly one child together.
-
Joan has at least one child with Kevin, and no children with anyone else.
Arithmetic assertions can be written in first-order logic with the predicate symbol $<$, the function symbols ${+}$ and ${\times}$, and the constant symbols 0 and 1. Additional predicates can also be defined with biconditionals.
-
Represent the property “$x$ is an even number.”
-
Represent the property “$x$ is prime.”
-
Goldbach’s conjecture is the conjecture (unproven as yet) that every even number is equal to the sum of two primes. Represent this conjecture as a logical sentence.
In Chapter csp-chapter, we used equality to indicate the relation between a variable and its value. For instance, we wrote ${WA}{red}$ to mean that Western Australia is colored red. Representing this in first-order logic, we must write more verbosely ${ColorOf}({WA}){red}$. What incorrect inference could be drawn if we wrote sentences such as ${WA}{red}$ directly as logical assertions?
Write in first-order logic the assertion that every key and at least one of every pair of socks will eventually be lost forever, using only the following vocabulary: ${Key}(x)$, $x$ is a key; ${Sock}(x)$, $x$ is a sock; ${Pair}(x,y)$, $x$ and $y$ are a pair; ${Now}$, the current time; ${Before}(t_1,t_2)$, time $t_1$ comes before time $t_2$; ${Lost}(x,t)$, object $x$ is lost at time $t$.
For each of the following sentences in English, decide if the accompanying first-order logic sentence is a good translation. If not, explain why not and correct it. (Some sentences may have more than one error!)
-
No two people have the same social security number.
-
John’s social security number is the same as Mary’s.
-
Everyone’s social security number has nine digits.
-
Rewrite each of the above (uncorrected) sentences using a function symbol ${SS}#$ instead of the predicate ${HasSS}#$.
Translate into first-order logic the sentence “Everyone’s DNA is unique and is derived from their parents’ DNA.” You must specify the precise intended meaning of your vocabulary terms. (Hint: Do not use the predicate ${Unique}(x)$, since uniqueness is not really a property of an object in itself!)
For each of the following sentences in English, decide if the accompanying first-order logic sentence is a good translation. If not, explain why not and correct it.
- Any apartment in London has lower rent than some apartments in Paris.
- There is exactly one apartment in Paris with rent below $1000.
- If an apartment is more expensive than all apartments in London, it must be in Moscow.
Represent the following sentences in first-order logic, using a consistent vocabulary (which you must define):
-
Some students took French in spring 2001.
-
Every student who takes French passes it.
-
Only one student took Greek in spring 2001.
-
The best score in Greek is always higher than the best score in French.
-
Every person who buys a policy is smart.
-
No person buys an expensive policy.
-
There is an agent who sells policies only to people who are not insured.
-
There is a barber who shaves all men in town who do not shave themselves.
-
A person born in the UK, each of whose parents is a UK citizen or a UK resident, is a UK citizen by birth.
-
A person born outside the UK, one of whose parents is a UK citizen by birth, is a UK citizen by descent.
-
Politicians can fool some of the people all of the time, and they can fool all of the people some of the time, but they can’t fool all of the people all of the time.
-
All Greeks speak the same language. (Use ${Speaks}(x,l)$ to mean that person $x$ speaks language $l$.)
Represent the following sentences in first-order logic, using a consistent vocabulary (which you must define):
-
Some students took French in spring 2009.
-
Every student who takes French passes it.
-
Only one student took Greek in spring 2009.
-
The best score in Greek is always lower than the best score in French.
-
Every person who buys a policy is smart.
-
There is an agent who sells policies only to people who are not insured.
-
There is a barber who shaves all men in town who do not shave themselves.
-
A person born in the UK, each of whose parents is a UK citizen or a UK resident, is a UK citizen by birth.
-
A person born outside the UK, one of whose parents is a UK citizen by birth, is a UK citizen by descent.
-
Politicians can fool some of the people all of the time, and they can fool all of the people some of the time, but they can’t fool all of the people all of the time.
-
All Greeks speak the same language. (Use ${Speaks}(x,l)$ to mean that person $x$ speaks language $l$.)
Write a general set of facts and axioms to represent the assertion “Wellington heard about Napoleon’s death” and to correctly answer the question “Did Napoleon hear about Wellington’s death?”
Exercise 8.33 [4bit-adder-exercise]
Extend the vocabulary from Section circuits-section to define addition for $n$-bit binary numbers. Then encode the description of the four-bit adder in Figure 4bit-adder-figure, and pose the queries needed to verify that it is in fact correct.
The circuit representation in the chapter is more detailed than necessary if we care only about circuit functionality. A simpler formulation describes any $m$-input, $n$-output gate or circuit using a predicate with $m+n$ arguments, such that the predicate is true exactly when the inputs and outputs are consistent. For example, NOT gates are described by the binary predicate ${NOT}(i,o)$, for which ${NOT}(0,1)$ and ${NOT}(1,0)$ are known. Compositions of gates are defined by conjunctions of gate predicates in which shared variables indicate direct connections. For example, a NAND circuit can be composed from ${AND}$s and ${NOT}$s: Using this representation, define the one-bit adder in Figure adder-figure and the four-bit adder in Figure 4bit-adder-figure, and explain what queries you would use to verify the designs. What kinds of queries are not supported by this representation that are supported by the representation in Section circuits-section?
Obtain a passport application for your country, identify the rules determining eligibility for a passport, and translate them into first-order logic, following the steps outlined in Section circuits-section.
Consider a first-order logical knowledge base that describes worlds containing people, songs, albums (e.g., “Meet the Beatles”) and disks (i.e., particular physical instances of CDs). The vocabulary contains the following symbols:
${CopyOf}(d,a)$: Predicate. Disk $d$ is a copy of album $a$.
${Owns}(p,d)$: Predicate. Person $p$ owns disk $d$.
${Sings}(p,s,a)$: Album $a$ includes a recording of song $s$ sung by person $p$.
${Wrote}(p,s)$: Person $p$ wrote song $s$.
${McCartney}$, ${Gershwin}$, ${BHoliday}$, ${Joe}$, ${EleanorRigby}$, ${TheManILove}$, ${Revolver}$: Constants with the obvious meanings.
Express the following statements in first-order logic:
-
Gershwin wrote “The Man I Love.”
-
Gershwin did not write “Eleanor Rigby.”
-
Either Gershwin or McCartney wrote “The Man I Love.”
-
Joe has written at least one song.
-
Joe owns a copy of Revolver.
-
Every song that McCartney sings on Revolver was written by McCartney.
-
Gershwin did not write any of the songs on Revolver.
-
Every song that Gershwin wrote has been recorded on some album. (Possibly different songs are recorded on different albums.)
-
There is a single album that contains every song that Joe has written.
-
Joe owns a copy of an album that has Billie Holiday singing “The Man I Love.”
-
Joe owns a copy of every album that has a song sung by McCartney. (Of course, each different album is instantiated in a different physical CD.)
-
Joe owns a copy of every album on which all the songs are sung by Billie Holiday.