ABOUT US
we’re DIU, a young photography studio based in Madrid
we like to be there, capturing your best moments
Nature Photos
Get advice where to get the best nature pictures or show us the place, we will do the rest.
Wedding Photos
We will make sure that this beautiful memory is captured in your album.
Work Photos
Photos for artistic portflios, photos during speeches, whenever you need us, we are here.
People Photos
Get your crew of friends or family together, smile to the camera and will shoot everything with the best angles.
Social Photos
Take an appointment with us, will see more likes than ever before, as we have our own social media consultors.
Sports Photos
We know you need us to capture every bit of those games, where you put everything that you have on the court.
Our customers
TestimonialsOUR TEAM
look at the people that will be helping you
The daily blog
interactive news.
social media and business insights
jan 12, 2021You might have saw what type of performance you can Get if you incorporate social media to your business, here we talk in depth about this topic.
view morethe effect of media on our lives
feb 17, 2021Media is no longer something that is a complement to our life, it seems like now, along with technology, they are the motor that run the modern life.
view more
social


Michael is a blockchain developer at TD and the founder of Bitcoin Canada and the McGill Cryptocurrency Club. While at McGill, Michael organized the Bitcoin Airdrop events where he gave hundreds of students their first bitcoin..
Mr. Venkatramanan P.R
Data Scientist
Thought Works
Venkat is Lead Consultant and Data Scientist at ThoughtWorks. Over the last few years, he has helped build the data science capability within ThoughtWorks India
Mr. Satish Babu
Chair, APRALO
ICANN
Programmer, Development Professional and Internet Governance Practitioner, associated with ICANN, ISOC, IEEE and InApp. Fellow and Past President of Computer Society of India. Chair, APRALO, ICANN and Member, 2017 HAC, IEEE.
Prof. Nandini Vaidyanathan
Chairman and Managing Director
CARMa Venture Services
Having spent 20 years in the corporate sector as a senior management professional in MNC's on all inhabited continents, I now enjoy sharing that experience with and learning from aspiring and practicing entrepreneurs across the globe.
Mr. Manuyash Chaudhari
AI & NLP Developer & Researcher
Accubits
AI & NLP Developer & Researcher, Accubits Technologies. An MS in Machine Learning & Artificial Intelligence from University...
Mr. Rama Brahmam Aletiy
Co-founder & Director - Experience Design
AccThink Design Collaborativeubits
Rama has been instrumental in developing the company into a leading, world-class UX Design and Innovation Consultancy..
Mr. Abhilash Ashok
Senior Lead, UX Development
Valorem
An Incorruptible Passionate Microsoft Technology Stack Enthusiast with rich 8+ years’ experience, well-versed with Windows ...
Mr. Sanju Mathew
CEO
Onbyz
Sanju Mathew is an Mtech Electronics graduate (Signal Processing and Bionics), Entrepreneur, Intel IoT Innovator and a speaker at National and International conferences on Bionics and IoT.
Mr. Anivar Aravind
Founder Executive Director
Indic Project
Anivar A. Aravind is Founder Executive Director of Indic Project, a civic-tech non-profit initiative works on language engineering, technology standards and digital rights.
Mr. Mohammed Rafi T. F.
Behavioural Scientist
Neuro Lingusitic Programme
A Behavioural Scientist, Life Transformation Specialist and International Master Trainer in Neuro Lingusitic Programme...


A common horror trope that says a lot about the genre.
I’m interested in one of the most widespread horror tropes, a very specific scene called the “mirror scare”. Why is it so common, and what does it mean?
You should know what I’m talking about. In the standard mirror scare, a character stands in front of their reflection at a bathroom sink, opens the medicine cabinet, and when they close it, someone or something is behind them. There are variations on it – sometimes the character is just imagining it, or the reflection doesn’t match reality, or it’s used with a different reflector, such as a TV screen.
Here’s an excellent supercut that illustrates the trope nicely:
So, especially after watching so many in a row, what can we take away from this?
First of all, I think it’s worth noting that most of these aren’t creepy. They’re mostly jump scares, there to surprise us more than anything. And to that end, half of the work is accomplished by the sudden blast of music, not the drama or horror of the situation. This is an effective and simple setup for the jump scare, too, which is probably a major contributor to the scene’s popularity.
Second of all, I think it’s interesting to note the way the scene progresses within the supercut. Sometimes it’s played straight, but later on, the films clearly assume a more savvy audience. Since the scene is so common, they assume the audience expects a mirror scary the minute a character stands in front of a cabinet. So the music builds tension, but then nothing happens. Or the filmmakers play a double blind: we think nothing will happen, but it’s a trick. The moment we breathe a sigh of relief, something unnatural happens in the mirror.
It’s also impossible not to at least mention that the character in front of the mirror is almost always a woman. Why is this? I think it’s probably a complex combination of factors that says a lot of things about the horror genre, but that could probably fill a whole other article, so I won’t go into it here.
So why are these scenes so common? I think there are two reasons. First, the mirror is a powerful symbol. It can represent truth, because it might show characters things they couldn’t otherwise see. This is an important device in stories with ambiguity, such as ghost stories. The second reason is that the bathroom is a vulnerable setting. These are intimate moments where characters let their guard down – and that’s exactly when horror loves to strike.
The last possible reason I can think of might seem like a stretch, but bear with me. Maybe, at least some of the time, it’s a metaphor for making horror films? In this case, the mirror parallels the camera itself – after all, a camera lens is itself essentially a mirror.
In cases where the mirror shows something other than what is in front of it, it becomes more than a reflection.  A place that embodies the fear itself. And after all, isn’t that what a horror movie is?


|
Simbody
3.5
|
Matrix "outline" refers to the characteristic relationship between the number of rows and columns of a matrix, without necessarily specifying the absolute dimensions. More...
Classes | |
| struct | Mask |
Public Types | |
| enum | Outline { NoOutline = 0x0000, Scalar = 0x0001, Column = 0x0002, Row = 0x0004, Square = 0x0008, Wide = 0x0010, Tall = 0x0020, Rectangular = 0x0040 } |
| typedef unsigned short | OutlineMask |
Public Member Functions | |
| std::string | name () const |
| MatrixOutline () | |
| Default constructor produces an object containing no outline specification. More... | |
| MatrixOutline (Outline outline) | |
| This is an implicit conversion from the Outline enum to a MatrixOutline object. More... | |
| MatrixOutline & | setToNone () |
| Set the outline back to its default-constructed value of "none". More... | |
| Mask | mask () const |
| When "this" outline is used as a commitment, it represents a mask of acceptable outlines. More... | |
| bool | isSizeOK (int m, int n) const |
| Determine if the proposed shape satisfies this outline. More... | |
| void | getMinimumSize (int &m, int &n) const |
| Return the minimum shape that will satisfy this outline. More... | |
| Outline | getOutline () const |
| Return the outline value stored in this MatrixOutline object. More... | |
Static Public Member Functions | |
| static const char * | name (Outline) |
| static OutlineMask | calcMask (Outline) |
| Compute a mask of acceptable Outline values given a particular value specified as a commitment. More... | |
| static MatrixOutline | calcFromSize (int m, int n) |
| Determine the outline from given actual dimensions. More... | |
Static Public Attributes | |
| static const OutlineMask | AnyOutline = 0x007fU |
| static const OutlineMask | UncommittedOutline = 0xffffU |
Matrix "outline" refers to the characteristic relationship between the number of rows and columns of a matrix, without necessarily specifying the absolute dimensions.
There are seven possible outline attributes:
A matrix handle with no outline commitment can hold a general (rectangular) matrix, which of course includes all the other outlines as well. Vector handles are always committed to column outline, RowVector handles to row outline. Scalar matrices are also rows, columns, and square and some rows and columns are square (if they are 1x1).
Note that certain outlines imply fixed sizes of one or both dimensions.
| typedef unsigned short SimTK::MatrixOutline::OutlineMask |
|
inline |
Default constructor produces an object containing no outline specification.
If used as a commitment it won't accept any outline!
|
inline |
This is an implicit conversion from the Outline enum to a MatrixOutline object.
|
static |
|
inline |
|
inline |
Set the outline back to its default-constructed value of "none".
|
static |
Compute a mask of acceptable Outline values given a particular value specified as a commitment.
For example, if the commitment is "Wide" then Square, Row, and Scalar outlines are also acceptable.
|
inline |
When "this" outline is used as a commitment, it represents a mask of acceptable outlines.
Calculate and return that mask.
| bool SimTK::MatrixOutline::isSizeOK | ( | int | m, |
| int | n | ||
| ) | const |
Determine if the proposed shape satisfies this outline.
| void SimTK::MatrixOutline::getMinimumSize | ( | int & | m, |
| int & | n | ||
| ) | const |
Return the minimum shape that will satisfy this outline.
|
static |
Determine the outline from given actual dimensions.
|
inline |
Return the outline value stored in this MatrixOutline object.
|
static |
|
static |


Contents
Short Descriptions
|
converts glade files into XML files which can be loaded with GtkBuilder. |
|
|
demonstrates GTK+ 2 functionality and provides code for the examples. |
|
|
collects information about loadable input method modules for GTK+ 2 and writes it to standard output. |
|
|
creates mmap()able cache files for icon themes. Starting with gtk+-2.24.24, add the flag “--include-image-data” to this command, if you wish previous behavior, with image data in the cache. |
|
|
contains functions that act as a wrapper around the low-level drawing and windowing functions provided by the underlying graphics system. |
|
|
contains functions that provide an API to implement graphical user interfaces. |


{% extends "squash/base.html" %}
{% block content %}
Projects -> {{ project.name }} ->
{% if version %}
{{ version.version_number }}
{% else %}
Future
{% endif %}
-> Issue {{ issue.issue_number }}
| Project: | {{ project.key }} |
| Version: | {% if version %} {{ version.version_number }} {% else %} Future {% endif %} |
| Name: | {{ issue.name }} |
| Description: | {% firstof issue.description '(No Description)' %} |
| Current State: | {{ issue.state_str }} |
| Start Work | {% else %}Stop Work | {% endif %}Edit Issue | {% if issue.state != 'r' %}Mark as Resolved | {% endif %} {% if issue.state != 'c' %}Mark as Closed | {% endif %} {% if issue.state == 'c' or issue.state == 'r' %}Re-Open Issue | {% endif %}Delete Issue |
| Comments for this issue: | |
| {{ comment.timeCreated }} | {{ comment.text }} |
| {{ comment.user.username }} |


Background category: Buildings Food Nature People Technology Objects
Background refresh rate: Daily Weekly Every time
Last.FM username:
Save


This is a flashcard site for learning JS & jQuery.Please click on a term or concept to see its definition.Happy learning!
Javascript
Operators
Variables
Variable Naming Conventions
Functions
Strings
Methods
Arguments
Parameters
Return
Chaining methods
Booleans


{% extends "page.html" %} {% from "macros/member-badge.html" import member_badge %} {% block body %}
{{ child.description }}


IN THE HIGH COURT OF JHARKHAND AT RANCHI A. B. A. No. 2796 of 2014 John Hansda ...... ... Petitioner Versus The State of Jharkhand ..... ... Opposite Party -------- CORAM : HON'BLE MR. JUSTICE H. C. MISHRA ------ For the Petitioner : Mr. Md. Asadul Haque, Advocate For the State : A.P.P. ------ 6/ 04.12.2014
Heard learned counsel for the petitioner and learned counsel for the State.
The petitioner is apprehending his arrest in connection with O.C.R. Case No. 37 of 2014, for the alleged offences under Section 37 of Air (Prevention and Control) Pollution Act and Sections 38 and 44 of the Water (Prevention and Control of Pollution) Act.
There is allegation against the petitioner to have established his crushing plant without obtaining 'No Objection Certificate' from the Pollution Control Board.
It is submitted by learned counsel for the petitioner that the petitioner has applied for 'No Objection Certificate' within the prescribed time and 'No Objection Certificate' has since been granted to the petitioner on 29.9.2014, which has been brought on record by way of supplementary affidavit.
In the facts of this case, I am inclined to grant anticipatory bail to petitioner, John Hansda. Accordingly, it is directed that in the event of his surrender / arrest, the petitioner, named above, shall be released on bail, on furnishing bail bond of Rs. 10,000/- (ten thousand), with two sureties of the like amount each, to the satisfaction of learned Chief Judicial Magistrate, Pakur, in connection with O.C.R. Case No. 37 of 2014, subject to conditions as laid down under Section 438(2) of the Code of Criminal Procedure.
( H. C. Mishra, J.) R.Kr.


Mr. Prabesh Choudhary is Managing Director at Cryptus Cyber Security Pvt Ltd. & Chief Cyber Security Expert. He has Delivered more than a 100+ training sessions globally on Cyber Security in past 5 years to the renowned Universities and colleges. He has almost 7 years of experience in the penetration testing arena. He has been featured in many news channels like CNN News18, Zee News etc. & also on print media. He is also a Cyber Security Expert for National Institute of Public Cooperation and Child Development(NIPCCD) Government Of India.


CDT 8.0 - New and Noteworthy
See What's new in CDT 8.0 on the CDT Wiki which may contain more recent information.
|
Editor
|
|
|
Override_Markers |
In C++ files, method declarations and definitions are annotated on the vertical bar using three types of symbols:
As in JDT, the annotations have the action which allows to go to the declaration in base. In case of multiple inheritance, the messages also contain the name of direct base class of the overriding method's class if the overrided method's class is further up the inheritance hierarchy. Contrary to JDT, several messages are sometimes generated on one marker (e.g. when the same method is overridden through several base classes). |
|
Selection Expansion |
The C++ editor now allows to expand the selection to enclosing, next and previous nodes of the AST, as well as restore the hierarchy. The behaviour is strictly analogous to JDT and the actions are located in "Edit -> Expand Selection To" menu. |
|
Camel Case Completion |
The C/C++ now supports camel case completion similar to the one of the JDT. The following additional features are available:
|
|
Configurable Name Style |
User-configurable name styles for constants, variables, class fields, getters and setters, and for header, source and test files. |
|
New Code Formatting Options |
New options for formatting of constructor initializer lists, stream output expressions, and inline comments. Numerous improvements to the code formatter. |
|
New Code Templates |
New code templates for namespace and class declarations and for C++ test files. |
|
Code Analysis (Codan)
|
|
|
Unresolved Symbols |
Codan now has a checker which generates Problems on instances of ProblemBindings in AST, generated by the Parser. This allows to reveal many errors while typing. Quick fixes are provided for a subset of problems. As for now, the available fixes are:
|
|
Refactoring
|
|
|
Rename Refactoring as Quick Fix |
Rename in workspace option in quick fix. |
|
Lightweight Rename Refactoring |
JDT-style rename refactoring. |
|
Toggle Function Definition |
Toggle Function Definition moves a function definition inside an C/C++ source editor from one position to another and preserves correctness. |
|
Build
|
|
|
Build Console |
|
|
Error Parsers |
|
|
Make Targets |
|
|
Managed Build |
|
|
Scanner Discovery |
|
|
Debug
|
|
|
Project-less debugging |
CDT can now be used to debug any binary, without needing to specify or even create a project in Eclipse. This is supported for all types of debugging (local, remote, attach, and post-mortem sessions). Furthermore, for an attach session (local or remote), there is even no need to specify the binary; for a local attach, GDB can find the binary automatically, while for a remote attach, CDT will prompt for it when it needs it. This feature was completed April 26th, 2011 as part of Bug 343861 |
|
Support for full pretty-printing of complex structures |
With the proper setup of GDB, DSF-GDB will now print complex structures such as Maps, Lists and Vectors, in a user-friendly fashion, within the Variables and Expressions views, as well as the advanced Debug hover of the Editor. See below on how to setup GDB for this feature to work.
|
|
Support for pending breakpoints |
When a breakpoint is set in a dynamically-linked library that was not loaded yet, the breakpoint will now work, once the library is loaded. See bug 248595. This feature is currently only supported when using GDB 6.8 or later. |
|
Showing cores in Debug view labels |
By using the enhancements of GDB 7.1, DSF-GDB now shows the core on which each thread runs as an extra part of the Debug View label. The list of all cores on which a process is located is also added as a label. The below image shows the new feature. This feature has been implemented for CDT 8.0 as of July 6th, 2010, as part of Bug 318230. The feature will be enabled automatically as long as GDB 7.1 or greater is used. |
|
Showing cores and owner in attach prompter |
DSF-GDB now shows the owner of a process as an extra part of the process prompt for an attach session. The owner id will be shown starting with GDB 7.0. For a Remote attach session (using gdbserver --multi), the cores on which a process is located will also be shown. Showing the cores starts with GDB 7.1. The below image shows the new feature. This feature has been implemented for CDT 8.0 as of July 30th, 2010, as part of Bug 318230 comment 21. The feature will be enabled automatically as long as the proper version of GDB is used. |
|
Pin & Clone |
Variables, Expressions, Registers, Disassembly, and Memory Browser now supports opening multiple instances, and pin the view input to the selected debug context(s) in the Debug view. This can be used, for example, to easily compare the data of different threads. This feature has been implemented for CDT 8.0 as of Feb 15th, 2011, as part of Bug 327263, Bug 331781, and Bug 334566. |
|
Multi-process Debugging |
CDT now supports debugging multiple processes in a single debug session. It allows to attach/detach and start/stop processes repeatedly and easily. Requirements:
To use multi-process debugging, simply launch an application as you normally would, locally or remotely, using gdbserver, and make sure to select Non-stop mode in the Debugger tab. Then, use the Debug View's "Connect" button to trigger a dialog with allows you to either attach to a running process, or to create a new process using the "New..." button. Currently, the "New..." button is only supported for Local debug sessions.
You will then have the newly selected process added to your debug session, where you can control it and examine it. You can use the "Disconnect" button to remove processes from your debug session, or you can use the "Connect" button to add new ones.
An option to automatically attach to a forked process is also available. This means that whenever any process you are currently debugging forks a new process, that new process will be added to your debug session. |
|
C/C++ Remote Application launch |
The optional "C/C++ Remote Application" launch configuration type has been made permanent for CDT. The "GDB (DSF) Remote System Process" launch delegate has been renamed to "GDB (DSF) Manual Remote Debugging" and has been moved from "C/C++ Application" to "C/C++ Remote Application". As was the case for CDT 7.0, the optional RSE Remote Launch delegate of org.eclipse.cdt.launch.remote, is still part of "C/C++ Remote Application". This optional remote launch now provides a new DSF-GDB-based launch delegate called "GDB (DSF) Automatic Remote Debugging". This launch is very similar to the existing "GDB (DSF) Manual Remote Debugging" delegate, except that the automatic one will automatically download the application to the remote target and start gdbserver with the application. By default, the user will be shown the "GDB (DSF) Manual Remote Debugging". However, if the optional feature of Remote Launch is installed, the default will automatically become the more feature-rich "GDB (DSF) Automatic Remote Debugging". Finally, the run-mode RSE Remote Launch delegate no longer shows the Debugger or Source tabs, since they were not relevant, in run-mode. |
|
New set of preferences |
A set of new preferences have been added to Preferences->C/C++->Debug->GDB to allow users to have a better debugging experience. These new preference are:
|
|
Extra node for debugged process no longer shown |
The debugged process extra launch node has been removed from the Debug view. This node was felt to waste space, especially when dealing with multi-process debugging as we would have needed many of them. The Debug view already shows the debugged process as a container of threads, right below the launch node. |
|
API Changes and Migration to CDT 8.0
|
|
|
|
The changes affecting compatibility are listed here. Keep in mind that this list likely does not list all the issues, only some of them. |
|
General |
|
|
DSF-GDB |
(IBreakpointsTargetDMContext)fCommandControl.getContext() // Will fail with an Invalid Cast exception (IDisassemblyDMContext)fCommandControl.getContext() // Will fail with an Invalid Cast exception will now fail because the command control context is no longer an IBreakpointsTargetDMContext/IDisassemblyDMContext. Instead, MIContainerDMC now implements IBreakpointsTargetDMContext/IDisassemblyDMContext. This change was necessary to fully support multi-process and was done in bug 335324 and bug 344298. |
|
Codan |
The class org.eclipse.cdt.codan.core.cxx.model.CxxModelsCache is no longer a singleton. |
|
Bugs Fixed
|
|
|
Fixed |
Bugzilla tasks completed for this release: CDT 8.0 bug fixes |
|
Known Limitations
|
|
|
Limitations |
Cannot run or debug class in a project with GB18030 characters in workspace/project name. Most class libraries do not properly support the creation of a system process (via java.lang.Runtime.exec(...)) when the specified command line contains GB18030 characters. This limitation means the scanner discovery mechanism and debugger cannot launch applications when the command line it generates contains GB18030 characters. Details in Bug 308803 |
To learn what's new in CDT releases see:


@Singleton @Provides fun provideThemeUtils(): ThemeUtils
Create a provider method binding for ThemeUtils.
Return Instance of theme utils.
See Also
Provides


Greatness is a quality. It's neither acquired through one's recognition… nor lost because of being unacknowledged.
伟大是一种品质，它不来源于他人的认可，也不随他人的否定而失去。
Remember, good grades are of no use if you don't have any goal in life.
记住，如果你的人生没有目标，成绩再好也没有用。
If you don't build your dreams, someone will hire you to build their dreams. It means, if we don't work hard to fulfill our dreams… we will end up working hard to fulfill someone else's dream.
如果你不去完成自己的梦想，别人就会雇佣你去完成他们的梦想。这就意味着，如果我们不为自己的梦想努力，最后只能为别人的梦想卖力。
The most valuable thing in this world is your goal. If you realize your goal, value and dream, just get it. If you don't realize it, then your life is not worth living.
世界上最珍贵的东西就是你的人生目标。如果你认识到了自己的目标、价值和梦想，那就去追求。如果你还没意识到，那你现实的人生，与你本该拥有的人生相比，还是差了一段距离。
We are not meant to fear God… or our college professors or even the society. We must fear the thought that this world will never get to know the hero within you. Life is an opportunity. It is a chance to prove yourself. Just prove it. Awake, arise, and don't stop until you achieve your goal.
我们不应该惧怕上帝，或者惧怕大学教授，甚至惧怕社会。我们应该惧怕的是（自身的）想法：这个世界永远不会认可你内心的价值。人生就是一次机遇，是一次证明自己的机会，去证明自己吧。清醒意识到这一点（人生是一次机遇），站起来身来勇敢证明自己的价值，不达到目标不要放弃。


sehhaj's portfolio
enter at your own risk.
Comment your favourite tongue twister
Name:
Comment:
Number of Comments to Display
Translation
English
Japanese
French
German
Hindi
Punjabi
Translate
Comments
Delete All
Click here to get a random message:
Hello
Click here to get a funny and random quote from a tv show i like:
LOL


I am a grad student from Universidade de Évora. Recently, I've finished my thesis on 3D Reconstruction and now I'm learning how to build pretty and fully functional websites. This is my portfolio.
When I'm not coding, I like to read and watch TV or movies. I also enjoy nature and seek the solace and peace it provides to relax.


New Connection
You can specify your own connection settings - just hit the button below or choose "New Connection" from the application menu.


Uber
Home
Company
Safety
Help
Join now
On your mark
You´re moving what matters
we´re building new ways to support you
Your Email
Get in touch
scroll down


About Master Your Money
We believe that people should know if they will go over budget in real time with a simple form. That why we created the master your money app. Just enter your income, expenses,and reigon and our machine learning algorithm does the rest.


- Review README.md and install dependencies
Review the README file and
install via your Linux distribution's package manager (e.g., "yum install make") the needed dependencies:
- gcc
- make
- cmake
- kernel headers
- Download the MoonGen source code
[root@LinuxServer MoonGen]# git clone https://github.com/atheurer/MoonGen
- List the remote branches
[root@LinuxServer MoonGen]# cd MoonGen
[root@LinuxServer MoonGen]# git branch -a
* master
opnfv-stable
remotes/origin/HEAD -> origin/master
remotes/origin/dpdk2.x-opnfv
remotes/origin/master
remotes/origin/opnfv
remotes/upstream/dpdk2.x-opnfv
remotes/upstream/master
remotes/upstream/master-fixes
remotes/upstream/opnfv
remotes/upstream/opnfv-stable
- Checkout the 'opnfv-stable branch'
[root@LinuxServer MoonGen]# git checkout opnfv-stable
- Initialize submodules
[root@LinuxServer MoonGen]# git submodule update --init
- Verify the opnfv-vsperf.lua script
[root@LinuxServer MoonGen]# ls examples/opnfv-vsperf.lua
examples/opnfv-vsperf.lua
- Note the DPDK version
Make note of the DPDK version by observing the contents of: MoonGen/deps/dpdk/pkg/dpdk-core.spec
[root@LinuxServer MoonGen]# grep Version deps/dpdk/pkg/dpdk.spec
Version: 2.2.0
- Build MoonGen
Edit the CMakeLists.txt file to omit the kni.c file:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 14147a8..716d090 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -25,7 +25,6 @@ SET(FILES
src/namespaces.cpp
src/ring.c
src/rate_limiter.cpp
- src/kni.c
)
Then build:
[root@LinuxServer MoonGen] ./build.sh
- Hugepage allocation
Set up the huge allocation via setup-hugetlbfs.sh, or can do it via parameters at boot time thus will be persistant across system reboots, e.g.:
[root@LinuxServer MoonGen]# ./setup-hugetlbfs.sh
or
[root@LinuxServer MoonGen]# cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-3.10.0-325.el7.x86_64 root=/dev/mapper/LinuxServer_rhel72-root ro crashkernel=auto rd.lvm.lv=LinuxServer_rhel72/root rd.lvm.lv=LinuxServer_rhel72/swap rhgb quiet LANG=en_US.UTF-8 intel_iommu=on default_hugepagesz=1G hugepagesz=1G hugepages=32 selinux=0 iommu=pt
via using for example the grubby utility:
[root@LinuxServer MoonGen]# grubby --update-kernel=`grubby --default-kernel` --args="default_hugepagesz=1G hugepagesz=1G hugepages=32"
Note that if the boot command line is modified, a reboot must occur in order to allocate memory with the new hugepage settings.
- Bind DPDK to interfaces of interest
DPDK bypasses the native Linux networking stack and uses a userspace poll mode driver to transmit and receive packets from the wire. This is known as
a "pass through mode". There are at least a few flavors of kernel drivers that will enable this packet pass through:
- uio_pci_generic
- Generic User I/O kernel modules packaged with Linux kernel
- igb_uio
- User I/O kernel modules packaged with MoonGen (within the DPDK dependency). igb_uio built within MoonGen dependencies and Intel specific
- vfio-pci
- A more secure User I/O kernel driver that utilizes IOMMU hardware. If using an Intel processor with IOMMU
supported hardware, the kernel bootloader parameter 'intel_iommu=on' must be added and can be again done using the 'grubby' utility (grubby --update-kernel=`grubby --default-kernel` --args="intel_iommu=on") and then reboot
It is recommended that if hardware support for IOMMU is there, use vfio-pci. If not, use uio_pci_generic or igb_uio. One way to determine if IOMMU support is
present is to look into the kernel log:
[root@perf84 ~]# dmesg | grep -i IOMMU
[ 0.000000 ] Intel-IOMMU: enabled
Determine the PCI 'Doman:Bus:Device:Function' information for the interfaces which you want to use MoonGen (and thus bind DPDK). This can be done
via the 'ethtool' (yum install ethtool) utility via 'ethtool -i ', e.g.:
[root@LinuxServer MoonGen]# ethtool -i em1 | grep 'bus-info'
bus-info: 0000:01:00.0
[root@LinuxServer MoonGen]# ethtool -i em2 | grep 'bus-info'
bus-info: 0000:01:00.1
where in this case network devices 'em1' and 'em2' are both 10G capable ports where its desired to use MoonGen to TX/RX traffic.
This can also be seen via the DPDK utility 'dpdk_nic_bind.py' again under MoonGen's DPDK dependency directory:
[root@LinuxServer MoonGen]# ./deps/dpdk/tools/dpdk_nic_bind.py --status
Network devices using DPDK-compatible driver
============================================
<none>
Network devices using kernel driver
===================================
0000:01:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection' if=em1 drv=ixgbe unused=
0000:01:00.1 '82599ES 10-Gigabit SFI/SFP+ Network Connection' if=em2 drv=ixgbe unused=
0000:03:00.0 'Ethernet Controller XL710 for 40GbE QSFP+' if=p3p1 drv=i40e unused=
0000:03:00.1 'Ethernet Controller XL710 for 40GbE QSFP+' if=p3p2 drv=i40e unused=
0000:05:00.0 'I350 Gigabit Network Connection' if=em3 drv=igb unused= *Active*
0000:05:00.1 'I350 Gigabit Network Connection' if=em4 drv=igb unused=
Other network devices
=====================
<none>
Use 'dpdk_nic_bind.py' to unbind network devices from current drivers. In this case, its ixgbe. Before doing the unbind, shutdown the interfaces.
[root@LinuxServer MoonGen]# ifdown em1
[root@LinuxServer MoonGen]# ifdown em2
[root@LinuxServer MoonGen]# ./deps/dpdk/tools/dpdk_nic_bind.py --unbind 0000:01:00.0 0000:01:00.1
Again using 'dpdk_nic_bind.py', bind DPDK to the interfaces to be used with MoonGen. In this case, the two 10G network devices will be used:
[root@LinuxServer MoonGen]# modprobe vfio-pci
[root@LinuxServer MoonGen]#
[root@LinuxServer MoonGen]# ./deps/dpdk/tools/dpdk_nic_bind.py --bind=vfio-pci 0000:01:00.0 0000:01:00.1
And now we can see that the 10G network devices are bound to the appropriate DPDK supported driver:
[root@LinuxServer MoonGen]# ./deps/dpdk/tools/dpdk_nic_bind.py --status
Network devices using DPDK-compatible driver
============================================
0000:01:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection' drv=vfio-pci unused=
0000:01:00.1 '82599ES 10-Gigabit SFI/SFP+ Network Connection' drv=vfio-pci unused=
Network devices using kernel driver
===================================
0000:03:00.0 'Ethernet Controller XL710 for 40GbE QSFP+' if=p3p1 drv=i40e unused=vfio-pci
0000:03:00.1 'Ethernet Controller XL710 for 40GbE QSFP+' if=p3p2 drv=i40e unused=vfio-pci
0000:05:00.0 'I350 Gigabit Network Connection' if=em3 drv=igb unused=vfio-pci *Active*
0000:05:00.1 'I350 Gigabit Network Connection' if=em4 drv=igb unused=vfio-pci
Other network devices
=====================
<none>
- Running MoonGen
MoonGen has several default parameters that can be overwritten via a configuration file
called 'opnfv-vsperf-cfg.lua'. Note the different default parameter values at the top of MoonGen/examples/opnfv-vsperf.lua
[root@LinuxServer MoonGen]# more examples/opnfv-vsperf.lua
-- This program provides a RFC2544-like testing of network devices, using
-- libaries from the MoonGen packet generator and DPDK. This program
-- is typically from within a MoonGen source tree, for example:
--
-- cd MoonGen
-- build/MoonGen examples/opnfv-vsperf.lua
--
-- The test will run a binary search to find the maximum packet rate while
-- not exceeding a defined percentage packet loss.
--
-- The test parameters can be altered by created a file, opnfv-vsperf-cfg.lua
-- in the current working directory. The file is lua syntax and describes the
-- test paramters. For example:
--
-- VSPERF {
-- rate = 5,
-- runBidirec = true,
-- ports = {0,1,2,3}
--
}
--
-- paramters that may be used:
-- ports A list of DPDK ports to use, for example {0,1}. Minimum is 1 pair, and more than 1 pair can be used.
-- It is assumed that for each pair, packets transmitted out the first port will arrive on the second port (and the reverse)
-- rate Float: The packet rate in millions/sec to start testing (default is 14.88).
-- runBidirec true or false: If true all ports transmit packets (and receive). If false, only every other port transmits packets.
-- txMethod "hardware" or "software": The method to transmit packets (hardware recommended when adapter support is available).
-- testLatency true or false: If true, collect timestamps for some packets for round-trip latency.
-- nrFlows Integer: The number of unique network flows to generate.
-- searchRunTime Integer: The number of seconds to run a test when doing binary search.
-- validationRunTime Integer: The number of seconds to run a test when doing final validation.
-- acceptableLossPct Float: The maximum percentage of packet loss allowed to consider a test as passing.
-- rate_granularity testParams.rate_granularity or RATE_GRANULARITY
-- txQueuesPerDev Integer: The number of queues to use when transmitting packets. The default is 3 and should not need to be changed
-- frameSize Integer: the size of the Ethernet frame (including CRC)
Once the configuration file is created (or not if default parameters are desired), invoking MoonGen can be done as follows:
[root@LinuxServer MoonGen]# ./build/MoonGen ./examples/opnfv-vsperf.lua
- Poll Mode Thread Pinning
MoonGen can take advantage of pinning forwarding threads to particular cores. To specify which cores MoonGen should use, edit
MoonGen/lua/dpdk-conf.lua and change the 'cores' parameter:
[root@LinuxServer MoonGen]# more lua/dpdk-conf.lua
-- configuration for all DPDK command line parameters
-- see DPDK documentation for more details
-- MoonGen tries to choose reasonable defaults, so this config file can almost always be empty
DPDKConfig {
-- configure the cores to use, either as a bitmask or as a list
-- default: all cores
--cores = 0x0F, -- use the first 4 cores
cores = {0, 2, 4, 6, 8, 10, 12},
}


Before Change
// align data
if align:
if len(data) == 1:
warn("Data in list of length 1 can not be aligned. "
"Skipping the alignment.")
else:
x = aligner(x)
// find cluster and reshape if n_clusters
if n_clusters is not None:
cluster_labels = cluster(x, n_clusters=n_clusters, ndims=ndims)
x = reshape_data(x, cluster_labels)
if group:
After Change
if legend is not None:
if legend is False:
legend = None
elif legend is True and group is not None:
legend = [item for item in sorted(set(group), key=list(group).index)]
elif legend is True and group is None:
legend = [i + 1 for i in range(len(x))]
mpl_kwargs["label"] = legend


{% extends "_base.htm" %} {% block bodycontent %}
Welcome to the site dedicated to learning Google App Engine. We hope you find www.appenginelearn.com useful.


Model and ObservatioN Evalatution Toolkit (MONET)¶
MONET is an open source project and Python package that aims to create a common platform for atmospheric composition data analysis for weather and air quality models.
MONET was developed to evaluate the Community Multiscale Air Quality Model (CMAQ) for the NOAA National Air Quality Forecast Capability (NAQFC) modeling system. MONET is designed to be a modularized Python package for (1) pairing model output to observational data in space and time; (2) leveraging the pandas Python package for easy searching and grouping; and (3) analyzing and visualizing data. This process introduces a convenient method for evaluating model output. MONET processes data that is easily searchable and that can be grouped using meta-data found within the observational datasets. Common statistical metrics (e.g., bias, correlation, and skill scores), plotting routines such as scatter plots, timeseries, spatial plots, and more are included in the package. MONET is well modularized and can add further observational datasets and different models.
Our goals is to provide easy tools to retrieve, read and combine datasets in order to speed scientific research. Currently, MONET is able to process several models and observations related to air composition and meteorology.
Please site our work.
Reference¶
Baker, Barry; Pan, Li. 2017. “Overview of the Model and Observation Evaluation Toolkit (MONET) Version 1.0 for Evaluating Atmospheric Transport Models.” Atmosphere 8, no. 11: 210
- Overview: Why MONET?
- Installation
- MONET XArray Accessor
- Observations
- Models
- Tutorial
- MONET on WCOSS
Supported datasets¶
Supported Models
Supported Observations
Help & Reference
- Get in touch
- API
- monet package
- Subpackages
- monet.models package
- monet.obs package
- Submodules
- monet.obs.aeronet_mod module
- monet.obs.airnow module
- monet.obs.airnow_mod module
- monet.obs.aqs_mod module
- monet.obs.cems_mod module
- monet.obs.crn_mod module
- monet.obs.epa_util module
- monet.obs.goes module
- monet.obs.icartt_mod module
- monet.obs.improve_mod module
- monet.obs.ish_mod module
- monet.obs.nadp_mod module
- monet.obs.obs_util module
- Module contents
- monet.plots package
- monet.sat package
- monet.util package
- Submodules
- monet.grids module
- monet.monet_accessor module
- Module contents
- Subpackages
- monet package


{% comment %}
Content for the 404 error page.
{% endcomment %}
{% include "1-head.html" %}
{% include "2-navbar.html" %}
{% include "3-page-header.html" %}
Sorry, but we can't find the URL you and/or your browser requested.
(Well, more accurately, your browser asked for a URL for a page that doesn't exist.)
Not to worry. There's a menu up there that will make it all better.
{% include "5-footer.html" %}
{% include "6-bottom.html" %}


Hello! My name is Sally, I am 24 years old and I am what you can call a Software Developer in the making.
 After Leaving my last job, I noticed this great pull in the market towards
technical skills, especially with the rise of the COVID-19 pandemic. That is when I realized that in order for me
to be able to fulfil my goals in life, I need to adjust to the demands of the market. That my friend, is how a
Marketing graduate with no previous programming skills has now made the website you are visiting.
Just remember, it is never the wrong time to do what is best for you!
-
Experience and Education:
- Private tutor (Sep. 2018 - current)
- Operations Manager (May 2019 - Mar. 2020)
- Customer care Agent (Dec. 2018 - Jan. 2019)
- Bachelor's Degree - Marketing (2018)
- Administrative Assistant (Sept. 2014 - Nov.2017)
- High school Diploma (2014)
- Hostess and Waitress (May 2013 - Aug. 2013)
-
Top ten facts most people don't know about me:
- I love art in all its forms.
- I've always wanted to visit Brazil.
- I like to collect different currencies
- I think experiences are so much better than materialistic gifts.
- I my sisters are my best friends.
- I love the smell of a new book.

- I like winter more than summer, but my favorite season is fall.
- I am a leo.
- I work hard because when I was younger someone told me "girls can't achieve the same success guys can".
- I love the minimalist aesthetic.


--- title: "The Data Behind the Tanzanian Water Crisis" author: "Nick Kachanyuk" date: '2021-08-02' slug: [] categories: R tags: - data science - R meta_img: images/image.png description: Description for the page ---
According to Water.org [1], Tanzania is experiencing a water and sanitation crisis. According to their records 4 million people lack access to safe water resources. People often spend a significant amount of time traveling long distances to collect water, and this burden often falls on women and girls. Using the data provided for the Pump it Up competition by DrivenData [2] along with Tanzania’s 2012 census report [3] we will go through the machine learning approach using XGBoost to create a model that can predict whether a water well is functional, needs repair, or non-functional. In addition, we will explore the features that were used in the model.
Earlier this year, DrivenData hosted an educational data science competition that requires a machine learning approach to identify water pump functionality in Tanzania. The data provided for the competition contains variables that focus on the specific features of these water wells such as location of the well, construction year, record date, and quality of the water in the well. Identifying the functionality of water wells in Tanzania is important in addressing the water crisis in Tanzania but there is a greater opportunity to explore additional factors that may show why a particular water shortage is occurring in a given region of the country.
Tanzania is experiencing a water crisis where about 4 million people lack access to safe water resources. While there is data on both Tanzania’s water well quality and the 2012 census, there is no attempt to combine these resources to assess the overall water situation in the country. Solving the water crisis requires both a problem-specific approach (identifying functionality of the wells) and a broader analysis of how different regions in the country are affected. Although there is no clear cause and effect pattern, identifying which regions are doing well in relation to others may help develop preventative strategies for the future and can also shed light on the challenges that the citizens of this country are facing when trying to access safe drinking water.
In 2016, Water.org found that Tanzania is eligible for what they call a “water credit solution” which allows for lending programs to households and water companies. My project attempts at providing practical guidelines in solving the water crisis by first addressing the functionality of the water wells in the country. Combining socioeconomic data into the analysis may also help answer questions such as how the water crisis is persistent for a given region. Examining the socioeconomic differences between regions may help get at issues like, which regions are experiencing water access and quality issues the most.
The dependent variable in the model is called status_group. This is a categorical variable that contains three classes: functional, functional needs repair (FNR), and non-functional. Since this is a categorical variable, a supervised machine learning classification approach will be used. The best model will be selected via the highest Cohen’s kappa score.
Kappa is about how much better your model classifier is performing over the performance of a classifier that simply guesses at random according to the frequency of each class. Kappa takes on a range of values from -1 to 1.
According to [4], Kappa scores can be categorized as follows:
less than 0.20 (not good)
0.21 to 0.40 (fair)
0.41 to 0.60 (pretty good)
0.61 to 0.80 (great)
greater than 0.80 (almost perfect)
The features and their descriptions from the Pump it Up data can be found here: [http://www.drivendata.org/competitions/7/pump-it-up-data-mining-the-water-table/page/25/]
The features from the Tanzania 2012 census are:
total_region_pop: total population for a given Tanzanian region
households_per_region: number of households by region
mhead_avg_household_size_per_region: average number of male head of household by region
fhead_avg_household_size_per_region: average number of female head of household by region
literacy_rate_by_region: percent of the literate population by region
pct_unemployed_by_region: percent of the unemployed population by region
region_area_sq_mi: area in square miles of a given region
Before I get into the final model and results. I would like to briefly mention a few things about the data challenges encountered while wroking on this project.
Here is a plot of the missing data:
The data appears to not be missing at random because if we look at installer and funder variables, there is a 100% match in the rows where the data is missing. In addition, there were 4 regions in which all the observations had a zero value for amount_tsh variable. An imputation strategy is needed because we can not simply delete the rows where the data is missing because the data is not missing at random. I will not elaborate too much on this in this post, because it is a whole process of its own, but the code for this entire project can be found in my GitHub repository [https://github.com/nickkachanyuk/tanzania_project_files].
Looking at the missing values graph we can exclude variables like scheme_name, scheme_management, installer, and funder from further analysis. The wpt_name is a unique identifying name value for each observation and can also be excluded from the analysis.
Class imbalance is an important topic to discuss when preparing data for predictive modeling. From the graph below we can see that the functional class is the most popular class in the target variable (status_group).
## # A tibble: 3 x 2
## status_group well_count
## <fct> <int>
## 1 functional 32259
## 2 functional needs repair 4317
## 3 non functional 22824
Class imbalance can be problematic for some classification problems because a model can become ‘fixed’ on the most frequent class and fail to learn as much about the less frequent classes thus decreasing the accuracy in the predictions. A solid strategy is to upscale a less frequent class by generating more observations that resemble that class.
Another possible approach is to collapse FNR class with either functional or non-functional category. This will result in only two factor levels for the target variable, decrease the gap in the class imbalance, and also impose a more general classification system. If a pump needs repair it is likely to become non-functional in the near future and I think it makes sense to have two classes that could be: functional pumps versus pumps that need to fixed. This becomes more evident as I discuss the final features and how well the three classes are distributed among them.
The number of predictor variables originally present in the data set was 39 coming from “Pump it Up” data set and 9 additional variables were added from the 2012 Tanzanian census report for a total of 48 variables. That number quickly grew to 84 predictors after some of the categorical variables were converted to dummy variables to be used in the principal component analysis and machine learning algorithm.
Having a large number of predictors (features) is problematic because it can lead to overfitting where the noise of the data is picked up by the machine learning algorithm. This can cause bad out of sample (test) performance of the algorithm on new data. It is also more difficult to explain a model that has many features and dimensionality reduction techniques like PCA help make the data more concise. Later in this blog I will mention how the variables from the principal component analysis were created and what they represent.
For this project I chose to focus on the XGBoost model. The data has several outliers which XGBoost handles well. XGBoost is also good for large sized data sets that other models take longer to process and is less prone to overfitting thus making it notorious for good model performance.
On the other hand, XGBoost model is difficult to interpret when the tree plot has too many nodes (which was the case for my best performing model). It is also a bit more challenging to tune due to having many hyperparameters.
XGBoost tree model has the following hyperparameters [5]:
I selected what seemed to be most appropriate hyperparameter range values based on the definitions of the hyperparameters and also using cross-validation during the model tuning.
Below are hyperparameter values of the best performing XGBoost model and also a visual representation of hyperparameter tune grid.
## nrounds max_depth eta gamma colsample_bytree min_child_weight subsample
## 61 1000 8 0.05 0 0.9 5 0.5
It seems classifiers with higher values of max_depth perform better than more shallow tree classifiers, and the lower to intermediate eta values are a good combination as well.
Next, let’s examine the confusion matrix.
## Confusion Matrix and Statistics
##
## Reference
## Prediction functional functional needs repair non functional
## functional 7101 608 1366
## functional needs repair 206 307 72
## non functional<PHONE_NUMBER>
##
## Overall Statistics
##
## Accuracy : 0.7873
## 95% CI : (0.7807, 0.7939)
## No Information Rate : 0.5435
## P-Value [Acc > NIR] : < 2.2e-16
##
## Kappa : 0.599
##
## Mcnemar's Test P-Value : < 2.2e-16
##
## Statistics by Class:
##
## Class: functional Class: functional needs repair
## Sensitivity 0.8798 0.29044
## Specificity 0.7088 0.97984
## Pos Pred Value 0.7825 0.52479
## Neg Pred Value 0.8320 0.94742
## Prevalence 0.5435 0.07118
## Detection Rate 0.4782 0.02067
## Detection Prevalence 0.6111 0.03939
## Balanced Accuracy 0.7943 0.63514
## Class: non functional
## Sensitivity 0.7487
## Specificity 0.9007
## Pos Pred Value 0.8254
## Neg Pred Value 0.8511
## Prevalence 0.3853
## Detection Rate 0.2885
## Detection Prevalence 0.3495
## Balanced Accuracy 0.8247
The model classifies functional wells better than any other target class. It seems to struggle with classifying FNR wells and does a mediocre job at classifying non-functional wells. Collapsing FNR and non-functional class may seem like a good suggestion for further analysis considerations.
The Kappa value of 0.60 shows that this is a good classifier after all and it seems like there is no apparent overfitting.
The top four most important variables in the model are all feature engineered variables that were created via PCA (principal component analysis). This is probably because they contain a good proportion of the variance in the data. Surprisingly the original categorical variable “permit” is the least predictive even though one might believe that wells that have a permit are more likely to be functional because they have undergone more inspection and compliance.
Let’s examine each variable more closely now.
The variable amount_tsh is the original variable in the Tanzania water well data. The description of this variable reads “total static head (amount water available to waterpoint)” with no units of measurement specified.
Examining the box plot shows that it is a reasonable variable to use after-all though. If we keep the outliers, which XGBoost handles well, they can be used to show the difference between the three target groups. It adds up, functional wells will indeed have more water available to waterpoint than any other two categories. Once again though, the argument for collapsing functional needs repair class and non-functional class maybe a purposeful suggestion to try out in future analysis.
According to the VIP plot, literacy rate by region is in 9/12th position for importance which is also evident by how the IQR ranges overlap for each target category. Once again collapsing FNR(functional needs repair) with non-functional is recommended as an avenue to explore.
According to VIP plot, this variable is 10/12th place for importance. There also seems to be a pattern for how importance is measured. Reading the following article [6] describes how importance is calculated:
“For classification problems, an area under the ROC curve (AUC) statistic can be used to quantify predictor importance. The AUC statistic is computed by using the predictor x as input to the ROC curve. If x can reasonably separate the classes of Y, that is a clear indicator that x is an important predictor (in terms of class separation) and this is captured in the corresponding AUC statistic.”
The target variable does not separate well in this predictor. This variable could be further dropped from analysis which may improve the accuracy of the model.
This variable is 6/12th position on importance plot. Well strain is a variable that was feature engineered using the following formula:
\[wellstrain = ((population/totalregionpop) * regionpopdensity)\]
where population is the number of people living around the well
total_region_pop is the total number of people living in a given region of Tanzania
region_pop_density is total_region_pop/region_area_sq_mi
I wonder if there is any difference in the IQR ranges of the well strain variable between the different status groups?
## # A tibble: 3 x 2
## status_group iqr
## <fct> <dbl>
## 1 functional 0.0185
## 2 functional needs repair 0.0144
## 3 non functional 0.0185
There is indeed 100% overlap between functional and non-functional groups in their IQR. That’s not too informative but if we look at the outliers we can see that for non-functional class there is a greater range than for functional and FNR classes. My understanding is that these outliers were useful in separating the target classes for this variable, which is not ideal because outliers are just few observations in the data and usually are not representative of the general pattern.
From the density plot we can see that the permit variable distribution does not separate well between the target classes and probably the reason behind the dummy versions scoring 11th and last place on the variable importance graph.
Handpump_groundwater_shallow_well is a feature engineered variable that was created via PCA. The distribution of the target variable classes within this variable is shown below.
The density plot shows that there isn’t much separation of the target variable classes within this principal component but the distributions are not exact matches. This variable is the 4th most important variable according to the variable importance plot yet it seems to show similar distribution patterns of the target variable in the same way the other less important features are doing. One explanation for this is that since this is a principal component variable, it captures more variance in the data than other variables in the data set would.
Let’s briefly explore how this variable was created via PCA.
A collection of variables that described the characteristics of the well such as construction year, extraction type (handpump, motorpump, gravity, etc), water quality and quantity produced by the well, and other features were used in PCA.
In PCA, a principal component is a linear combination of variables. Much like in linear regression, how well a variable “fits” to a principal component is dictated by coefficients called factor loadings. These factor loadings do not have a restrictive range of -1 to 1 like in regression. Despite this difference a factor loading essentially signifies a similar concept; the magnitude of the factor loading shows how strong a given observation fits to a principal component. Larger values show stronger correlations and the sign dictates the direction of the correlation. Based on these loadings we can characterize what a principal component is about.
Below is a dataframe that shows this:
## rowname PC1 PC2
## 1 extraction_type_class_gravity -0.342751850 -0.185647268
## 2 extraction_type_class_handpump 0.335936525 0.059006948
## 3 extraction_type_class_motorpump -0.007075295 -0.005395664
## 4 extraction_type_class_other 0.106533974 0.172035206
## 5 extraction_type_class_submersible -0.046179143 0.043303786
## 6 quality_group_good -0.177272987 -0.179835961
## 7 quality_group_unknown 0.047618098 0.124080539
## 8 source_type_borehole 0.105208562 -0.044169821
## 9 source_type_river/lake -0.271409389 0.309188396
## 10 source_type_shallow well 0.336194014 0.134268654
## 11 source_type_spring -0.148146320 -0.474649430
## 12 source_class_groundwater 0.301430490 -0.408878162
## 13 source_class_surface -0.303101053 0.394957704
## 14 waterpoint_type_group_communal standpipe -0.378991249 -0.118053561
## 15 waterpoint_type_group_hand pump 0.346072935 0.064400990
## 16 waterpoint_type_group_other 0.099224599 0.131973271
## PC3 PC4
## 1 0.02380424 0.21930836
## 2 0.33288005 -0.04802169
## 3 -0.15612971 -0.27955970
## 4 -0.30114945 0.29609450
## 5 -0.11524774 -0.37816994
## 6 0.31115799 0.14650125
## 7 -0.29232852 -0.01395835
## 8 -0.17396980 -0.49015934
## 9 0.14596129 -0.06131773
## 10 0.13921953 0.22970403
## 11 -0.10574600 0.21885392
## 12 -0.13046322 0.01418860
## 13 0.15754372 -0.02088470
## 14 -0.09686690 -0.17848770
## 15 0.32896234 -0.04411451
## 16 -0.32216130 0.31381435
We can see that the variables extraction_type_class_handpump, source_class_groundwater, and source_type_shallow well have the largest positive values for principal component 1. Here it makes sense to rename this principal component to something like handpump_groundwater_shallow_wells principal component.
Looking at the density plot above we can see how the observations(rows) of the data are distributed for this principal component and also how the target variable classes are distributed. It seems that functional and FNR wells are distributed towards more negative loading values (with some exceptions) indicating that these wells usually do not rely on handpump extraction methods from shallow wells. Whereas non-functional wells seem to be distributed towards more positive loading values indicating that these wells tend to rely on handpump extraction from shallow and/or groundwater wells.
Other_extraction_from_rivers_lakes is another feature engineered variable that was created via PCA. The distribution of the target variable classes within this variable is shown below.
This principal component was created using the same variables and process used to create the handpump groundwater shallow well principal component variable.
Again, there is not much separation in the distribution of the status group classes. It seems that functional wells are more likely to be negatively correlated with this principal component than FNR and non-functional wells.
The table below again shows how this principal component (PC2) was conceptualized.
## rowname PC1 PC2
## 1 extraction_type_class_gravity -0.342751850 -0.185647268
## 2 extraction_type_class_handpump 0.335936525 0.059006948
## 3 extraction_type_class_motorpump -0.007075295 -0.005395664
## 4 extraction_type_class_other 0.106533974 0.172035206
## 5 extraction_type_class_submersible -0.046179143 0.043303786
## 6 quality_group_good -0.177272987 -0.179835961
## 7 quality_group_unknown 0.047618098 0.124080539
## 8 source_type_borehole 0.105208562 -0.044169821
## 9 source_type_river/lake -0.271409389 0.309188396
## 10 source_type_shallow well 0.336194014 0.134268654
## 11 source_type_spring -0.148146320 -0.474649430
## 12 source_class_groundwater 0.301430490 -0.408878162
## 13 source_class_surface -0.303101053 0.394957704
## 14 waterpoint_type_group_communal standpipe -0.378991249 -0.118053561
## 15 waterpoint_type_group_hand pump 0.346072935 0.064400990
## 16 waterpoint_type_group_other 0.099224599 0.131973271
## PC3 PC4
## 1 0.02380424 0.21930836
## 2 0.33288005 -0.04802169
## 3 -0.15612971 -0.27955970
## 4 -0.30114945 0.29609450
## 5 -0.11524774 -0.37816994
## 6 0.31115799 0.14650125
## 7 -0.29232852 -0.01395835
## 8 -0.17396980 -0.49015934
## 9 0.14596129 -0.06131773
## 10 0.13921953 0.22970403
## 11 -0.10574600 0.21885392
## 12 -0.13046322 0.01418860
## 13 0.15754372 -0.02088470
## 14 -0.09686690 -0.17848770
## 15 0.32896234 -0.04411451
## 16 -0.32216130 0.31381435
Interestingly enough this variable is the most important variable in the XGBoost model.
This is another feature engineered variable created from PCA. The data frame below shows which variables were used in this PCA; these variables were about certain demographics of the regions in Tanzania such as the population around the well, total region population, number of households per region, and region population density.
## rowname PC1 PC2 PC3
## 1 population 0.03862235 -0.08444050 -0.994656812
## 2 total_region_pop -0.56417133 -0.28661307 0.015408068
## 3 households_per_region -0.62128558 -0.03872151 -0.005305968
## 4 mhead_avg_household_size_per_region 0.12556695 -0.68710750 0.045236312
## 5 fhead_avg_household_size_per_region 0.19079984 -0.65843206 0.078240323
## 6 region_pop_density -0.49198742 -0.05978208 -0.047163454
## PC4
## 1 0.03548992
## 2 0.37270229
## 3 0.31017649
## 4 0.03053786
## 5 -0.13860836
## 6 -0.86225238
The dense populated wells is represented as PC1 in the table above. Let’s examine how the target variable is distributed for this variable.
A lot of overlap for this variable and is probably the reason why it placed 7/12 on the variable importance graph. Interestingly enough functional wells tend to be located in more densely populated areas than FNR and non-functional wells although this difference is not too great. In my opinion, it may be possible to complete further studies without this variable being included.
This is another feature engineered variable created from PCA. The same variables used in creating the densely populated wells variable were also used for this variable. In the table below this variable is labeled as PC2.
## rowname PC1 PC2 PC3
## 1 population 0.03862235 -0.08444050 -0.994656812
## 2 total_region_pop -0.56417133 -0.28661307 0.015408068
## 3 households_per_region -0.62128558 -0.03872151 -0.005305968
## 4 mhead_avg_household_size_per_region 0.12556695 -0.68710750 0.045236312
## 5 fhead_avg_household_size_per_region 0.19079984 -0.65843206 0.078240323
## 6 region_pop_density -0.49198742 -0.05978208 -0.047163454
## PC4
## 1 0.03548992
## 2 0.37270229
## 3 0.31017649
## 4 0.03053786
## 5 -0.13860836
## 6 -0.86225238
Once again there is a lot of overlap between the different target classes in the distribution for this variable. It seems that to some degree the functional wells tend to have slightly more sparsely populated wells than functional and FNR wells.
It is also no surprise that this variable placed 8/12 on variable of importance plot which suggests that this variable can possibly be removed from further analysis in the future.
Another feature engineered variable via PCA. This variable was created using geographic predictors such as altitude (gps_height), longitude, latitude, region name, and basin location. Below is the data frame used to conceptualize this variable.
## rowname PC1 PC2 PC3 PC4
## 1 gps_height 0.05619224 -0.21141683 0.477726573 -0.05803286
## 2 longitude 0.34653888 -0.36707572 -0.188749378 0.05053039
## 3 latitude -0.46408156 -0.16351403 -0.016820011 0.19658503
## 4 region_area_sq_mi 0.31591239 0.20510453 0.097559739 0.33034008
## 5 basin_Internal -0.03518589 -0.06380350 0.147865140 0.33925344
## 6 basin_Lake Nyasa 0.13493181 0.15380358 0.117293684 -0.26553047
## 7 basin_Lake Victoria -0.37969426 0.10895805 -0.231601633 -0.12772004
## 8 basin_Pangani -0.03477895 -0.51353837 0.075264572 -0.10273304
## 9 basin_Wami / Ruvu 0.12985574 -0.02365658 -0.316719971 0.29133059
## 10 region_Iringa 0.13641520 0.03458970 0.262524000 -0.17685527
## 11 region_Kilimanjaro -0.04818027 -0.37948085 0.060506902 -0.12153959
## 12 region_Mbeya 0.07990353 0.19458539 0.008310275 -0.26606545
## 13 region_Morogoro 0.16192694 0.06070716 -0.109406661 0.25655965
Looking at PC1 we can see that the variables that take on large and positive values are longitude and region area in square miles, and large negative value is shown for latitude. According to [7], positive longitudinal values indicate more eastern locations and negative latitudinal values indicate more southern locations.
Let’s look at the target variable distribution for this variable.
Not much separation is happening here either but looking at the functional group peaks we can see that functional wells tend to be clustered in more southern and eastern regions of Tanzania. This variable is the second most important variable in the variable of importance plot.
This is the last variable we will examine that was used in the XGBoost model. This variable was also feature engineered using the same geographic variables in PCA, and is shown as PC2 in the data frame below.
## rowname PC1 PC2 PC3 PC4
## 1 gps_height 0.05619224 -0.21141683 0.477726573 -0.05803286
## 2 longitude 0.34653888 -0.36707572 -0.188749378 0.05053039
## 3 latitude -0.46408156 -0.16351403 -0.016820011 0.19658503
## 4 region_area_sq_mi 0.31591239 0.20510453 0.097559739 0.33034008
## 5 basin_Internal -0.03518589 -0.06380350 0.147865140 0.33925344
## 6 basin_Lake Nyasa 0.13493181 0.15380358 0.117293684 -0.26553047
## 7 basin_Lake Victoria -0.37969426 0.10895805 -0.231601633 -0.12772004
## 8 basin_Pangani -0.03477895 -0.51353837 0.075264572 -0.10273304
## 9 basin_Wami / Ruvu 0.12985574 -0.02365658 -0.316719971 0.29133059
## 10 region_Iringa 0.13641520 0.03458970 0.262524000 -0.17685527
## 11 region_Kilimanjaro -0.04818027 -0.37948085 0.060506902 -0.12153959
## 12 region_Mbeya 0.07990353 0.19458539 0.008310275 -0.26606545
## 13 region_Morogoro 0.16192694 0.06070716 -0.109406661 0.25655965
Negative longitudinal values indicate that this principal component is more about the western regions of Tanzania. The latitudinal values are slightly less negative values than in PC1 which indicates that that PC2 is more about northern regions of Tanzania. Also, region area value is slightly less positive than PC1, indicating that the regions that load well onto PC2 are small to medium sized.
Let’s look at the target variable distribution for this variable.
The FNR wells seem to be mostly clustered in the northern and western regions of Tanzania. Looking at the functional well group, we can see the two tails on the negative x-axis further support the idea that functional wells tend to be located in southern and eastern regions of Tanzania rather than in the north and/or west.
Overall, this variable is placed third in the variable of importance plot.
Using XGBoost tree model, an algorithm that predicts the status of the well was created. The Kappa score for the test set was 0.599 indicating that XGBoost did a solid job in determining which wells were functional, needed repairs, or non-functional.
The trained model includes 12 predictors. After exploring the predictors via data visualizations, there seems to be evidence that the 6 least important variables in the importance plot may be removed for future projects dealing with this data. The 6 least important variables are:
dense_populated_wells
sparsely_populated_wells
literacy_rate_by_region
pct_unemployed_by_region
permit_yes
permit_unknown
Looking at the 6 remaining predictors, the following conclusions can be made:
Functional wells have more water available to waterpoint than FNR and/or non-functional wells.
Non-functional wells experience larger strain than functional and/or FNR wells.
Functional and functional need repair wells usually do not rely on handpump extraction methods and/or these wells are usually not shallow wells.
Functional need repair wells tend to use “other” extraction methods and/or the water source for these wells comes from either rivers or lakes.
In general, functional wells are more present in the southern and/or eastern parts of Tanzania.
Functional need repair wells are more common in the northern and/or western parts of Tanzania, and non-functional wells also follow this pattern but to a lesser degree.
This project attempts to create an initial framework for dealing with water-shortage issues in Tanzania. One intervention strategy that may be useful is to continue monitoring the amount of water present at a given well (amount_tsh variable). For this variable to be useful in future predictions, the units of measurement would first need to be defined so that there are no errors during data collection. In addition, a threshold value would need to be set that can serve as indicator if a well is at risk for being non-functional. According to the data visualization for this variable, this threshold boundary is located somewhere among the outlier values for the amount_tsh variable.
Well strain is also a measurement variable that can indicate functionality of a given well. The data visualization of this variable shows that non-functional wells have larger outliers for this variable than functional and FNR wells.
Finally, indicator variables created by PCA can help highlight the geographic and demographic differences that may exist between the three classes of wells, and characteristics of a given well are also useful indicators. Unfortunately, due to missing data issues, it was difficult to address the differences between regions of Tanzania. This was because four regions of Tanzania had no valid observations for variables like amount_tsh. If addressing water quality by region is desired, then more accurate data collection is needed and is something that could be done for further analysis.
The following is a list of possible things to explore in the future for this project:
Convert this from a multiclass to a binary classification problem to address class imbalance and lack of variance between FNR and non-functional classes.
Address the water well functionality by regions. This requires for the data to be recollected (at least for the four regions where data is missing). The four regions are: Dodoma, Kagera, Mbeya, and Tabor
Try a new model that includes only the top 6 predictors in the variable of importance plot.
[1] “Tanzania’s Water Crisis - Tanzania’s Water in 2021.” Water.org, water.org/our-impact/where-we-work/tanzania/.
[2] DrivenData. “Pump It Up: Data Mining the Water Table.” DrivenData, www.drivendata.org/competitions/7/pump-it-up-data-mining-the-water-table/page/25/.
[3] “2012_Census_General_Report.pdf” National Bureau of Statistics Ministry of Finance Dar Es Salaam , Mar. 2013.
[4] Landis, J. Richard, and Gary G. Koch. “The Measurement of Observer Agreement for Categorical Data.” Biometrics, vol. 33, no. 1, 1977, pp. 159–174., doi:10.2307/2529310.
[5] Saraswat, Manish. “Beginners Tutorial on Xgboost and Parameter Tuning in R Tutorials & NOTES: Machine Learning.” HackerEarth, www.hackerearth.com/practice/machine-learning/machine-learning-algorithms/beginners-tutorial-on-xgboost-parameter-tuning-r/tutorial/.
[6] Greenwell, Brandon,M., and Bradley,C. Boehmke. “Variable Importance Plots—an Introduction to the Vip Package.” The R Journal, vol. 12, no. 1, 2020, doi:10.32614/rj-2020-013.
[7] “Understanding Latitude and Longitude.” Understanding Latitude and Longitude, University of Wisconsin-Madison, journeynorth.org/tm/LongitudeIntro.html.


Battleship
You Win! Click Start over to play again!
The computer won this time! Click Start over to play again!
Player's Ships:
Carrier (5)
Battleship (4)
Cruiser (3)
Submarine (3)
Destroyer (2)
Click on each ship to place on the board to the right.
Rotate
Carrier
Battleship
Cruiser
Submarine
Destroyer
Thinking...
Computer's Ships:
Carrier (5)
Battleship (4)
Cruiser (3)
Submarine (3)
Destroyer (2)


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface BasicFileAttributes
Basic attributes associated with a file in a file system.
Basic file attributes are attributes that are common to many file systems and consist of mandatory and optional file attributes as defined by this interface.
Usage Example:
FileRef file = ... BasicFileAttributes attrs = Attributes.readBasicFileAttributes(file);
BasicFileAttributeView
| Method Summary | |
|---|---|
long |
creationTime()
Returns the creation time if supported. |
Object |
fileKey()
Returns an object that uniquely identifies the given file, or null if a file key is not available. |
boolean |
isDirectory()
Tells whether the file is a directory. |
boolean |
isOther()
Tells whether the file is something other than a regular file, directory, or link. |
boolean |
isRegularFile()
Tells whether the file is a regular file with opaque content. |
boolean |
isSymbolicLink()
Tells whether the file is a symbolic-link. |
long |
lastAccessTime()
Returns the time of last access if supported. |
long |
lastModifiedTime()
Returns the time of last modification. |
int |
linkCount()
Returns the number of links to this file. |
TimeUnit |
resolution()
Returns the TimeUnit required to interpret the time of last
modification, time of last access, and creation time. |
long |
size()
Returns the size of the file (in bytes). |
| Method Detail |
|---|
long lastModifiedTime()
The resolution
method returns the TimeUnit
to interpret the return value of this method.
long
value representing the time the file was
last modified since the epoch (00:00:00 GMT, January 1, 1970),
or -1L
if the attribute is not supported.long lastAccessTime()
The resolution
method returns the TimeUnit
to interpret the return value of this method.
long
value representing the time of last access
since the epoch (00:00:00 GMT, January 1, 1970), or -1L
if the attribute is not supported.long creationTime()
The resolution
method returns the TimeUnit
to interpret the return value of this method.
long
value representing the time the file was
created since the epoch (00:00:00 GMT, January 1, 1970), or
-1L
if the attribute is not supported.TimeUnit resolution()
TimeUnit
required to interpret the time of last
modification, time of last access, and creation time.
TimeUnit
required to interpret the file time stampsboolean isRegularFile()
boolean isDirectory()
boolean isSymbolicLink()
boolean isOther()
long size()
regular
files is implementation specific and
therefore unspecified.
int linkCount()
On file systems where the same file may be in several directories then
the link count is the number of directory entries for the file. The return
value is 1
on file systems that only allow a file to have a
single name in a single directory.
Object fileKey()
null
if a file key is not available. On some platforms or file systems
it is possible to use an identifier, or a combination of identifiers to
uniquely identify a file. Such identifiers are important for operations
such as file tree traversal in file systems that support symbolic links or file systems
that allow a file to be an entry in more than one directory. On UNIX file
systems, for example, the device ID and inode are
commonly used for such purposes.
The file key returned by this method can only be guaranteed to be unique if the file system and files remain static. Whether a file system re-uses identifiers after a file is deleted is implementation dependent and therefore unspecified.
File keys returned by this method can be compared for equality and are suitable for use in collections.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Boots' 3 for 2 offer is back and shoppers can save an extra 10% too
The deal includes gift sets from Soap & Glory, Yankee Candle and more
by Catherine MurphyBoots shoppers were left devastated last month when they noticed the retailer was no longer offering its 3-for-2 deal on Christmas presents.
But it looks like the retailer has changed its mind as the deal is now back with shoppers also able to get an extra 10% off when they spend £50 or more online.
The annual sale, which includes gift sets from brands such as Ted Baker, Yankee Candle, Soap and Glory and more, allows you to pick up the cheapest item for free in stores and online throughout the festive season, reports MirrorOnline.
The extra 10% offer is running until Wednesday, November 27.
A spokesperson for Boots said: "Every year we aim to offer better savings for our customers throughout the festive period.
We aim to improve our savings throughout the festive period every year.
"Our customers tell us how much they value 3 for 2 when they have lots of gifts to buy, however, we know not all of our customers want or need to buy 3 gifts, so, this year we’re introducing new and different ways to help all our customers get great value at Boots, whatever their budget.
"Customers can expect to see either 3 for 2 or save 25% discount offers go live on amazing giftsets in the run up to Christmas, and don’t forget our unmissable Big Deals which are available until stocks last.
Sign up to the What's On newsletter - packed with brilliant things to see and do in Liverpool and beyond.


Dutch treat for older citizens at Christmas time
A special lunch is held each Christmas for Dutch seniors in Canberra. And organisers have put the call out in an attempt to ensure as many people as possible attend this year's event.
The Dutch Seniors Christmas Lunch is being held this year at the Canberra Club in Barton on Sunday, December 1.
Oranjefeest Canberra. a not-for-profit community organisation sponsors the event each year, organising entertainment and volunteers to serve and transport the participants. There will be magic and Dutch piano tunes and a Dutch toast or three.
One of the organisers, Hans van der Zandt, says people who'd like to go to the lunch have until Tuesday to book.
"We would like to reach out to as many Dutch seniors as possible to give them a good time," he said.
"The old Dutchies helped to build Canberra 50 years or so ago."
Among the Dutch who did help Canberra to grow were Elly and Harry Janssen who moved from Holland direct to the national capital in 1968.
Harry was a carpenter and his skills were in high demand. He started on cottages and then hung fire doors for Wormald in countless buildings, ending with his last job, at new Parliament House.
"You name the building and I've been in it. I don't want to know about doors now. I've started dreaming about doors now," Harry said, with a laugh.
He and Elly went on to have three children in Canberra.
"I had no intention of coming to Canberra but Elly had an uncle here," Harry said. "I'm still getting used to the place."
Elly who also worked in hospitality, remembered well arriving in their new home city 51 years ago.
"It was good. Nice and roomy - open - compared to what we'd left behind," she said.
The Janssens having been attending the Dutch Christmas lunch for about 10 years.
"You get together for a nice feed and catch up with people you sort of haven't seen the whole year," she said.
People who'd like to attend the lunch can ring Hans van der Zandt on 0419 405 273.


AllDatabaseDocuments
public struct AllDatabaseDocuments
A struct representing the JSON returned when querying a Database or View.
If includeDocuments
was true for the query, each row will have an additional doc
field containing the JSON document.
These documents can then be decoded to a given Swift type using decodeDocuments(ofType:)
.
CouchDB reference: All_Database_Documents
Usage Example:
struct MyDocument: Document {
let _id: String?
var _rev: String?
var value: String
}
database.retrieveAll(includeDocuments: true) { (allDocs, error) in
if let allDocs = allDocs,
let decodedDocs = allDocs.decodeDocuments(ofType: MyDocument)
{
for doc in decodedDocs {
print("Retrieved MyDocument with value: \(doc.value)")
}
}
}
-
Number of documents in the database/view.
Declaration
Swift
public let total_rows: Int?
-
Offset where the document list started
Declaration
Swift
public let offset: Int?
-
Current update sequence for the database.
Declaration
Swift
public let update_seq: String?
-
The JSON response from a request to the view endpoint. Each element of the array contains an
id
,key
andvalue
field. Ifinclude_docs
was true, also contains the correspondingDocument
inside thedoc
field. http://docs.couchdb.org/en/stable/api/ddoc/views.html#api-ddoc-viewDeclaration
Swift
public let rows: [[String: Any]]
-
This function iterates through the
AllDatabaseDocuments
rows and returns the documents that could be successfully decoded as the given type. If theincludeDocuments
query parameter was false, this will return an empty array.Declaration
Swift
public func decodeDocuments<T: Document>(ofType: T.Type) -> [T]


Exhibitions
Yorkshire Museum: After the Ice exhibition
Celebrate Yorkshire’s beginnings at the Yorkshire Museum.
An exciting display incorporating sound, film and cutting edge technology with a range of fantastic archaeological material and scientific specimens will tell the story of Yorkshire – from its beginnings to the arrival of the Romans.
From a Paleolithic handaxe to the first Iron Age gold jewellery ever to be found in Yorkshire, the display will give visitors a sense of this regions rich heritage as well as an insight into how life played out here thousands of years ago.
Special attention is paid to the story of Star Carr; the most significant Mesolithic site in Europe, where people lived over 11,000 years ago.
Bone harpoons, elk antler tools and birch bark rolls – amazingly preserved in peat – are just some of the highlights which will tell the story of the people of Yorkshire in the Mesolithic period. An array of animals from our Natural Science collection sit alongside these archaeological gems, against a recreated backdrop of the site of Star Carr, to demonstrate how the Yorkshire landscape looked in the past, and link our collections with the landscape from which they derive.
The ancient finds are displayed alongside exciting digital content, giving visitors a taste of the sights and sounds that our ancestors would have experienced in Yorkshire 11,000 years ago.
Rotunda Museum: Star Carr Display
Star Carr is a world renowned prehistoric site located just outside Scarborough. Since the late 1940s a large number of well preserved artefacts have been discovered there and we are delighted to exhibit a selection of these in this new display. Items on show include flint tools, animal bones and a stag frontlet which was used as a head-dress.
British Museum: Mesolithic display
After the end of the last Ice Age, by 9000 BC, weather conditions had become similar to today and plants and animals had returned to the landscape of Britain. At Star Carr in Yorkshire, archaeologists found the remains of a settlement which had been preserved well in waterlogged soil. The people hunted red deer, among other animals, and made headdresses from their antlers. Star Carr was very important in helping archaeologists understand the Mesolithic period better and provides a vivid insight into several aspects of life at that time.
You can download a pdf of the information presented on the webpage at http://teachinghistory100.org/objects/about_the_object/mesolithic_headdress.
Museum of Archaeology and Anthropology, Cambridge: Display
The Museum holds archaeological finds from every part of the inhabited world. They range from some of the very oldest – early hominid tools discovered by Louis Leakey in Olduvai Gorge, east Africa – to medieval and post-medieval finds from sites within Cambridge. They include finds from major excavations crucial to the development of archaeological science, such as those conducted by Kathleen Kenyon at Jericho in the Jordan valley, one of the oldest continually occupied cities in the world, and material from Star Carr in Yorkshire, excavated by Grahame Clark over 1949-51.
MAA holds one of the finest pre-Columbian collections in Britain, including remarkably preserved early textiles; important prehistoric Arctic materials; wide-ranging collections relating to early research in southern Africa, on rock art among other topics; and – of special interest to Cambridge communities – finds from major Roman cemeteries at Great Chesterford and Litlington, as well as many other prehistoric, Roman and Anglo-Saxon finds from the city and region.


Despite it's name, the setup for working with ODD usually requires at least two logical files (though these may spread across many more files in the file system, as shown in the following step of this tutorial). The first of these files is the so-called source: It holds the full specification of the format, in this case MEI. In our repository, it is located in the mei-source.xml file. In addition to that file, a separate customization is required to specify which parts of the specification are to be used in a given context. The whole purpose of ODD is to allow flexible customizations of the schema. MEI provides a set of pre-defined profiles, which are nothing but customizations of the MEI schema.
In order to use MEI (or any other ODD-based format), the customization file is used to control how the source file shall be compiled. There are several target formats for that compilation, which is explained elsewhere. The most common target is a RelaxNG file, which contains both RelaxNG hierarchies and additional Schematron rules as defined in the ODD, and can be used for validation against both types of schema. All other possible output formats are not commonly used for MEI. (Side note: we'll come back to a brief explanation of Schematron later in this tutorial.)
While this tutorial is focussed on explaining the basic principles of the ODD structures as found in the MEI sources, a separate tutorial on ODD will explain how to customize MEI to specific needs. The following steps will introduce the mechanisms of the main ODD structures in MEI: modules, elements, models, attributes, datatypes and macros. Let's continue in order to start with a closer look at modules…


Chocolate Pizza
POSTED ON DEC 2013 / DESSERTS
It’s a chocolate covered chips bonanza! This “pizza & wings” combo is chips on chips. Start with a 16
ounce Chocolate Pizza that blends gourmet milk chocolate and crunchy, rippled potato chips. The secret
is in the chocolate – we use only the highest grade Swiss-style milk chocolate to create a velvety
smooth experience that sends your taste buds soaring. Sealed in cellophane and served in a custom pizza
box. How do you like your chocolate covered potato chips? How about served in a Chocolate Pizza!
But we’re just getting started chocolate covered chips lover! Now, add a box of our famous Peanut Butter
Wings. Peanut Butter Wings are crisp, rippled potato chips covered in creamy peanut butter and drenched
in rich milk or dark chocolate. The Combo comes with an 8 ounce box but you can upgrade to a large, 16
ounce size for a few dollars more. Chocolate covered chips with peanut butter – insanely delicious!
Chocolate Pizza Company has been featured nationally on Food Network, Hallmark Channel, Discovery
Channel, CNBC and more. Located in the rolling hills of Upstate New York, this family owned small
business has been creating amazing gourmet chocolate specialties for over 30 years. Famous for their
trademarked Chocolate Pizza & Peanut Butter Wings there is a chocolate specialty for every holiday or
special occasion.
Allergy note: All our products are produced in a facility and on machines that share peanuts, tree nuts,
eggs, wheat, milk and soy.


Mark Ruffalo's 'Dark Waters' Is Off to Swimming Start at Indie Box Office
A24’s “The Lighthouse” crosses $10 million in quieter weekend for specialty releases
25 Nov 2019, 02:30 by Jeremy Fuster
With the indie box office slowing down in advance of Thanksgiving weekend, the sole major release on Friday was Focus Features’ “Dark Waters,” which grossed an estimated $110,000 from four screens in New York and Los Angeles.
The socially-minded thriller took in a per screen average of $27,500, second only to the chart-topping “Frozen II,” which took an average of $28,604 per screen from its $127 million wide opening. Starring Mark Ruffalo and directed by Todd Haynes, “Dark Waters” tells the true story of Robert Bilott, a corporate defense attorney who became an environmental litigator after discovering that a series of seemingly unexplained deaths was connected to rampant pollution by the chemical company DuPont. The film has a 91% Rotten Tomatoes score.
Also Read:
Focus’ other big true story film, “Harriet,” added $2.3 million from its fourth weekend in wide release, bringing its total to $36 million. Fox Searchlight’s “Jojo Rabbit” and NEON’s “Parasite” both crossed the $16 million mark, with “Jojo” adding $1.5 million in its sixth weekend from 787 screens, while “Parasite” took $1.2 million from 433 screens in its seventh weekend.
Amazon expanded “Honey Boy” to 44 screens, grossing $269,280 in its third weekend for a $939,676 total, while A24 expanded “Waves” to 23 screens for a $162,000 total and a $329,000 cume. Finally, A24’s other fall release, “The Lighthouse,” crossed the $10 million mark in its sixth weekend with $185,000 grossed from 113 screens.
A look at top animated moneymakers as of September 2019, from "The Lion King" to "Zootopia." The numbers are not adjusted for inflation.
30. "Kung Fu Panda" (2008) Worldwide Gross: $631,744,560 The success of Jack Black 's 2008 martial arts-meet-spongy mammal movie set into motion its inevitable -- and even more profitable -- sequel. Dreamworks Animation Studios
29. "The Incredibles" (2004) Worldwide Gross: $633,019,734 In 2004, Brad Bird 's first Pixar outing wowed audiences with complicated animated action scenes, cross-generational comedy and superhero mayhem.Pixar Animation Studios
28. "Sing" (2016) Worldwide Gross: $634,151,679 Illumination's animal-karaoke musical crooned its way onto the list.
27. "Moana" (2016) Worldwide Gross: $643,331,111 Disney's Hawaii-set movie scored two Oscar nominations, for Best Animated Feature and Lin-Manuel Miranda's song "How Far I'll Go." Disney
26. "Big Hero 6" (2014) Worldwide Gross: $657,818,612 Disney's 2014 robot tale combined anime aesthetics, superhero action and Pixar's heart.Disney Animation Studios
25. "Ice Age: The Meltdown" (2006) Worldwide Gross: $660,940,780 Fox's 2006 prehistoric romp proved the success of the first was no fluke.Twentieth Century Fox
24. "Kung Fu Panda 2" (2011) Worldwide Gross: $665,692,281 With the franchise's skills proven, DreamWorks Animation gave the world another hit of comedy with this animated martial arts sequel in 2011.Dreamworks Animation Studios
23. "Up" (2009) Worldwide Gross: $735,099,082 The 2009 fan favorite demonstrated that original ideas with big emotions could make big money.Pixar Animation Studios
22. "Monsters University" (2013) Worldwide Gross: $744,229,437 Ten years after the release of "Monsters Inc," Pixar sent fans back to school in a 2013 prequel.Pixar Animation Studios
21. "Madagascar 3: Europe's Most Wanted" (2012) Worldwide Gross: $746,921,274 DreamWorks Animation's "Madagascar" series kept the studio afloat with a string of breezy successes, including 2012's third installment.Dreamworks Animation Studios
20. "Shrek Forever After" (2010) Worldwide Gross: $752,600,867 The big green ogre's final chapter dropped in 2010.Dreamworks Animation Studio
19. "Shrek the Third" (2007) Worldwide Gross: $798,958,162 Made in 2007, this sequel proved there was still some gas left in this fantasy mash-up comedy franchise.Dreamworks Animation Studio
18. "Coco" (2017) Worldwide Gross: $807,082,196 Directed by Lee Unkrich, this animated film captured everyone's hearts and even won the Academy Award for Best Animated Feature in 2018.Disney/Pixar
17. "Inside Out" (2015) Worldwide Gross: $857,611,174 Disney Pixar hit the home run again with this animated feature film about the emotions inside your head, starring Amy Poehler , Mindy Kaling and Bill Hader . Disney/Pixar
16. "The Secret Life of Pets" (2016) Worldwide Gross:$875,457,937 Universal/Illumination's story of dogs seeking out adventure while their owners are away charmed its way onto the list.
15. "Ice Age: Continental Drift " (2012) Worldwide Gross: $877,244,782 Profits abound for this 2012 fourth installment in the chilly prehistoric franchise, followed just behind it's predecessor.Twentieth Century Fox Animation
14."Ice Age: Dawn of the Dinosaurs" (2009) Worldwide Gross: $888,805,671 While other films have made bigger waves in the States, international sales have always returned big money for Fox's "Ice Age" franchise, proven again by the 2009 entry.Twentieth Century Fox Animation
13. "Shrek 2" (2004) Worldwide Gross: $919,838,758 DreamWorks Animation proved to be worthy Pixar competition with its successful "Shrek" franchise.Dreamworks Animation Studio
12. "Finding Nemo" (2003) Worldwide Gross: $940,335,536 "Finding Nemo" was something of a second-wind for Pixar, solidifying the company's place as the titans of modern animation.Pixar Studios
11. "The Lion King" (1994) Worldwide Gross: $968,483,777 Can you feel the love tonight for this Disney animated classic?Disney Animation Studios
10. "Despicable Me 2" (2013) Worldwide Gross: $970,761,885 Illumination's sequel managed to make more money than its predecessor and put the upcoming "Minions" spin-off into motion.Illumination Studios
9. "Zootopia" (2016) Worldwide Gross: $1,023,784,195 Disney charmed audiences in 2016 with its cop thriller pairing a rookie rabbit cop and a wily fox informant.Disney
8. "Finding Dory" (2016) Worldwide Gross: $1,028,570,889 The sequel to "Finding Nemo" swam right back into audience's hearts.Pixar
7. "Despicable Me 3" (2017) Worldwide Gross: $1,034,799,409 Illumination's follow-up -- featuring Gru's blond-haired brother -- became the franchise's biggest grosser.
6. "Toy Story 4" (2019) Worldwide Gross: $1,061,928,660Disney
5. "Toy Story 3" (2010) Worldwide Gross: $1,066,969,703 Built on Pixar's critical and commercial goodwill, the third installment in the mega-franchise brought in big profits.Pixar Studios
4. "Minions" (2015) Worldwide Gross: $1,159,398,397 The little yellow helpers crossed the $1 billion mark at the end of August, raking in more money then "Despicable Me" and "Despicable Me 2" for Universal Pictures.Universal Pictures/Illumination Entertainment
3. "Incredibles 2" (2018) Worldwide Gross: $1,242,805,359 The superpowered family sprung back into action a full 14 years after the original -- but far surpassed the original film's box office haul. Disney/Pixar
2. "Frozen" (2013) Worldwide Gross: $1,276,480,335 Disney's 2013 smash-hit takes the box office top spot. And then there was merchandising, video on demand and home video that audiences just couldn't let go...Disney Animation Studios
1. The Lion King (2019) Worldwide Gross: $1,631,724,000 Whether the film is animated or live-action has been up for debate, the new "Lion King" was computer animated, so we're putting it on the list.Disney
30 Highest Grossing Animated Movies of All Time Worldwide Cartoon characters that cleaned up at the global box office, from “The Lion King” to “Incredibles 2”View In Gallery
Related Content