---
title: "Sprout House Workshops"
layout: "default"
---
Looking for a fun, educational way to connect children ages 5-12 with plants and the natural world? Then you’ll love our NEW Sprout House Workshops!
Sprout House Workshops are private, customizable classes hosted by you and designed for your youth group (such as Girl and Boy Scout Troops, 4H Clubs, play date groups, neighbors, friends, etc.). All Workshops include interactive, nature-themed lessons taught by Garden staff and include experiments, explorations in the Garden, and cool, hands-on projects participants create during class and take home.
Available from March - September on select Saturdays (subject to availability).
Dates & Times
- Available from March-September on select Saturdays (subject to availability).
- Morning workshops: 10-11:30AM
- Afternoon workshops: 1-2:30PM
Cost
Members: $192
Public: $240
Note: Class size limited to 16 students. Two adult Chaperones admitted at no extra charge.
Registration required
- Workshops limited to 16 participants.
- 2 adult chaperones admitted at no extra cost.
- Must be booked a minimum of 10 business days in advance.
- Fees include all class materials as well as Garden admission for all participants.
SPROUT HOUSE WORKSHOP FAQs
AGES
- Workshops are designed for children ages 5-12.
- Please specify the ages of students at the time of registration so instructors can tailor the lesson material to better fit your group.
BOOKING PROCESS
- Check availability on our website.
- Workshops must be booked a minimum of 10 business days in advance.
CANCELLATION POLICY
- You may cancel your workshop up to 10 business days prior to the date of the workshop. A full refund (less 20% processing fee) will be given.
- You may change the date of your workshop up to 10 business days prior to the date of the workshop (subject to availability).
- Programs canceled by the Garden due to Garden closure will automatically be fully refunded. You’ll be notified of a cancellation 24 hours prior to the start of the program. Should this occur, you may opt to reschedule to another date (subject to availability).
CHAPERONES
- One adult chaperone is required, but each workshop may have to up two at no extra cost. Additional chaperones will be charged regular garden admission.
- Workshops for children 6 and under require a minimum of four chaperones (at no additional cost).
CLOTHING
- Please come dressed for the weather. All workshops include time spent outside, weather permitting.
- Guests should wear clothes that are comfortable for outdoor and indoor activities, and hands-on (often messy) fun.
COST & CAPACITY
- Members: $192
- Public: $240
- Note: Class size limited to 16 students. Two adult Chaperones admitted at no extra charge.
DAYS & TIMES
- Available from March—September on select Saturdays (subject to availability).
- Morning sessions are from 10 – 11:30AM
- Afternoon sessions are from 1 - 2:30PM
GROUPS
- Sprout House Workshops are designed for non-school groups, which may include but are not limited to: Girl and Boy Scout troops, 4H Clubs, and other youth groups.
- For more information please call or email Jason Alba, Youth Programs Manager, at<PHONE_NUMBER> or at<EMAIL_ADDRESS>LOCATION
- All workshops take place in the Sprout House located in the Children’s Garden.
- Students and chaperones must check in at the front desk prior to entry into the Garden. Parents not attending the workshop are welcome to stay at the Garden after paying regular Garden admission rates.
Choose from the Following Classes
Bug Basics
Get up close and personal with the world of bugs! Students will explore life cycles, insect classification, and pollinators before creating custom bug catchers and butterfly feeders.
Ecosystem Adventures
Unravel the mysteries of Utah’s diverse biomes! Students will learn about habitats, ecosystems, and the water cycle before planting a miniature terrarium.
Junior Apothecary
Discover the unique uses of several common (and not-so-common!) plants. From healing to textiles, students will investigate how people from around the world use plants before creating their own natural lip balm, custom-scented candle, insect repellant, aromatherapy air freshener, or herbal sodas. *
* Select two projects to complete at registration.
Water Wizards
Desert plants have amazing adaptations to help them collect, contain, and conserve water in Utah’s dry environment. Students will explore desert ecosystems, water conservation, and desert plant adaptations before planting a desktop desert (mini succulent garden).
Available Dates & Times
Workshops will resume in March, 2018


| Full Papers | ||
|---|---|---|
| ID | Title | Authors |
| 2 | Evaluation and Complexity Analysis of Task Dependencies in an Artificial Hormone System | Eric Hutter, Mathias Pacher, and Uwe Brinkschulte (Goethe-University Frankfurt) |
| 6 | Multi-Level Preemption in TSN: Feasibility and Requirements Analysis | Mubarak Adetunji Ojewale and Patrick Meumeu Yomsi (CISTER Research Centre, ISEP, Polytechnic Institute of Porto, Portugal); Borislav Nikolic (Institute of Computer and Network Engineering, TU Braunschweig, Germany) |
| 7 | The Efficient Multiprocessor Implementation of Synchronous Reactive Components | Sanjoy Baruah (Washington University in St. Louis) |
| 8 | A Generalized Approach for Non-intrusive Real-time Instrumentation of Standards-based Distributed Middleware | Nyalia Lui and James H. Hill (Indiana University-Purdue University Indianapolis) |
| 9 | Precisely Timed Task Execution | Stefan Reif and Wolfgang Schröder-Preikschat (Friedrich-Alexander-Universität Erlangen-Nürnberg) |
| 13 | Security in Mixed Time and Event Triggered Cyber-Physical Systems using Moving Target Defense | Bradley Potteiger, Feiyang Cai, and Abishek Dubey (Vanderbilt University); Zhenkai Zhang (Texas Tech University); Xenofon Koutsoukos (Vanderbilt University) |
| 14 | Harmonizing ARINC 653 and Realtime POSIX for Conformance to the FACE Technical Standard | Gedare Bloom (University of Colorado Colorado Springs); Joel Sherrill (OAR Corporation) |
| 15 | Using Multi-core Architectures to Improve the Performance of Real-time Dynamic Binary Instrumentation | Mike Du and James H. Hill (Indiana University-Purdue University Indianapolis) |
| 19 | Towards Dual-Issue Single-Path Code | Emad Jacob Maroun (Vienna University of Technology); Martin Schoeberl (Technical University of Denmark); Peter Puschner (Vienna University of Technology) |
| 20 | A Model-driven Middleware Integration Approach for Performance-Sensitive Distributed Simulations | Travis Brummett (Tennessee Technological University); Kyoungho An (Real-time Innovations); Aniruddha Gokhale (Vanderbilt University); Sander Mertens (Zoox) |
| 21 | An Architecture for Declarative Real-Time Scheduling on Linux | Gabriele Serra, Gabriele Ara, Pietro Fara, and Tommaso Cucinotta (Scuola Superiore Sant'Anna, Pisa) |
| 22 | EXPPO: EXecution Performance Profiling and Optimization for CPS Co-simulation-as-a-Service | Yogesh Barve, Zhuangwei Kang, Hongyang Sun, Aniruddha Gokhale, and Himanshu Neema (Vanderbilt University, USA); Thomas Roth (National Institute of Standards and Technology) |
| 24 | Time-dependent Decentralized Routing using Federated Learning | Michael Wilbur and Chinmaya Samal (Vanderbilt University); Jose Paolo Talusan and Keiichi Yasumoto (Nara Institute of Science and Technology); Abhishek Dubey (Vanderbilt University) |
| 26 | A Situation-Aware Adaptation Framework for Intelligent Transportation Systems | Nayreet Islam and Akramul Azim (Ontario Tech University) |
| 34 | A Systematic Migration Methodology for Complex Real-time Software Systems | Mohammed Salman Shaik (ABB, Mälardalen University); Alessandro Vittorio Papadopoulos, Saad Mubeen, and Thomas Nolte (Mälardalen University) |
| Short Papers | ||
|---|---|---|
| ID | Title | Authors |
| 10 | A Real-Time Application with Fully Predictable Task Timing | Michael Platzer and Peter Puschner (TU Wien) |
| 12 | Container-Based Internet-of-Things Architecture Pattern: Kill Switch | David Lennick, Akramul Azim, and Ramiro Liscano (Ontario Tech University) |
| WIP Papers | ||
|---|---|---|
| ID | Title | Authors |
| 3 | Failure Detection in TSN Startup Using Deep Learning | DANIEL ONWUCHEKWA, Garcia Enamorado Juan, Carlos Lua, and Obermaisser Roman (University of Siegen) |
| 5 | Probabilistic Schedulability Analysis for Real-time Tasks with Precedence Constraints on Partitioned Multi-core | Slim BEN AMOR, Liliana CUCU-GROSJEAN, Mehdi MEZOUAK, and Yves SOREL (INRIA) |
| 11 | A Cross-Layer Review of Deep Learning Frameworks to Ease Their Optimization and Reuse | Hamid Tabani (Barcelona Supercomputing Center (BSC)); Roger Pujol (Barcelona Supercomputing Center (BSC) and Universitat Politecnica de Catalunya (UPC)); Jaume Abella and Francisco J. Cazorla (Barcelona Supercomputing Center (BSC)) |
| 25 | Internet of Things based Cyber-Physical System framework for Real-Time Operations | Vatsal Maru, Saideep Nannapaneni, and Krishna Krishnan (Wichita State University) |
| 28 | An Integrated Cyber-Physical Fault Management Approach | Purboday Ghosh (PhD Student, Vanderbilt University); Gabor Karsai (Professor, Vanderbilt University) |
| 32 | Context-based learning for autonomous vehicles | Maria Joelma Pereira Peixoto and Akramul Azim (Ontario Tech) |
| 36 | Real-Time Event-Based Dynamic Multi-Depot Vehicle Rerouting | Ajaykrishna Madhu, Ramkumar Harikrishnakumar, Krishna Krishnan, and Saideep Nannapaneni (Wichita State University) |
| 37 | Real-Time Dynamic Hardware Reconfiguration for Processors with Redundant Functional Units | Randolf Rotta, Raphael Segabinazzi Ferreira, and Jörg Nolte (Brandenburg University of Technology Cottbus-Senftenberg) |
| 39 | Towards Industrial Security Through Real-time Analytics | Prajjwal Dangal and Gedare Bloom (University of Colorado Colorado Springs) |
| Invited Papers | ||
|---|---|---|
| ID | Title | Authors |
| 1 | Heuristic partitioning of real-time tasks on multi-processors | Agostino Mascitti, Tommaso Cucinotta, and Luca Abeni (Scuola Superiore Sant'Anna) |
| 3 | Heterogeneous Task Co-location in Containerized Cloud Computing Environments | Zhiheng Zhong, Jiabo He, Maria A. Rodriguez, Sarah Erfani, Ramamohanarao Kotagiri, and Rajkumar Buyya (The University of Melbourne) |
| 4 | Fast Failover in Ethernet-Based Automotive Networks | Adam Kostrzewa and Rolf Ernst (TU Braunschweig) |
| 5 | Predictable Vision for Autonomous Systems | Michael Balszun and Martin Geier (Technical University of Munich); Samarjit Chakraborty (University of North Carolina at Chapel Hill) |
| 6 | The AMPERE Project: A Model-driven development framework for highly Parallel and EneRgy-Efficient computation supporting multi-criteria optimization | Eduardo Quiñones and Sara Royuela (BSC); Claudio Scordino (Evidence); Luis Miguel Pinho (ISEP); Tommaso Cucinotta (SSSA); Björn Forsberg (ETHZ); Arne Hamann and Dirk Ziegenbein (Bosch); Paolo Gai (Evidence); Alessandro Biondi (SSSA); Luca Benini (ETHZ); Jan Rollo (Sysgo); Hadi Saoud and Romain Soulat (Thales TRT); Gianluca Mando and Luigi Rucher (Thales Italy); Lucas Nogueira (ISEP) |
| 8 | The Price of Schedulability in Multi-Object Tracking: The History-vs.-Accuracy Trade-Off | Tanya Amert, Ming Yang, Saujas Nandi, Thanh Vu, James H. Anderson, and F. Donelson Smith (University of North Carolina at Chapel Hill) |


?The
New
York
copyright
reserved
Botanical
Garden
DOMINICAN
REPUBLIC
prov.
San
Juan
Daucus
Carota
L
3'
herb;
fis.
white;
in
areas
near
the
river.
Plants
of
pine
woodlands.
Alt.
8500'
El-Ge’oa‡oy
Jwm-Saotiai
Hondo
Valle.
Coll.
R.
A.
&
E.
S.
Howard
8726
01500955
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


TimingLogger
TimingLogger
Sometimes developers needs to analyze performance of a small friction of code. Maybe a RecyclerView is not scrolling smoothly or a calculation needs too much time, we have to split it up and try to find the line or block that runs inefficently. We all know to get a smooth user experience we only have 16ms for each frame to render. So it is very important to locate and optimize inefficient code.
In this cases TimingLogger class is our friend.
val logger = TimingLogger(„PerformanceCheck", „democheck“)
//do something
logger.addSplit („calculated $var1“)
//do something else
logger.addSplit („calculated $var2“)
//
// add as much addSplit as you need for your use case
//
logger.dumpToLog()
The dumpToLog call will produce the following log output:
D/Logger: values: begin
D/Logger: democheck: 14 ms, calculated var1Value
D/Logger: democheck: 2 ms, calculated var2Value
D/Logger: democheck: end, 1131 ms
IMPORTANT: Enable the log output for this class with the following adb command:
adb shell setprop log.tag.PerformanceCheck VERBOSE
PerformanceCheck is the first parameter when creating a new TimingLogger object
ProTip: Strip out TimingLogger calls from code in production builds use ProGuard
-assumenosideeffects class android.util.TimingLogger {
public void addSplit(java.lang.String))
public void dumpToLog();
public void reset()
public void reset(java.lang.String, java.lang.String)
}


Talknight @ Brmlab , Prague, Czech Republic from Open Steps on Vimeo.
Visualising Open Data to bring out global issues @ Metalab , Vienna, Austria from Open Steps on Vimeo.
Visualising Open Data to bring out global issues @ Metalab , Vienna, Austria (Practical Part) from Open Steps on Vimeo.
Visualising Open Data to bring out global issues @ CIS, Bangalore, India from Open Steps on Vimeo.
Documenting Open Knowledge around the world @ DimSumLabs, Hong Kong from Open Steps on Vimeo.
Visualizando datos abiertos para entender mejor problemáticas globales @ Centro Cultural da Espanha, Curitiba, Brazil from Open Steps on Vimeo.
Interview with Gent Thaçi, Ardian Haxha, Altin Ukshini // FLOSSK, Pristina, Kosovo from Open Steps on Vimeo.
Interview with Redon Skikuli , Open Labs, Tirana, Albania from Open Steps on Vimeo.
Data Bootcamp Uruguay @ Montevideo, Uruguay from Open Steps on Vimeo.


--- title: Sandbox layout: default fluid: true section: sandbox weight: 30 lib: sandbox lodash: true ---


The Lost World: Jurassic Park
Chad'z rating: ** (out of 4 = fair/below average)
1997, PG-13, 134 minutes [2 hours, 14 minutes]
[science fiction/thriller]
starring: Jeff Goldblum (Dr. Ian Malcolm), Julianne Moore (Dr. Sarah Harding), Vince Vaughn (Nick Van Owen), Arliss Howard (Peter Ludlow); written by David Koepp; produced by Gerald R. Molen, Colin Wilson; directed by Steven Spielberg; based on the novel by Michael Crichton.
Seen November 29, 1997 on home video (rented).
They say when you've got a winning strategy don't change your game plan. That's good advice, unfortunately the one place it doesn't work is Hollywood, or else "The Lost World: Jurassic Park" might have been something original. Instead, it's just a repeat of everything Spielberg's done before and proves some things are only impressive once.
The film opens in typical Spielberg fashion with a supposedly charming scene that also shows the advances made in special effects. Initially, it is interesting to watch, but within a few minutes we get a lot of screaming and off-screen bloodshed, and it's apparent the film is going to be much like the original "Jurassic Park."
That feeling of deja vu continues to manifest itself as the story unfolds much like another mediocre sci-fi thriller, "Aliens." We catch up with Dr. Ian Malcolm (Goldblum), who has apparently been shunned from the scientific community for "telling stories" about what happened on that South American island four years ago. He visits Dr. John Hammond (Richard Attenborough), the owner and curator of the park who tells him there is another island full of dinosaurs which he is in danger of losing to either the government or poachers (I couldn't really tell from all the jargon). He wants Malcolm, along with palentologist Dr. Sarah Harding (who just happens to be Malcolm's girlfriend), and photographer Nick Van Owen (Vaughn), to go there and make sure the park is stable. Of course Malcolm panics when he realizes Harding is already down there, and agrees to go "rescue" her.
It's not surprising how quickly the opening act is paced. This film is meant to be a special effects thrill ride, so it doesn't want to waste anyone's time with a story (God forbid!).  The dialogue between these character is trite and blatantly foreshadowing. All the characters are generic, and thus Goldblum sticks out like a sore thumb since he's the only character with depth.
Once the main characters reach the dinosaur island the film practically becomes a remake of the original. We get many shots of dinosaurs roaming the island which are impressive visually, but almost boring intellectually because of the bland story. It's no surprise that once a team of hunters invade the island all Hell breaks lose and the film becomes a 100-minute chase scene. We get another scene of the dinosaurs pushing a vehicle off a cliff with our characters inside dangling by a thread. There's more hide-and-seek scenes with those nasty raptors, who are conviently delt with by the daughter's gymnastics talent. And of course the brave, mighty hunters turn into cowards and many are eaten as they flee.
But the film's problem isn't just the fact it repeats itself (and its predecessor), it's the way it does so. There is no sense of satire here, which means the film wants to be taken seriously, which is hard to do considering how corny and contrived the screenplay is. It often wanders from the main characters for large blocks of time just to show other people be eaten by the dinosaurs (which is just an excuse to dodge the story and show off the effects). Not to mention how badly it over-doses on the cliffhangers.
The last act somehow shifts the setting to San Diego and much like a modern "Godzilla," we get a T-Rex wreaking havoc there. Not surprisingly, the ending isn't quite resolved which could (and probably will) leave room for another sequel.

Please visit Chad'z Movie Page @ http://members.aol.com/ChadPolenz - over 180 new and old films reviewed in depth, not just blind ratings and quick capsules. Also, check out The FIRST Shay Astar Web Page @ http://members.aol.com/ChadPolenz/ShayAstar.html
To receive Chad'z movie reviews directly, send e-mail to<EMAIL_ADDRESS>with "subscribe" in the header.
(C) 1997 Chad Polenz
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


WITNESS LIST County Affairs Committee February 19, 1997-8:00A HB 292 For: Rep. Warren Chisum (Himself) HB 527 For: Al Cornelius (Ellis County) HB 649 For: Rep. Fred Bosse (Himself) Registering, but not testifying: For: Leonard Spearman (Harris County) HB 718 For: Rep. Fred Bosse (Himself) HB 991 For: Dynette Espinosa (Herself) Larry Schneider (Himself) Nancy Schneider (Herself) Rep. Arlene Wohlgemuth (Herself) Rep. Sue Palmer (Herself) On: Pamela J. Wilson (TX Dept. of Health) Registering, but not testifying: For: Leonard Spearman (Harris County) Shanna Igo (TML)


Cora says she isn’t quite ready to take the hotel’s advice here 4/15/2022, 2:19:54 AM Favs: 4 Retweets: 0 link


R works with numerous data types. Some of the most basic types to get started are:
4.5
are called numerics.4
are called integers. Integers are also numerics.TRUE
or FALSE
) are called logical.Note how the quotation marks on the right indicate that "some text" is a character.
Change the value of the:
my_numeric
variable to 42
.my_character
variable to "universe"
. Note that the quotation marks indicate that "universe"
is a character.my_logical
variable to FALSE
.
Note that R is case sensitive!
  All letters of `FALSE` should be capitalized!")
success_msg("Great work! Continue to the next exercise.")
Replace the values in the editor with the values that are provided in the exercise. For example:
my_numeric <- 42
assigns the value 42 to the variable my_numeric
.


Dear {{ user.username }},
{{ user.username }} is now a follower.
Regards,
The Socialite admin
Socialite


Ordering food was never so easy
Just 4 steps to follow
Choose Your Restaurant
Order Your Cuisine
Pay online / on delivery
Enjoy your food
Special Offers
Top Restaurants
Top Cuisines
100% Service Guarantee
Lorem ipsum dolor sit amet, consect-etuer adipiscing elit.
Fully Secure Payment
Lorem ipsum dolor sit amet, consect-etuer adipiscing elit.

Subscribe Newsletter
To get latest updates and food deals every week


Note: This is an export from my old wordpress website, your comments or references might be lost during the migration. Sorry for the inconvenience. download lastz wget http://www.bx.psu.edu/miller_lab/dist/lastz-1.02.00.tar.gz mv lastz-1.02.00.tar.gz ~/Software/src tar zxfv lastz-1.02.00.tar.gz cd lastz-distrib-1.02.00 edit install path vim make-include.mak # change installDir like this : installDir = ${HOME}/Software/bin install lastz cd src make make install troubleshooting In case of the following error occurred, segment.c:1330:10: error: comparison of array 'st->seg' equal to a null pointer is always false [-Werror,-Wtautological-pointer-compare] if (st->seg == NULL) return; ~~~~^~~ ~~~~ 1 error generated. make: *** [segment.o] Error 1 just remove -Werror in the Makefile at this line: definedForAll = -Wall -Wextra -Werror -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE


VALID:
TYPE:
| Credit Card Type | Credit Card Number |
|---|---|
| American Express |<PHONE_NUMBER>98431 |
| Diners Club |<PHONE_NUMBER>5904 |
| Discover |<PHONE_NUMBER>111117 |
| JCB |<PHONE_NUMBER>300000 |
| MasterCard |<PHONE_NUMBER>554444 |
| Visa |<PHONE_NUMBER>111111 |
This program works on Luhn algorithm, also known as the modulus 10 or mod 10 algorithm, which is a simple checksum formula used to validate a variety of identification numbers, such as credit card numbers, IMEI numbers, Canadian Social Insurance Numbers.
VALID:
TYPE:
This program works on Luhn algorithm, also known as the modulus 10 or mod 10 algorithm, which is a simple checksum formula used to validate a variety of identification numbers, such as credit card numbers, IMEI numbers, Canadian Social Insurance Numbers.


BUT I'M A CHEERLEADER A film review by Christopher Null Copyright 2000 filmcritic.com filmcritic.com
Take director Jon Waters and give him a really good actress like Natasha Lyonne, a paltry budget of, say, $1 million, and ask him to make a satire about a "gay rehab camp," and you might come up with something like But I'm a Cheerleader.
Then again, Waters might have come up with something funny, like Pecker. With such a meaty topic as Family Values ripe for a send-up, you'd think it would be easy to milk Cheerleader for comic value. Unfortunately, first-time feature director Jamie Babbit (whose few credits including directing the MTV series "Undressed" and acting as script supervisor on The Game) doesn't appear to have much ability behind the camera, which becomes painfully apparent after only a few minutes.
The story follows Megan (Lyonne), a high school cheerleader who wrestles with lesbian tendencies. She dreams of women's thighs while her boyfriend tongue-bathes her. She even has a Melissa Etheridge poster. Naturally, mom and dad want this gayness nipped in the bud, so they call in "True Directions," a homosexual-rehab group run by Mary Brown (Cathy Moriarty) that resembles 28 Days detox-center crossed with a McDonald's kiddie play area.
Everything at True Directions is cast in hot pink or baby blue (to let the recruits empathize with their gender), and exercises consist of learning to vacuum (ladies) and chopping wood (guys). Naturally, there are self-affirmations and admissions of homosexuality -- all part of the road to healing.
In the clink, Megan meets rough-and-tumble lesbian Graham (Clea DuVall, looking to make a career out of playing rough-and-tumble lesbian types), and naturally they fall in love. Will they run off together and become societal outcasts or will they graduate? Well, you need only wait about 75 zippy minutes to find out.
But I'm a Cheerleader plays a lot like a sitcom, only not a very funny one. (Perhaps a laugh track would have helped?) The addition of good actors like Melanie Lynskey (Heavenly Creatures) and Michelle Williams (Halloween: H2O) is far outweighed by using yesterday's pop-culture jokes like RuPaul (not in drag!), Mink Stole, and especially Moriarty. The editing, directing, and cinematography don't help, either. (Have fun while you watch: see how many times you can count the boom microphone drifting into frame!) The result is a haphazardly constructed mess that's totally off when it comes to comedic timing, and essentially unable to muster even the tiniest bit of sympathy for any of its cast, even if True Directions-style places really do exist.
But perhaps the most egregious error is casting Natasha Lyonne as a cheerleader. Lesbian, yes. Cheerleader, no. Lyonne strikes me as more of a band girl. Oh right -- I almost forgot -- it's supposed to be a satire.
 --- Christopher Null -<EMAIL_ADDRESS>- http://www.filmcritic.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


This is the place where the best work of mine can be seen. It is good for inspiration or for production use as well. It aims to creation of application's administration (frontend and backend too). It uses AngularJS + jQuery and J2EE + Jersey.
Scalability (lazy loading)
As administration interface gets bigger you don't have to worry about scalability, most content is downloaded lazyli on demand which saves server's and client's resources too.
Entity management setup in minutes
Application uses miloTable heavyweight directive which is highly customizable and with right REST endpoint it will do 90% of work when you do:
- Entities preview,
- filtering,
- sorting,
- create,
- update,
- or delete.
Stateless
Altough this is fully one-page Javascript application it holds important state in URL so you can reload anytime and stay in same state. Nice thing is that there are always loaded only needed sources.
Routing conventions
Makes creating new pages very fast
Easy localization
Easy CSS animations
Extendable color scheme
Every color scheme is less than 50 lines CSS (if you create new one and wanna share, please make a pull request at github)
HTML5 positive
It uses a lot of HTML elements and features e.g. as history API (when you click on menu items, url changes and new data is loaded without refresh, it works for older browsers with hashbang)
Validation
Validation is not used since I wanted to keep these examples simple. Of course I use client and server validation in real projects. If someone would be interested just ask, I would provide some easy validation examples (even combination of server and client validation, which is today somehow neccessary).
Take a look how it runs in. Select one of other sections in main menu (Clients, Orders, ...). It is worth to look at background (very few lines do lots of magic), so take a look at "Frontend Scenario" and "Backend Scenario" in submenu, or just dive into source code at github.


Throughout the Remote Sensing course, students embark on field trips to learn more about crisis response and about possible applications of their coursework. The following represents the field trips completed during the 2019 Remote Sensing program. The specific field trips done by each class may vary in future years.
MIT Lincoln Laboratory
MIT Lincoln Laboratory (MIT-LL), a co-sponsor for the Beaver Works Summer Institute. The Laboratory focuses on research that improves national security and assists in humanitarian aid. More specifically, the Humanitarian Assistance and Disaster Relief (HADR) branch of the laboratory works with crisis response. Throughout the trip, employees from MIT-LL share information about their research.
- What HADR research does MIT Lincoln Laboratory do?
- What kinds of data do we collect?
- What tools do we use?
- What problems do we address?
- What backgrounds do we have?
Massachusetts Task Force One
Massachusetts Task Force One (MA-TF1) handles much of the on-the-ground operations for disaster response and recovery. MA-TF1 plans evacuation routes, manages search-and-rescue missions, and analyzes aerial images to predict and model disasters and create recovery plans. During this trip, MA-TF1 shares about its work and gives demonstrations of search-and-rescue missions.
- What is MA-TF1 and what do they do?
- What is their role in FEMA and organizational structure?
- How to they prepare?
- What tools do they use?
- What challenges do they face?
- What opportunities are there to use sensing and data?
Draper Laboratory
Engineers at Draper Laboratory worked hard to design technology for the Apollo moon progam. For the last 50 years, they have expanded to work on drone imaging for crisis response while still planning future space missions. As part of this trip, students will learn about the Apollo and Hack the Moon initiatives of the Draper Laboratory. In addition, the students will be able to fly a full size lunar landing simulator designed by Draper Laboratory.
- What was Draper’s role in the Apollo moon program?
- What is Draper doing now for manned space flight?
- Fly the full size lunar landing simulator.


Lorem ipsum dolor sit amet, consectetur adipiscing elit.
| Maintenance Requirement | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Symbol | Security Type | Qty # | Price $ | Value $ | Marginable? | Strategy | % | $ | Actions | |
| Total Margin Requirement | {{visibleRequirementsTotal() | number: 2}} | |||||||||
|
Real Time Quotes *mutual fund quotes as of previous day
|
||||||||||
| {{symbolFilter}} | {{position._id}} | {{position.lots[0].lotType}} | {{position.quantity}} | {{position.lastTrade}} | {{position.value}} | No | {{position.lots[0].strategy}} | {{[20,25][$index%2]}} | {{requirements[position._id] | number:2}} |
|
Whenever your Margin Equity falls below the $2,000 minimum equity required in a margin accountm your available Purchasing Power for Marginable Securities and Non-Marginable Securities/Options will be limited to your net cash.
Please note that E*TRADE Securities reserves the right to increase the marign requirement at any moment without prior notice.
Long options are not marginable and do not have a margin loan value and as such they do not contribute to margin equity or to the total margin requirement. However short options - even though non-marginable - do have a margin requirement.


..
⇤
<<<<<
<<<<
<<<
<<
<
>
>>
>>>
>>>>
>>>>>
⇥
frame rate (fps):
frame step:
Play
Fullscreen
currently at:
finish at


Combined comparison operator Returns 0 if a equals b, 1 if a is greater than b and -1 if a is less than b.
Used to test equality within a when clause of a case statement. e.g { (1...100) === 51 } returns true
True if the receiver and argument have both the same Data type and equal values. e.g { 1.eql?(1.0) }
x=1
if x > 2
puts "x is greater than 2"
elsif x <= 2 and x!=0
puts "x is 1"
else
puts "I can't guess the number"
end
value = 1
print "value #{value}" if value
x=1
unless x>2
puts "x is less than 2"
else
puts "x is greater than 2"
end
print "If the condition is false then it enters the loop" unless false
$age = 5
case $age
when 0 .. 2
puts "baby"
when 3 .. 6
puts "little child"
when 7 .. 12
puts "child"
when 13 .. 18
puts "youth"
else
puts "adult"
end
Output is "little child"
for i in 0..5
puts "Value of local variable is #{i}"
end
Output
Value of local variable is 0 Value of local variable is 1 Value of local variable is 2 Value of local variable is 3 Value of local variable is 4 Value of local variable is 5
$i = 0
$num = 5
while $i < $num do
puts("Inside the loop i = #{i}" )
$i +=1
end
ary = [1,2,3,4,5]
ary.each do |i|
puts i
end
ary = [1,2,3,4,5]
ary.map do |i|
puts i+1
end
ary = [1,2,3,4,5]
ary.inject do |sum, next|
sum + next
end
or
ary = [1,2,3,4,5]
ary.inject(:+)
ary = [1,2,3,4,5]
ary.select do |i|
puts i.even?
end
Output: [2,4] If we use map Output: [false,true,false,true,false]
def method_name(parameter)
params = parameter
puts "#{params}"
end
method_name("Ruby Method")
Variable Number of Parameters:
def sample (*test)
puts "The number of parameters is #{test.length}"
for i in 0...test.length
puts "The parameters are #{test[i]}"
end
end
sample "Kreeti", "Technologies", "SDF"
sample "Ruby", "Class", "For", "Students"
def test
i = 100
j = 10
k = 0
end
Ruby returns Last value by default. Here k=0
The "return" statement in ruby is used to return one or more values from a Ruby Method.
def test
i = 100
j = 200
k = 300
return i, j, k
end
var = test
print var
Output: 100 200 300
A block is a chunks of code.A block is always invoked from a function with the same name as that of the block.You invoke a block by using the "yield" statement.
def test
yield 5
puts "You are in the method test"
yield 100
end
test {|i| puts "You are in the block #{i}"}
Output:
You are in the block 5 You are in the method test You are in the block 100
BEGIN {
# BEGIN block code
puts "BEGIN code block"
}
END {
# END block code
puts "END code block"
}
# MAIN block code
puts "MAIN code block"
Output:
BEGIN code block MAIN code block END code block
Array in Ruby is a collection of Heterogeneous Element.Ruby arrays can hold objects such as String, Integer, Fixnum, Hash, Symbol, even other Array objects
names = Array.new
Add Element at the end of the Array
array = [1,2,3]
array << 4
Or
array = [1,2,3]
array.push(4)
Add Element at the Beginning of the Array
array = [1,2,3]
array.unshift(4)
Delete Element from the end of the Array
array = [1,2,3]
array.pop
Delete Element from the Beginning of the Array
array = [1,2,3]
array.shift
Gives the Length of the Array
array = [1,2,3]
array.length
Check if the Element Present in an Array
array = [1,2,3]
array.include?(2)
Sorting
array = [1,2,3]
array.sort
A Hash is a collection of key-value pairs.It is similar to an Array, except that indexing is done via arbitrary keys
Example{ "India": "+91" }
hash = Hash.new("country")
puts "#{hash[44]}"
puts "#{hash[11]}"
Default value for the given Hash is "country" for any Key.
Adding and Deleting Element from Hash
hash = { india: 91, UK: 78}
puts "#{hash[:india]} #{hash[:UK]}"
hash[:USA] = 80 #Adding Element into Hash
puts "#{hash[:USA]}"
hash.delete(:UK) #Deleting Element from Hash
Keys and Values
hash = { india: 91, UK: 78}
puts hash.keys
puts hash.values
Loop over Hash
hash = { india: 91, UK: 78}
hash.each {|key,value| puts "#{key} #{value}"}
class Customer
def initialize(id, name) #Default Method
@cust_id=id
@cust_name=name
end
def print
print "Hello #{@cust_name}!"
end
end
cust1 = Customer.new("1", "Farhan") #Creating Object for that class
cust2 = Customer.new("2", "jawed")
cust1.print #Method Calling
The initialize method is a special type of method, which will be executed when the new method of the class is called with parameters.
Ruby provides four types of variables:
class Example
VAR1 = 100
VAR2 = 200
def show
puts "Value of first Constant is #{VAR1}"
puts "Value of second Constant is #{VAR2}"
end
end
# Create Objects
object=Example.new()
object.show
time = Time.new #Creating Time Object
time.now #Gives Current Time
time.strftime("%m-%Y-%d %H:%M:%S") #Change the Format for Date
# Single line comment
=begin
...Multiline Comments
=end
class Mammal
def breathe
puts "inhale and exhale"
end
end
class Cat < Mammal
def speak
puts "Meow"
end
end
rani = Cat.new
rani.breathe
rani.speak
module Moral
VERY_BAD = 0
BAD = 1
def Moral.sin(badness)
# ...
end
end
require 'moral'
wrongdoing = Moral.sin(Moral::VERY_BAD)
module A
def a1
end
def a2
end
end
module B
def b1
end
def b2
end
end
class Sample
include A
include B
def s1
end
end
samp=Sample.new
samp.a1
samp.a2
samp.b1
samp.b2
samp.s1
Public:methods can be called by everyone - no access control is enforced
Protected:methods can be invoked only by objects of the defining class and its subclasses.
Private:methods can be called only in the context of the current object; you cannot invoke another object's private methods.
class Developer
def self.backend
"I am backend developer"
end
def frontend
"I am frontend developer"
end
end
In Ruby everything is an object, including classes. Since Developer is an instance, it is an instance of class Class.
Developer.class # Class
Class.superclass # Module
Module.superclass # Object
Object.superclass # BasicObject
Proc is the ability to take a block of code (code in between do and end), wrap it up in an object (called a proc), store it in a variable or pass it to a method, and run the code in the block whenever you feel like (more than once, if you want)
toast = Proc.new do
puts 'Cheers!'
end
toast.call
toast.call
Lambda is like a function but without a name , in ruby lamdas are also objects.
l = lambda do |string|
if string == "try"
return "There's no such thing"
else
return "Do or do not."
end
end
puts l.call("try")
line1 = "Cats are smarter than dogs";
line2 = "Dogs also like meat";
if ( line1 =~ /Cats(.*)/ )
puts "Line1 contains Cats"
end
if ( line2 =~ /Cats(.*)/ )
puts "Line2 contains Dogs"
end
begin
file = open("/unexistant_file")
if file
puts "File opened successfully"
end
rescue
puts "File opened successfully"
end
begin
file = open("/unexistant_file")
if file
puts "File opened successfully"
end
rescue
fname = "existant_file"
retry
end
begin
raise 'A test exception.'
rescue Exception => e
puts e.message
puts e.backtrace.inspect
end
A test exception.
["main.rb:4"]
begin raise 'A test exception.' rescue Exception => e puts e.message puts e.backtrace.inspect ensure puts "Ensuring execution" end
A test exception. ["main.rb:4"] Ensuring execution


Big Mac Index (Code: ECONOMIST) The Big Mac index was invented by The Economist in 1986 as a lighthearted guide to whether currencies are at their “correct” level. It is based on the theory of purchasing-power parity (PPP).


{% extends "pretixcontrol/auth/base.html" %} {% load i18n %} {% load bootstrap3 %} {% block content %}
{% trans "We just want to make sure it's really you. Please re-enter your password to continue." %}


Intro to HTML/CSS:
Homework Assignment 1
For this week's homework assignment, use your newly aquired skills to create a special fan page for your favorite Animal or Celebrity.
Here is what I would like to see at minimum on each lovely page:
- A heading declaring your favorite Animal or Celebrity.
- A couple paragraphs describing your favorite creature. Remember to use emphasis on key words!
- A list of your favorite things about this Animal or Celebrity.
- An image of said creature. The image should link back to the source (where you found it). This link should be clickable, but the image doesn't need to be clickable.
- A footer at the bottom of the page declaring your copyright on such a wonderful write-up, and make sure you use the copyright symbol!
- Your page should Validate in this at this link: W3 Validator.
(Hey! Hey you! The Class 1 slides can be found here!)


|
{{reservation.reservationStatus.details}}
{{space.venue.venueType}}
• 1 review
from {{createDate(reservation.creationDate)+" - "+((reservation.paymentAmount + reservation.paymentVat)| currency : "$":0)}}
|


◆ Stencil()
template<typename T, unsigned int length, unsigned int offset>
| Stencil< T, length, offset >::Stencil |
( |
T * |
coeff, |
|
|
int |
n, |
|
|
StencilDirection |
pDir |
|
) |
| |
|
inline |
: creates a stencil with given coefficients.
- Parameters
-
| [in] | coeff | coefficients for the stencil. |
| [in] | n | : number of coefficients. |
◆ getOffset()
template<typename T, unsigned int length, unsigned int offset>
| unsigned int Stencil< T, length, offset >::getOffset |
( |
| ) |
const |
|
inline |
returns the offset of the stencil.
◆ getStencilDirection()
template<typename T, unsigned int length, unsigned int offset>
| StencilDirection Stencil< T, length, offset >::getStencilDirection |
( |
| ) |
const |
|
inline |
returns the stencil direction
◆ getStencilLength()
template<typename T, unsigned int length, unsigned int offset>
| unsigned int Stencil< T, length, offset >::getStencilLength |
( |
| ) |
const |
|
inline |
returns the length of the stencil.
The documentation for this struct was generated from the following file:


demo1
Basically the simplest example I could think of that uses actions and stores.
demo2
Add queries and state source. Uses a remote source for initial list only!
demo3
Use action creator to update remote source when adding new users.


Total level :
0
Piece of slime
?
0. x = # of first letter of level type in alphabet
1. get the x'th letter of the level skill type for first 60 levels (wrap around if needed)
2. y = # of appearances of a letter at step 1
3. order letters in ascending y order (ignore 0s)(if equal, alphabetically)
4. z = # of index of letter in array from step 3
5. enter sum of all x*y*z into save code textarea
6. hard reset (if you get it right, you will not lose any progress)
Basic
Achieves
Basic
Options
Items
Grow
Eat
Drink
Think
Learn (-xp think)
Research (-xp obs,per,ins)
Upgrade (5 growing)
Upgrade (10 growing)
Upgrade (15 growing)
Evolve (3 not dying)
Evolve (6 not dying)
Evolve (9 not dying)
Automate (4 thinking)
Automate (8 thinking)
Automate (12 thinking)
Kill
Assimilate (-xp kill)
Accelerate
Increase Efficiency
Generate Random Number
0
Gather
Build (-xp gather)
Autoclick :
answer
Mathematise!
Enchance (1 researching)
Enchance (2 researching)
Enchance (3 researching)
Enchance (4 researching)
Enchance (5 researching)
Acquire Family
Train
Absorb (-xp collect)
Reclaim (-xp absorb)
FAQ:
ANSWER :
well, you dont have a question selected, so no answer
Save
Load
Reset (
100
Levels)
Export
Import
save code
Hard Reset
Enable tooltips
Show raw XP values
Show % XP values
Show XP/sec
Reset xp/sec counter
Enable advanced tooltips
Enable secret tooltips
Mine
Forge (-xp mine)
Craft (-xp forge)
Equip
Equip 2
craft :
nothing
equiped :
nothing
equiped 2 :
nothing
reroll item type (-xp craft)
reroll item rank (-xp craft)
Upg item(-xp forge)
Upg suffix(-xp forge)
Upg prefix(-xp forge)
reroll suffix type (-xp craft)
reroll suffix rank (-xp craft)
reroll prefix type (-xp craft)
reroll prefix rank (-xp craft)
+Star item(-xp itemUp)
+Star suffix(-xp itemUp)
+Star prefix(-xp itemUp)
Item autoclick :


Guild Elections Graphics
Note: All graphics must be viewed in Chrome, with devtools set to 1080p
Side Graph
Full Graph
Candidate/Winner board
Candidate Sidebar
Twitter
Ticker


Plugins are shared object files (.so on *nix and .dll on win) that can be loaded by LibSass on runtime. Currently we only provide a way to load internal/custom functions from plugins. In the future we probably will also add a way to provide custom importers via plugins (needs more refactoring to support multiple importers with some kind of priority system).
#include <cstring>
#include <iostream>
#include <stdint.h>
#include "sass_values.h"
union Sass_Value* ADDCALL call_fn_foo(const union Sass_Value* s_args, void* cookie)
{
// we actually abuse the void* to store an "int"
return sass_make_number((intptr_t)cookie, "px");
}
extern "C" const char* ADDCALL libsass_get_version() {
return libsass_version();
}
extern "C" Sass_C_Function_List ADDCALL libsass_load_functions()
{
// allocate a custom function caller
Sass_C_Function_Callback fn_foo =
sass_make_function("foo()", call_fn_foo, (void*)42);
// create list of all custom functions
Sass_C_Function_List fn_list = sass_make_function_list(1);
// put the only function in this plugin to the list
sass_function_set_list_entry(fn_list, 0, fn_foo);
// return the list
return fn_list;
}
To compile the plugin you need to have LibSass already built as a shared library (to link against it). The commands below expect the shared library in the lib
sub-directory (-Llib
). The plugin and the main LibSass process should "consume" the same shared LibSass library on runtime. It will propably also work if they use different LibSass versions. In this case we check if the major versions are compatible (i.e. 3.1.3 and 3.1.1 would be considered compatible).
g++ -O2 -shared plugin.cpp -o plugin.so -fPIC -Llib -lsass
g++ -O2 -shared plugin.cpp -o plugin.dll -Llib -lsass


Files CCore/inc/sys/SysCon.h CCore/src/sys/SysCon_general.cpp
XCore provides a number of tools to work with console input-output. A Target must implement the primary console class to support console.
/* GetPlanInitNode_...() */ PlanInitNode * GetPlanInitNode_SysCon(); /* consts */ enum ConInputResult { Con_Drop = 0, Con_Echo, Con_NoEcho, Con_EOL }; /* types */ using ConInputFunction = Function<ConInputResult (char)> ; using ConOutputFunction = Function<void (NanoPacket<char> packet)> ; /* functions */ NanoPacket<char> AllocConPacket(MSec timeout); void ConWrite(NanoPacket<char> packet); void EnablePacketCon(); void DisablePacketCon(); void ShowConStat();
GetPlanInitNode_SysCon is a PlanInit node of the primary console object. It is implemented by the Target.
ConInputResult is en enum. It is used to designate a desired action with the input character.
ConInputFunction is a Function. It is used to process an input character.
ConOutputFunction is a Function. It is used to process an output character NanoPacket.
AllocConPacket() allocates a NanoPacket to use it for console output. The argument is the timeout for the operation. If a packet cannot be allocated withing the given timeout the null is returned.
ConWrite() writes the NanoPacket to the console. The null value is allowed.
EnablePacketCon() turns on the packet console mode. You must not use this function directly, it is only for XCore.
DisablePacketCon() turns off the packet console mode. You must not use this function directly, it is only for XCore.
ShowConStat() prints console statistics. This function behavior is defined by the Target, it may do nothing.
/* class OwnConInput */
class OwnConInput : NoCopy
{
AntiSem asem;
public:
OwnConInput(TextLabel name,ConInputFunction input_any);
~OwnConInput();
};
This class is used to install the input processing function. Constructor installs the function and destructor uninstalls it. The argument input_any is some input processing function. It may be called in any context. This function receives an input character and must return a value to indicate a desired response: Con_Drop to inform that character was discarded, Con_Echo to echo the character back, Con_NoEcho to suppress the echo and Con_EOL to echo end-of-line.
/* class HookConInput */
class HookConInput : NoCopy
{
ConInputFunction input_any;
AntiSem *asem;
public:
HookConInput();
~HookConInput();
ConInputResult operator () (char ch) { return input_any(ch); }
};
This class is used to temporary hook the active console input function. It can be used to send an input character.
/* class RedirectCon */
class RedirectCon : NoCopy
{
AntiSem asem;
public:
RedirectCon(TextLabel name,ConOutputFunction output);
~RedirectCon();
};
This class is used to install the console output processing function. Constructor installs the function and destructor uninstalls it. Being installed this function receives the output packets, instead a default console processing.
/* class HookConOutput */
class HookConOutput : NoCopy
{
ConOutputFunction output;
AntiSem *asem;
public:
HookConOutput();
~HookConOutput();
void operator () (NanoPacket<char> packet) { output(packet); }
};
This class is used to temporary hook the console output and send the given packet(s) to the console.
/* class ConBase */
class ConBase : public Funchor_nocopy
{
....
private:
// default input/output
virtual void attachDefaultInput(ConInputFunction input_any)=0;
virtual void detachDefaultInput()=0;
virtual void defaultOutput(NanoPacket<char> packet)=0;
public:
// constructors
static constexpr ulen MemLen(ulen max_data_len,ulen count) { return NanoPacket<char>::AllocLen(max_data_len)*count; }
ConBase(TextLabel name,void *mem,ulen max_data_len,ulen count);
~ConBase();
// methods
unsigned getNoPacketCount();
NanoPacket<char> alloc(MSec timeout);
virtual void enablePacket()=0;
virtual void disablePacket()=0;
virtual void showStat()=0;
// global object, defined in target
static ConBase * GetObject();
};
This is a base class for the Target-implemented primary console class. Target must define a drived class from ConBase and provide access to the global object of such class via the ConBase::GetObject() method. Here is a pattern how to do this. A derived class must implement the following pure virtual methods:
attachDefaultInput() attaches the given function to the default console input. Each time the user hit a key the attached function is called with the appropriate character as the argument. The return value is used to do some response.
detachDefaultInput() detaches the default console input from the input processing function.
defaultOutput() is the default console output. The argument may be null. This function send the packet payload to the console. It may do it immediately or put the packet into some packet queue for a further processing.
enablePacket() enables the packet mode of operation. This method is called by XCore after the core is up. After this point the console implementation may use the full power of XCore. Before this point only polling methods can be used to operate the console.
disablePacket() disables the packet mode of operation. This method is called by XCore before the shutdown the core. After this point the console implementation may not use tasks, interrupts and other core stuff to do the job.
showStat() prints the statistic counters. The meaning of the printed information is implementation-defined. This method may do nothing.
Other methods of the ConBase are:
Constructor takes the following arguments: name is the internal sync object name. mem is the address of a block of memory, must be aligned. This block is used to construct the internal packet pool. The block length can be calculated using the method MemLen(). max_data_len is the maximum data length of a nano-packet. count is the number of nano-packets in the packet pool.
MemLen() calculates the required length of the memory block.
getNoPacketCount() returns the number of no-packet events. No-packet event happens when the alloc() method fails.
alloc() allocates the nano-packet from the internal packet pool.


@(city: City,
stateProvince: StateProvince,
country: Country,
address: Address,
holiday: Holiday,
inventoryCategory: InventoryCategory,
item: Item,
store: Store,
location: StoreLocation,
locationHoliday: LocationHoliday,
locationItem: LocationItem,
distance: StoreLocationDistance,
user: models.User
)
Created
City: @city.id @city.name
Created
StateProvince: @stateProvince.id @stateProvince.name
Created
Country: @country.id @country.name
Created
Address: @address.id @address.address
City: @address.city.id
Postal: @address.postalCode
StateProvince: @address.stateProvince.id
Country: @address.country.id
Created
Holiday: @holiday.id @holiday.name
DayOfMonth: @holiday.dayOfMonth
DayOfWeek: @holiday.dayOfWeek
MonthOfYear: @holiday.monthOfYear
IterationOfWeek: @holiday.iterationOfWeek
Created
InventoryCategory: @inventoryCategory.id @inventoryCategory.name
Created
Item: @item.id @item.name
InventoryCategory: @item.inventoryCategory.id
CreationDate: @item.creationDate
ModifyDate: @item.modifyDate
Created
Store: @store.id @store.name
InventoryCategory: @store.inventoryCategory.id
Active: @store.active
CreationDate: @item.creationDate
ModifyDate: @item.modifyDate
Created
Location: @location.id
Store: @location.store.id
Address: @location.address.id
Active: @location.active
SundayBeginTime: @location.sundayBeginTime
SundayEndTime: @location.sundayEndTime
CreationDate: @location.creationDate
ModifyDate: @location.modifyDate
Created
LocationHoliday.Location: @locationHoliday.location.id
LocationHoliday.Holiday: @locationHoliday.holiday.id
Created
LocationItem.Location: @locationItem.storeLocation.id
LocationItem.Item: @locationItem.item.id
LocationItem.Price: @locationItem.price
LocationItem.Stock: @locationItem.stockCount
Created
Distance.StoreLocationA: @distance.storeLocationA.id
Distance.StoreLocationB: @distance.storeLocationB.id
Distance: @distance.distanceM
Created
User: @user.id
Email: @user.email
HashedPassword: @user.hashedPassword
Address: @user.address.id
AvoidList: @user.storeIdAvoidList
Verified: @user.verified
CreationDate: @item.creationDate
ModifyDate: @item.modifyDate


Chapter 3 Sampling and Distributions
3.1 Seminar
In today’s seminar, we work with missing data. We will turn a numerical variable into a nominal data type. We then turn to distributions.
rm(list=ls())
setwd("~/PUBLG100")
3.1.1 Loading Dataset in CSV Format
In this seminar, we load a file in comma separated format (.csv
). The load()
function from last week works only for the native R file format. To load our csv-file, we use the read.csv()
function.
Our data comes from the Quality of Government Institute. Let’s have a look at the codebook:
Download the data here
| Variable | Description |
|---|---|
| h_j | 1 if Free Judiciary |
| wdi_gdpc | Per capita wealth in US dollars |
| undp_hdi | Human development index (higher values = higher quality of life) |
| wbgi_cce | Control of corruption index (higher values = more control of corruption) |
| wbgi_pse | Political stability index (higher values = more stable) |
| former_col | 1 = country was a colony once |
| lp_lat_abst | Latitude of country’s captial divided by 90 |
world.data <- read.csv("QoG2012.csv")
Go ahead and (1) check the dimensions of world.data
, (2) the names of the variables of the dataset, (3) print the first six rows of the dataset. (
# the dimensions: rows (observations) and columns (variables)
dim(world.data)
[1] 194 7
# the variable names
names(world.data)
[1] "h_j" "wdi_gdpc" "undp_hdi" "wbgi_cce" "wbgi_pse"
[6] "former_col" "lp_lat_abst"
# top 6 rows of the data
head(world.data)
h_j wdi_gdpc undp_hdi wbgi_cce wbgi_pse former_col lp_lat_abst
1 0 628.4074 NA -1.5453584 -1.9343837 0 0.3666667
2 0 4954.1982 0.781 -0.8538115 -0.6026081 0 0.4555556
3 0 6349.7207 0.704 -0.7301510 -1.7336243 1 0.3111111
4 NA NA NA 1.3267342 1.1980436 0 0.4700000
5 0 2856.7517 0.381 -1.2065741 -1.4150945 1 0.1366667
6 NA 13981.9795 0.800 0.8624368 0.7084046 1 0.1892222
3.1.2 Missing Values
Let’s inspect the variable h_j. It is categorical, where 1 indicates that a country has a free judiciary. We use the table()
function to find the frequency in each category.
table(world.data$h_j)
0 1
105 64
We now know that 64 countries have a free judiciary and 105 countries do not.
Conceptually the variable is nominal. To see how the variable is stored in R, we can use the str()
function.
str(world.data$h_j)
int [1:194] 0 0 0 NA 0 NA 0 0 1 1 ...
The function returns ‘int’ which abbreviates ‘integer’, i.e., a numeric type. The function also shows us the first 10 realisations of the variable. We se zeroes and ones which are the two categories. We also see NA’s which abbreviates not available. NAs are missing values. Values can be missing for different reasons. For instance, a coder may have forgotten to code whether a country had been colonised at some point in its history or the country may be new and the categories, therefore, don’t apply. It is important for us that we cannot calculate with NAs.
There are different ways of dealing with NAs. We will always delete missing values. Our dataset must maintain its rectangular structure. Hence, when we delete a missing value from one variable, we delete it for the entire row of the dataset. Consider the following example.
| Row | Variable1 | Variable2 | Variable3 | Variable4 |
|---|---|---|---|---|
| 1 | 15 | 22 | 100 | 65 |
| 2 | NA | 17 | 26 | 75 |
| 3 | 27 | NA | 58 | 88 |
| 4 | NA | NA | 4 | NA |
| 5 | 75 | 45 | 71 | 18 |
| 6 | 18 | 16 | 99 | 91 |
If we delete missing values from Variable1, our dataset will look like this:
| Row | Variable1 | Variable2 | Variable3 | Variable4 |
|---|---|---|---|---|
| 1 | 15 | 22 | 100 | 65 |
| 3 | 27 | NA | 58 | 88 |
| 5 | 75 | 45 | 71 | 18 |
| 6 | 18 | 16 | 99 | 91 |
The new dataset is smaller than the original one. Rows 2 and 4 have been deleted. When we drop missing values from one variable in our dataset, we lose information on other variables as well. Therefore, you only want to drop missing values on variables that you are interested in. Let’s drop the missing values on our variable h_j. We do this in several steps.
First, we introduce the is.na()
function. We supply a vector to the function and it checks for every element, whether it is missing or not. R returns true or false.  Our dataset has 194 rows. Check your global environment to confirm this or use the nrow()
function. That means, if we drop all missing values from h_j, the our dataset world.data will lose 25 rows.
Before we drop the missings, we introduce the which()
function. It returns the row indexes (the rows in the dataset) where some condition is true. So if we use which()
and is.na()
, we get the row numbers in the world.data dataset where values are missing on h_j.
which( is.na( world.data$h_j ) )
[1] 4 6 11 22 23 67 100 108 112 120 123 129 130 131 141 146 147
[18] 148 149 150 154 165 173 179 191
We said that our dataset will lose 25 rows. Let’s use the length()
function to confirm that this is the case.
length( which( is.na( world.data$h_j ) ) )
[1] 25
We have, indeed, identified 25 rows that we want to delete from our dataset.
The function is.na()
returns “TRUE” if an observation is missing. We can use the !
operator so that the function returns “TRUE” if an observation is not missing. The !
means not.
Let’s confirm this:
# true = observation is missing
table( is.na(world.data$h_j) )
FALSE TRUE
169 25
# true = observations is NOT missing
table( !is.na(world.data$h_j) )
FALSE TRUE
25 169
We now drop the rows with missings on h_j by overwriting our original dataset with a new dataset that is a copy of the old without the missings. We use the square brackets to subset our dataset.
world.data <- world.data[ !is.na( world.data$h_j ) , ]
Confirm that our new world.data dataset has only 169 remaining.
“But what if we want our original dataset back,” you ask. We have overwritten the original. It is no longer in our work environment. We have to reload the data set from the disk.
Let’s do that:
world.data <- read.csv("QoG2012.csv")
Right, we now have all observations back. This is important. Let’s say we need to drop missings on a variable. We do is. If a later analysis does not involve that variable, we want all the observations back. Otherwise we would have thrown away valuable information. The smaller our dataset, the less information it contains.  We have to options. Either we reload the original dataset or we create a copy of the original with a different name that we could use later on. Let’s do this.
full.dataset <- world.data
Let’s drop missings on h_j in the world.data dataset.
world.data <- world.data[ !is.na( world.data$h_j ) , ]
Now, if we want the full dataset back, we can overwrite world.data with full.dataset. The code would be the following:
world.data <- full.dataset
If you ran this line. Delete missings from h_j in world.data again.
This data manipulation may seem boring but it is really important that you know how to do this. Most of the work in data science is not running statistical models but data manipulation. Most of the dataset you will work with in your jobs, as a research assistant or on you dissertation won’t be cleaned for you. You will have to do that work. It takes time and is sometimes frustrating. That’s unfortunately the same for all of us.
3.1.3 Factor Variables
Categorical/nominal variables can be stored as numeric variables in R. However, the values do not imply an ordering or relative importance. We often store nominal variables as factor variables in R. A factor variable is a nominal data type. The advantage of turning a variable into a factor type is that we can assign labels to the categories and that R will not calculate with the values assigned to the categories.
The function factor()
lets us turn the variable into a nominal data type. The first argument is the variable itself. The second are the category labels and the third are the levels associated with the categories. To know how those correspond, we have to scroll up and look at the codebook.
We also overwrite the original numeric variable h_j
with our nominal copy indicated by the assignment arrow <-
.
# factorize judiciary variable
world.data$h_j <- factor(world.data$h_j, labels = c("controlled", "free"), levels = c(0,1))
# frequency table of judiciary variable
table(world.data$h_j)
controlled free
105 64
3.1.4 Renaming Variables
We want to rename h_j into something more meaningful. The new name should be free.judiciary. We can use the names()
function to get a vector of variable names.
names(world.data)
[1] "h_j" "wdi_gdpc" "undp_hdi" "wbgi_cce" "wbgi_pse"
[6] "former_col" "lp_lat_abst"
We want to change the first element of that vector. We know that we can use square brackets to subset vectors. Let’s display the first element of the vector of variable names only.
names(world.data)[1]
[1] "h_j"
Now we simply change the name using the assignment arrow <-
and our new variable names goes in quotes.
names(world.data)[1] <- "free.judiciary"
We now check the variable names to confirm that we successfully changed the name.
names(world.data)
[1] "free.judiciary" "wdi_gdpc" "undp_hdi" "wbgi_cce"
[5] "wbgi_pse" "former_col" "lp_lat_abst"
3.1.5 Distributions
A marginal distribution is the distribution of a variable by itself. Let’s look at the summary statistics of the United Nations Development Index undp_hdi using the summary()
function.
summary(world.data$undp_hdi)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
0.2730 0.5272 0.7455 0.6946 0.8350 0.9560 9
How nice. This returns summary stats. We see the range(minimum to maximum). We see the interquartile range (1st quartile to 3rd quartile). We also see mean and median. Finally, we see the number of NAs.
Oh we forgot. We said, when we drop missing on variable, we may lose information when we work on a new variable. Let’s restore our dataset world.data to its original state.
world.data <- full.dataset
Now, we check the summary stats again.
summary(world.data$undp_hdi)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
0.2730 0.5390 0.7510 0.6982 0.8335 0.9560 19
In the smaller dataset (where we had dropped missings from h_j), we had 9 missings. Now, we have 19 missings. The difference is 10. Our smaller dataset had 25 rows less than the bigger dataset. Therefore, we would have thrown away 6 good observations. That is not nothing. It’s 3 percent of our data.
Let’s drop missing on undp_hdi and rename it to hdi.
world.data <- world.data[ which( !is.na(world.data$undp_hdi) ) , ]
Let’s change the name.
names(world.data)[3] <- "hdi"
names(world.data)
[1] "h_j" "wdi_gdpc" "hdi" "wbgi_cce" "wbgi_pse"
[6] "former_col" "lp_lat_abst"
Let’s take the mean of hdi.
hdi.mean <- mean( world.data$hdi )
hdi.mean
[1] 0.69824
The mean of hdi is the mean in the sample. We would like the mean of hdi in the population. Remember that sampling variability causes us to estimate a different mean every time we take a new sample.
We learned that the means follow a distribution if we take the mean repeatedly in different samples. In expectation the population mean is the sample mean. How certain are we about the mean. Well, we need to know how the sampling distribution looks like.
To find out we estimate the standard error of the mean. The standard error is the standard deviation of the sampling distribution. The name is not standard deviation but standard error to indicate that we are talking about the distribution of a statistic (the mean) and not a random variable.
The formula for the standard error of the mean is:
\[ s_{\bar{x}} = \frac{ \sigma }{ \sqrt(n) } \]
The \(\sigma\) is the real population standard deviation of the random variable hdi which is unknown to us. We replace the population standard deviation with our sample estimate of it.
\[ s_{\bar{x}} = \frac{ s }{ \sqrt(n) } \]
The standard error of the mean estimate is then
se.hdi <- sd(world.data$hdi) / sqrt( nrow(world.data) )
se.hdi
[1] 0.01362411
Okay, so the mean is 0.69824 and the standard error of the mean is 0.0136241.
We know that the sampling distribution is approximately normal. That means that 95 percent of all observations are within 1.96 standard deviations (standard errors) of the mean.
\[ \bar{x} \pm 1.96 \times s_{\bar{x}} \]
So what is that in our case?
lower.bound <- hdi.mean - 1.96 * se.hdi
lower.bound
[1] 0.6715367
upper.bound <- hdi.mean + 1.96 * se.hdi
upper.bound
[1] 0.7249432
That now means the following. Were we to take samples of hdi again and again and again, then 95 percent of the time, the mean would be in the range from 0.6715367 to 0.7249432.
What is a probability? “The long-run relative frequency,” you all scream in unison. Given that definition, you can say: “With 95 percent probability, the mean is in the range 0.6715367 to 0.7249432.”
Sometimes people like to former way of phrasing this relationship better than the latter. In this case you tell them: “a probability is the long-run relative frequency of an outcome.”
Now, let’s visualise our sampling distribution. We haven’t actually taken many samples, so how could we visualise the sampling distribution? Well, we know the sampling distribution looks normal. We know that the mean is our mean estimate in the sample. And finally, we know that the standard deviation is the standard error of the mean.
We can randomly draw values from a normal distribution with mean 0.69824 and standard deviation 0.0136241. We do this with the rnorm()
function. It’s first argument is the number of values to draw at random from the normal distribution. The second argument is the mean and the third is the standard deviation.
Recall, that a normal distribution has two parameters that characterise it completely: the mean and the standard deviation. So with those two we can draw the distribution.
draw.of.hdi.means <- rnorm( 1000, mean = hdi.mean, sd = se.hdi )
We have just drawn 1000 mean values at random from the distribution that looks like our sampling distribution.
plot(
density( draw.of.hdi.means ),
bty = "n",
main = "Sampling Distribution of HDI means"
)
Beautiful Let’s add the 95 percent confidence interval around our mean estimate. The confidence interval quantifies our uncertainty. We said 95 percent of the time the mean would be in the interval from 0.6715367 to 0.7249432."
abline( v = lower.bound, lty = "dashed")
abline( v = upper.bound, lty = "dashed")
You do not need to run the plot function again. You can just add to the plot. Check the help function of abline()
to see what its arguments refer to.
Fantastic! You can see that values below and above our confidence interval are quite unlikely. Those values in the tails would not occur often.
Not often, but not impossible.
Let’s say that we wish know the probability that we take a sample and our estimate of the mean is greater or equal 0.74. We would need to integrate over the distribution from \(-\inf\) to 0.74. Fortunately R has a function that does that for us. We need the pnorm()
. It calculates the probability of a value that is smaller or equal to the value we specify. In other words, it gives us the probability from the cumulative normal.
As the first argument pnrom()
wants the value; 0.74 in our case. The second and third arguments are the mean and the standard deviation that characterise the normal distribution.
pnorm(0.74, mean = hdi.mean, sd = se.hdi)
[1] 0.9989122
What!? The probability to draw a mean 0.74 is 99.9 percent!? That cannot be the value is so far in the tail of the distribution.
Well, this is the cumulative probability of drawing a value that is equal to or smaller than 0.74. All probabilities sum to 1. So if we want to know the probability of drawing a value that is greater than 0.74, we subtract the probability, we just calculated, from 1.
1 - pnorm(0.74, mean = hdi.mean, sd = se.hdi)
[1] 0.001087785
Right, so the probability of getting a mean of hdi in a sample is 0.1 percent.
3.1.6 Conditional Distributions
Let’s look at hdi by former_col. The variable former_col is 1 if a country is a former colony and 0 otherwise. The variable hdi is continuous.
Before we start, we plot the marginal pdf of hdi.
plot(
density(world.data$hdi),
bty = "n",
main = "Marginal Distribution of HDI"
)
The distribution is bimodal. There is one peak at the higher development end and one peak at the lower development end. Could it be that these two peaks are conditional on whether a country was colonised or not? Let’s plot the conditional distributions.
plot(
density(world.data$hdi[world.data$former_col == 0]),
bty = "n",
main = "Conditional Distributions of HDI"
)
lines(density(world.data$hdi), lty = "dashed")
legend("topleft", c("not colonised", "colonised"), lty = c("solid", "dashed"))
It’s not quite like we expected. The distribution of human development of not colonised countries is shifted to right of the distribution of colonised countries and it is clearly narrower. Interestingly though, the distribution of former colonies has a greater variance. Evidently, some former colonies are doing very well and some are doing very poorly. It seems like knowing whether a country was colonised or not tells us something about its likely development but not enough. We cannot, e.g., say colonisation is the reason why countries do poorly. Probably, there are differences among types of colonial institutions that were set up by the colonisers.
Let’s move on and examine the probability that a country has .8 or more on hdi given that it is a former colony.
We can get the cumulative probability with the ecdf()
function. It returns the empirical cumulative distribution, i.e., the cumulative distribution of our data. We know that we can subset using square brackets. That’s all we need.
cumulative.p <- ecdf(world.data$hdi[ world.data$former_col == 1 ])
1 - cumulative.p(.8)
[1] 0.1666667
Okay, the probability that a former colony has .8 or larger on the hdi is 16.6 percent. Go ahead figure out the probability for not former colonies on your own.
3.1.7 Exercises
- Create a script and call it assignment03. Save your script.
- Load the world.data dataset from your disk.
- Rename the variable wdi_gdpc into gdpc.
- Delete missing values from gdpc.
- Inspect former_col and delete missing values from it.
- Turn former_col into a factor variable with the appropriate lables.
- Compute the probability that a county is richer than 55 000 per capita.
- Compute the same probability given that a country is a former colony.
- Compute the conditional expectation of wealth (gdp per capita) for a former colony.
- Compute the conditional expectation of wealth for country that is not a former colony.
- What is the probability that a former colony is 2 standard deviations below the mean wealth level?
- What is the corresponding probability for a country that has not been colonised?
- Compute the probability that a former colony is the wealth interval from 25 000 to 31 000.
- Copmute the probability that a not former colony is in the top 2.5 percent of the wealth distribution.
- At which wealth level is a country in the bottom 2.5 percent of the wealth distribution?
3.2 Solutions
<IP_ADDRESS> Exercise 2
Load the world.data dataset from your disk.
world.data <- read.csv("QoG2012.csv")
<IP_ADDRESS> Exercise 3
Rename the variable wdi_gdpc into gdpc.
# to see all variable names
names(world.data)
[1] "h_j" "wdi_gdpc" "undp_hdi" "wbgi_cce" "wbgi_pse"
[6] "former_col" "lp_lat_abst"
# wdi_gdpc is the second variable. We rename the second element of the names vector
names(world.data)[2] <- "gdpc"
<IP_ADDRESS> Exercise 4
Delete missing values from gdpc.
# to check whether there are any missings or not
summary(world.data$gdpc)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
226.2 1768.0 5326.1 10184.1 12976.5 63686.7 16
# we have missings, let's make a copy of world.data before deleting
full.world.data <- world.data
# now let's delete the 16 rows with missings on gdpc
world.data <- world.data[ which(!is.na(world.data$gdpc)) , ]
<IP_ADDRESS> Exercise 5
Inspect former_col and delete missing values from it.
# we instpect the variable and check for missings
summary(world.data$former_col)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.0000 0.0000 1.0000 0.6348 1.0000 1.0000
# there are none, so there is nothing to delete
<IP_ADDRESS> Exercise 6
Turn former_col into a factor variable with the appropriate labels.
# we check the current storage type
str(world.data$former_col)
int [1:178] 0 0 1 1 1 0 1 0 0 1 ...
# it's numeric, so we change it to nominal
world.data$former_col <- factor(world.data$former_col,
levels = c(0,1),
labels = c("not colonised", "former colony" ))
# let's check the results
table(world.data$former_col)
not colonised former colony
65 113
Wait a minute. Is there something wrong here? The mean of the variable is 0.63. That means 63 percent of all countries are former colonies. Let’s check whether we got that.
table(world.data$former_col) / sum(table(world.data$former_col))
not colonised former colony
0.3651685 0.6348315
Ah, that’s correct. It’s good to make sure, we did not mess up the re-coding.
<IP_ADDRESS> Exercise 8.
Compute the probability that a county is richer than 55 000 per capita.
Wealth is never normally distributed. We don’t even need to check. We use the ecdf()
function for the empirical cumulative distribution.
The probability that a country is richer than 55 000 is 1 minus the cumulative probability of 55000.
# get the empirical cumulative distribution of wealth
c.dist.of.wealth <- ecdf(world.data$gdpc)
# the prob
1 - c.dist.of.wealth(55000)
[1] 0.01123596
The probability is 0.01. Put differently 1 percent of countries is richer than 55 000 US dollars per capita.
<IP_ADDRESS> Exercise 8
Compute the same probability given that a country is a former colony.
The approach is similar but we want the conditional cumulative distribution, where the condition is that a country is a former colony.
# conditional cumulative distribution
c.dist.of.wealth2 <- ecdf(world.data$gdpc[world.data$former_col == "former colony"])
1 - c.dist.of.wealth2(55000)
[1] 0.008849558
The probability is 0.009. The probability that a former colony is that rich is slightly lower than that any country is.
<IP_ADDRESS> Exercise 9
Compute the conditional expectation of wealth (gdp per capita) for a former colony.
The conditional expectation is the mean of wealth among all former colonies. We know how to do this from last week. We take the mean of wealth and subset using square brackets.
mean( world.data$gdpc[world.data$former_col == "former colony"] )
[1] 6599.714
The conditional expectation of wealth for former colonies is 6600 US dollars per capita.
<IP_ADDRESS> Exercise 10
Compute the conditional expectation of wealth for a country that is not a former colony.
mean( world.data$gdpc[world.data$former_col == "not colonised"] )
[1] 16415.39
The corresponding expectation for countries that have not been a colony is 16415 US dollars.
<IP_ADDRESS> Exercise 11
What is the probability that a former colony is 2 standard deviations below the mean wealth level?
We first find out what a standard deviation of wealth is in the conditional distribution of wealth for former colonies.
# standard deviation of wealth for former colonies
sd.wealth.cols <- sd(world.data$gdpc[world.data$former_col == "former colony"])
sd.wealth.cols
[1] 9783.914
Interesting, the standard deviation is greater than the mean. Apparently, former colonies are very different. Some do poorly and some extremely well.
Doesn’t this pose a problem for the task though? How can a country’s wealth be 2 standard deviations below the mean if the mean is smaller than the standard deviation?
Well, that’s not possible. Negative wealth does not exist. Consequently, that probability is 0.
<IP_ADDRESS> Exercise 12
We get the standard deviation of the wealth distribution of countries that have not been colonised.
# standard deviation of wealth for not former colonies
sd.wealth.not.cols <- sd(world.data$gdpc[world.data$former_col == "not colonised"])
The result is similar to exercise 11. The mean is 16 415 and the standard deviation is 13 766. 2 standard deviations below the mean would be negative. The probability of that is 0.
<IP_ADDRESS> Exercise 13
Compute the probability that a former colony is the wealth interval from 25 000 to 31 000.
We compute the cumulative probabilities that a country has 31 000 and 25 000 and then take the difference.
# cumulative probability of 31 000
p1 <- c.dist.of.wealth2(31000)
# cumulative probability of 25 000
p2 <- c.dist.of.wealth2(25000)
# probability of country in the interval
p1 - p2
[1] 0
The answer is again: 0. Let’s have a look at the distribution to see what’s going on there.
plot(density( world.data$gdpc[world.data$former_col == "former colony"] ))
It seems like there are no countries in that interval. Let’s check:
# let's look at summary stats first
summary(world.data$gdpc[ world.data$former_col == "former colony" ])
Min. 1st Qu. Median Mean 3rd Qu. Max.
226.2 1263.7 3157.5 6599.7 7938.3 62005.6
# so there is at least 1 country that is richer. Let's look at all
# countries that are former colonies and also richer than 25 000
world.data[which( world.data$gdpc > 25000 & world.data$former_col == "former colony"), ]
h_j gdpc undp_hdi wbgi_cce wbgi_pse former_col lp_lat_abst
24 0 48585.73 0.867 0.3304393 0.99980551 former colony 0.0477778
92 1 33079.87 0.838 1.0835209 -0.02684768 former colony 0.3255555
142 0 62005.56 0.833 0.9734111 0.76874268 former colony 0.2811111
156 1 36732.23 0.902 2.3715818 1.34370053 former colony 0.0135556
175 0 42004.04 0.824 1.0449655 0.80680293 former colony 0.2666667
That’s it. There are exactly zero countries in that interval.
Sub-setting with 2 conditions in square brackets may be new to you. We did that with &
operator which means “and”.
<IP_ADDRESS> Exercise 14
Compute the probability that a not former colony is in the top 2.5 percent of the wealth distribution.
We find the value first. The top 2.5 percent are in the 97.5 percentile of the distribution. We use the quantile()
function to get the value of the 97.5th percentile.
rich.countries <- quantile(world.data$gdpc[ world.data$former_col == "not colonised"], .975)
rich.countries
97.5%
41447.31
The value that puts a country in the top 2.5 percent of the conditional wealth distribution (where the condition is that a country was not colonised) is 41447 US dollars.
We now take the empirical cumulative distribution and get the probability of being richer.
# conditional cumulative distribution
c.dist.of.wealth3 <- ecdf(world.data$gdpc[world.data$former_col == "not colonised"])
# conditional probability of being in the top 2.5 percent of not colonised countries
1 - c.dist.of.wealth3(rich.countries)
[1] 0.03076923
The probability is 0.03.
<IP_ADDRESS> Exercise 15
At which wealth level is a country in the bottom 2.5 percent of the wealth distribution?
The question asks for the wealth level that puts a country in the bottom 2.5 percent independent of whether it was a colony or not. The quantile()
function returns that value.
quantile( world.data$gdpc, .025 )
2.5%
526.8697
At 527 US dollars per capita, a country is in the bottom 2.5 percent of the wealth distribution.


What I Have Learned Today - #000
99 Things You Can Do To Become A Better Software Tester
Back in August 2018 a question was asked on the Ministry of Testing website on 99 Things You Can Do To Become A Better Software Tester. I contributed to that as follows:
Never stop learning. At the end of every day I ask myself the question: “what have I learned today?”
No matter how small, every day there is something you’ve come across that you didn’t know the day before.
All these little (and big things for that matter) “learnings” will make you a better tester.
Definitely give that link above a read. There is a lot to be learned from that thread :-).
More on learning
Learning doesn’t have to be explicit and by doing the mental exercise of asking myself what I have learned today I “force” myself to also recognise the implicit learning.
By far I’m not an expert in this field and I speak solely from my own experience. However, I do read the occasional thing, and this article links very well with what I’m talking about here.
As well as reading, I’m an avid podcast and audiobook listener. In the latest episode of The Guilty Tester Podcast (at time of writing), Dave Duke (@theguiltytester) talks about his recent attendance of TestBash Manchester 2019. He had a stand at the UnExpo where he collected things what people felt guilty about in testing. It touched on learning and here is some of the advice from this podcast, but make sure to subscribe and listen to the whole episode as well:
Don’t feel guilty about how you want to learn.
Just learn something, even it might turn out to be the wrong thing. This is by far always better than learning nothing at all.
The challenge
I attended the same conference as Dave Duke. One of the presenters was @lisihocke. She sets herself a personal challenge every year and at the conference she talked about her challenge to become more code confident.
Tweet of lisihocke/1179783401139818498
Inspired by Lisi and her great talk I wanted to set my own challenge.
As said, asking myself the question (as per the title) has been mainly a mental exercise, and so far that has been perfectly fine. But now I want to get it out of my head.
As a challenge I will start to share the outcome of my daily mental exercise of asking what I have learned today with the whole wide world. Starting tomorrow (05–11–2019), I will post on Twitter a link to this Medium blog with what I have learned. Initially I will do this daily for a month and then take stock. I will see if I stick with the format, keep up with the frequency… or maybe stop altogether :-(.
Items to be expect can be of all sorts. Work related, testing, personal, hobby, culinary, politics, and who knows what. So as you can see, much more than testing alone.
For now I will use Medium as a blogging platform. I’ve got plans for something different, but that will be a whole different challenge. More on that in the future (thanks Lisi!).
Look out for the hashtag #WhatIHaveLearnedToday
This post is part of a series of articles about “What I Have Learned Today”; acknowledging every day the thing I have learned. Feel free to read the other posts. all opinions in this article are my own and not necessarily represent the views of my employer.


| {{ trashInspection.id }} |
|
|
{{ trashInspection.eakCode }} | {{ trashInspection.installationName }} | {{ trashInspection.segment }} |
|
{{ trashInspection.producer }} | {{ trashInspection.registrationNumber }} | {{ trashInspection.transporter }} | {{ trashInspection.trashFraction }} | {{ trashInspection.weighingNumber }} |
|
|
{{ trashInspection.comment }} |
|
|
|


EL woman in court for importing fake luxury goods
by Algoa FMA woman from East London is expected to appear in the Port Elizabeth Commercial Crimes Court on Friday for allegedly importing fake branded goods valued at more than R48 million.
She faces 42 983 counts of contravention of the Counterfeit Goods Act.
The state alleges that the value of the counterfeit goods that were confiscated amounted to R 48 721 600.
According to the charge sheet, the company Fong Ming Trading, of which the accused is the sole director, had imported the counterfeit goods through Port Elizabeth in June this year.
These included thousands of Bic pens, Gucci, Ferrari and Puma branded watches as well as Dior and Gucci sunglasses.
The woman faces possible fines not exceeding R5000 in respect of each article or item of counterfeit goods to which the offence relates or with imprisonment not exceeding three years, or to both a fine and imprisonment.


Mathoho & Two Others Suspended - Gordinho Set For Lifeline?
by Soccer LadumaKaizer Chiefs will be without three of their usual starting XI due to suspensions for their Telkom Knockout semi-final clash against Maritzbug United. One of the options to start include the little-used Lorenzo Gordinho.
After the hard-fought Soweto Derby win against Orlando Pirates, three Kaizer Chiefs players will miss their next game after Erick Mathoho was red carded, Daniel Akpeyi accrued his fourth yellow card of the season for time-wasting, and Willard Katsande was cautioned for a late challenge on Fortune Makaringe.
Read: Ntseki’s Concern – ‘Obvious Choices’ In Bafana Squad
Mathoho’s Replacement Options Limited
At centre back, Middendorp’s options to replace Erick Mathoho are limited by Siyabonga Ngezana’s involvement in Egypt in the under 23 Africa Cup of Nations. With South Africa having a semi-final and either final or third-place play-off still to come, Ngezana will miss the crucial Telkom Knockout match for his club.
That would leave three clear options to step into centre back. Lorenzo Gordinho could get what would be just his second start of the season, or Kgotso Moleko could be another solution in that role having been converted to centre back last season. Gordinho made his sole start this season at left back against Highlands Park. He recently played the final eight minutes against Chippa United.
Another option could be the one that Middendorp took in the Shell Helix Ultra Cup when Mathoho was on international duty – moving Yagan Sasman to centre back and bringing in one of Siphosakhe Ntiya-Ntiya or Philani Zulu at left back. Njabulo Blom and Ramahlwe Mphahlele are outside bets to replace Mathoho too.
Read: Watch: Phiri’s Piledriver For Bafana
Who Replaces Akpeyi?
Amakhosi have two other senior goalkeepers on their books in Itumeleng Khune and Bruce Bvuma. The exact fitness status of Chiefs’ captain is not clear, but on the 12th of October, Ernst Middendorp stated his goalkeeper is “sidelined for the month”. By the time of the semi-final, six weeks would have passed.
Therefore, Khune may have an outside shot of being fit to start. Otherwise, Bruce Bvuma – who played throughout Chiefs’ run to the Nedbank Cup final last season –would start the game, with either Khune on the bench or the recently re-signed Brylon Petersen in reserve.
Who Takes Katsande’s Spot?
Chiefs’ defensive midfielder has only played 47% of the available minutes in league and cup this season and his recent run of starts is largely down to an injury to Kearyn Baccus. Before that, George Maluleka was playing in the holding role and should Baccus be fit to return for this game, then Middendorp would likely revert to his preferred midfield from the start of the season.
If Baccus is out, then Njabulo Blom is a possible defensive midfield option or Reeve Frosler could play in midfield as he did against Mamelodi Sundowns recently. Philani Zulu could also be an alternative in midfield, whilst Siphelele Ntshangase and James Kotei would be surprise selections have not made a single matchday squad all season, even when Chiefs have been struck by injuries or have heavily rotated their side.
Who would you start to replace Akpeyi, Mathoho and Katsande? Let us know by commenting below!
Earn Airtime & Data With Soccer Laduma’s Social Media App - Download Now


Deleting
The delete()
method generates SQL to remove rows from a table, it can be combined with any of the where()
methods, the orderBy()
and limit()
methods.
Important
The delete()
method should be called last.
Delete queries
Deleting all rows in a table
$query->table('movies')->delete();
// DELETE FROM `movies`
Deleting a subset of rows in a table
$query->table('movies')->where('year', '<', 1984)->delete();
// DELETE FROM `movies` WHERE `year` < 1984
Limiting the number of deleted rows
$query->table('movies')->where('year', '<', 1984)->limit(10)->delete();
// DELETE FROM `movies` WHERE `movies`.`year` < 1984 LIMIT 10
Ordering the rows for deletion
$query->table('movies')->where('year', '<', 1984)->orderBy('year', 'DESC')->limit(10)->delete();
// DELETE FROM `movies` WHERE `movies`.`year` < 1984 ORDER BY `movies`.`year` DESC LIMIT 10
Truncate queries
The truncate() method generates SQL to reset a table removing all rows and resetting any increment columns back to zero.
Important
The truncate()
method should be called last.
Truncating a table
$query->table('movies')->truncate();
// TRUNCATE TABLE `movies`


When ordering dangerous goods, some additional information describing the goods is required. The following elements/attributes must be sent if they are defined for the specific UnNumber:
unNumber
(mandatory)containerId
(mandatory when ordered with OIL_EXPRESS
)weightInGrams
(either this or)volumeInLitres
commodity
(mandatory if specified)packingGroup
(mandatory if specified)dangerClass
(mandatory if specified)safetyMarkCode
(mandatory if specified)tunnelRestrictionCode
(mandatory if specified)An example where only unNumber and packingGroup is provided and is not enough to verify the correct dangerous good


Virtuoso maintains a set of global RDF prefixes so that shorter prefixed names can be used in place of full URIs in transformer rules or queries. These can be added with button and removed by button next to the desired target of removal.


{% extends user.is_authenticated|yesno:'base_2014.html,base.html' %}
{% block title %}
Index
{% endblock %}
{% block content %}
Hello Internet!
This is my page.
If you've stumbled upon this place then you must have been looking for something.
I'm an internet engineer with an interest in data aggregation and bit collecting.
I'm presently studying Electrical and Computer Engineering at WPI.


This is a bunch of text split into three columns. The `column-rule-color` property is used to change the color of the line that is drawn between columns. Don't you think that's wonderful?


A React+Redux framework with standards, conventions, and far less boilerplate
Installation
$ npm i arco --save
Summary
arco
is a framework designed to streamline a lot of the architectural configuration of a React application by providing several web-standard packages built-in, as well as an API that is built to keep boilerplate minimal.
The following packages are all included as part of arco
:
- axios for AJAX calls
- react for views
- react-dom for rendering into the browser
- react-router for routing
- react-router-redux for react-router bindings into redux
- redux for state management
- redux-actions for simplified redux action creation
- redux-immutable for use of redux with stores based on ImmutableJS
- redux-thunk for asynchronous actions (optional)
- reselect for memoized selectors
Additionally, the following concepts are applied through convention:
- ducks for encapsulated functionality modules of actions / reducer
- flux-standard-action for formatting of actions in a standard way
arco
provides a layer of abstraction over the use of these so that you can focus on implementation, but with the same sort of flexibility you would expect from each of these packages directly. Think of it as convention with configuration. Additionally, keeping in line with redux
, arco
focuses on immutability and pure functions to eliminate side effects and make testing easier.
Building an app
You can find tutorials on how to create each aspect of an arco
app in the "Tutorials" section, or select from below:
- Actions: actions consumed by your
redux
store (based onredux-actions
) - Ajax: make async calls, such as to an API (based on
axios
) - Components:
react
components that are connected to your store and enhanced by the use of pure functions - History: history used with
react-router
for the single-page application - Modules: encapsulated modules that contain
redux
actions and a reducer to manage them (based on ) - Reducers: reducer that contains state of a specific topic in your
redux
store - Rendering: rendering your
react
views into the DOM - Router: render your
react
views active in the route (based onreact-router
) - Selectors: memoized selectors for computed data to keep your stored state small (based on
reselect
) - Store: your
redux
store which encompasses the state of your entire application
Hello World example
// import from one application
import createComponent, { createModule, render } from 'arco';
// create a module for a piece of functionality in your state
const app = createModule('app');
// create actions for that module
const sayHello = app.createAction('SAY_HELLO');
// create a reducer for that module
app.createReducer({hasSaidHello: false}, {
[sayHello](state) {
return {
...state,
hasSaidHello: true
};
}
});
// create your store from an array of modules (or the module's reducers)
const store = createStore([app]);
// build your components as functional components
const App = ({hasSaidHello, sayHello}) => {
return (

<button onClick={sayHello} type="button">
Say hello
</button>
{hasSaidHello &&
Hello World!
}

);
};
// create the component with options that allow connecting to lifecycle methods and the redux store=
const ConnectedApp = createComponent(App, {
mapStateToProps({app}) {
return app;
},
mapDispatchToProps: {
sayHello
}
});
// render in browser, pre-wired with the store
render(<ConnectedApp/>, document.body, store);
Setup
There are a couple things to be aware of when setting up arco
for your application.
React global
arco
expects there to be a global React
object for it to render components, and if you don't provide it then you will receive a React is not defined
error when attempting to render. There are two ways to fix this error:
- Create a
React
global- With
webpack
you can useProviderPlugin
- With
browserify
you can use something like browserify-global-shim - With


About
instant (pl. -s) — (1) An infinitesimal space of time, esp. a point in time separating two states (at the instant of death); (2) The present or current month.
This is an online chat site that focuses on the very moment. It does not store the messages posted — unless someone takes care, they are gone as soon as the last participant leaves the room.


Track suggester!
We will provide a track suggestion based on your answers.
Please take the short quiz below.
Hey
C# is best language for you to learn at Epicodus.
Hey
Ruby is best language for you to learn at Epicodus.
Hey
CSS and
Design classes are best for you to take at Epicodus.


Blokada v4.6
The newest version brings new widgets, better host log, and improvements in stability. We also addressed several of your suggestions from Github!
As usual, you can find details in our changelog.
By the way, we've recently released Blokada for iOS>, which is also free. Please tell anyone who could be interested.
Remember that using Blokada Tunnel or donating is what makes it possible for us to keep improving the app. Thanks!