class: center, middle # checkm8 exploit
&
checkra1n jailbreak #### Student seminar: security protocols and applications #### 03/2020 ##### Louis Merlin (247565) --- # Plan ### 1. What is a jailbreak ? ### 2. History ### 3. Deep Dive ### 4. Conclusion --- # 1. What is a jailbreak ? ??? First, what do I mean by jailbreak ? -- ### - Privilege escalation on Apple's iOS ??? It typically involves some kind of privilege escalation on iOS, making the user root and able to bypass most of Apple's built in limitations. -- ### - Mobile carrier unlocking and device customization ??? A big usage of jailbreaking used to be for mobile carrier unlocking, if you wanted to switch your mobile carrier, say, from Swisscom to Salt or the other way around. It is also used to install apps that are not on the Apple App Store, and tweak your device in different ways. I remember on one of the first versions of iOS, I used jailbreaking to change the background image of my iPod Touch from the only choice, black, to some picture I found cool at the time. -- ### - First jailbreak came out a few days after the first iPhone (2007) ??? Jailbreaks have played a big role in the iPhone from the beginning, as the first jailbreak was published only a few days after the release of the first iPhone. Since then, Apple has upgraded the security of the hardware and the software significantly. Some current versions of iOS and the iPhone have no public jailbreaks. Also, many security researchers that find those jailbreaks end up working on security at Apple. -- ### - Can be tethered, semi-tethered, untethered or semi-untethered ???  A semi-tethered jailbreak means you need to re-jailbreak your iPhone on every boot. An untethered jailbreak means that the jailbreak persists after reboot. A semi-untethered jailbreak means you can re-jailbreak your iPhone by manually launching an app from your iPhone after reboot. Checkra1n is a semi-tethered jailbreak, so you would need to re-jailbreak your iPhone on every reboot. --- # 2. History ### - Late 2019, `ipwndfu` by axi0mX ### - Targets SecureROM (immutable code), so unpatchable ### - Leads to *checkra1n* ??? The exploit was first published in September 2019 by axi0mX in his pwn tool ipwndfu, although littlelailo claimed to have discovered it in March and published it in a text file. It targets SecureROM, the first part of the iOS cold boot process, which is hard-coded in silicon, so unpatchable. Over the months it was used to create a full jailbreak for iPhones 5s to X, named checkra1n. --- # 3. Deep Dive --- ### SecureROM .center[![SecureROM](./SecureROM.png)] ##### .right[https://habr.com/en/company/dsec/blog/472762/] --- ## 3.1 - Normal use of DFU - Start USB DFU protocol: - Input output buffer is allocated by the device in the ram - Address is given to usb stack via global variable - Image is transfered to the device - Image is copied to the memory location from where the boot will happen - Image is verified - On DFU exit: - i/o buffer is freed - If parsing the image fails, the USB stack is activated again ??? DFU stands for Device Firmware Upgrade. SecureROM DFU image upload is used by Apple to bypass iBoot, the next part of the boot process, as an emergency recovery mecanism. The image and its signature will be verified before it is used. The signature is one of Apple's public keys, which are 2048-bit long RSA public keys. --- ## 3.2 - checkm8 - Start USB DFU protocol: - Input output buffer is allocated by the device in the ram - Address is given to usb stack via global variable - Image is transfered to the device
INTERRUPT
-
Image is copied to the memory location from where the boot will happen
-
Image is verified
- On DFU exit: - i/o buffer is freed
=> use-after-free
- If parsing the image fails, the USB stack is activated again ??? Now let's talk about the actual checkm8 exploit. When we interrupt the USB transfer midway, the code jumps to the "On DFU exit" part. The i/o buffer is freed, but the global pointer is never NULLed out. After the USB stack is activated again, if we send the device data instead of a setup packet, the device will copy data on the dangling pointer. This is a typical use-after-free vulnerability. --- ## 3.3 - A8 and A9 processors ### - iPhone 6, 6+, 6s and 6s+ ### - Use-after-free overwrites USB stack ### - USB tasks are a linked list of tasks ### - Overwrite the current task's **next** value, and create that next task ### - 🙌 ??? In the case of two processors, the A8 and the A9, we can directy overwrite the USB stack, and thus we have direct code execution. We cannot target the current task's values, as they are already loaded onto the registers. We can use the `next` pointer though ! Easy Peasy ! --- ## 3.4 - The rest... ### - The ROM is deterministic, an the USB stack is not where we need it to be. ??? For the rest of the vulnerable processors, we can allocate and free data, but we do not get determinism on where the data is. -- ### - Heap Feng Shui to the rescue ! ??? For this, we use Heap Feng Shui. The way the buffers are allocated is actually deterministic, as the process will allocate the smallest hole in memory that fits the data. --- ### Heap Feng Shui ``` def stall(device): libusb1_async_ctrl_transfer(device, 0x80, 6, 0x304, 0x40A, 'A' * 0xC0, 0.00001) def leak(device): libusb1_no_error_ctrl_transfer(device, 0x80, 6, 0x304, 0x40A, 0xC0, 1) def no_leak(device): libusb1_no_error_ctrl_transfer(device, 0x80, 6, 0x304, 0x40A, 0xC1, 1) ``` ``` stall(device) leak(device) for i in range(6): no_leak(device) dfu.usb_reset(device) dfu.release_device(device) ``` Requests that are not a multiple of 64 bytes do not trigger the leak ! ??? So we launch multiple USB transfers at the same time, until the stars align and we can insert a gadget. Once the stall and leak transfers are finished, because of their size, the device will add "send zero-length-packets" tasks to the queue. Because of a bug, they will not be freed when DFU shuts off. --- .center[![Heap](./heap.png)] ##### .right[https://habr.com/en/company/dsec/blog/472762/] ???  We now restart DFU, and wait for it to do its allocations again. The hole will become the prefered place to put some crucial data because the heap is full. We can now overflow to `usb_device_io_request`, and gain direct code execution. --- ### We want this .center[![DFU](./DFU.png)] ##### .right[https://habr.com/en/company/dsec/blog/472762/] --- ### Payload ``` 0x1800B0000: t8010_shellcode # initializing shell-code ... 0x1800B0180: t8010_handler # new usb request handler ... 0x1800B0400: 0x1000006a5 # fake translation table descriptor # matches the value in the original translation table ... 0x1800B0600: 0x60000180000625 # fake translation table descriptor # matches the value in the original translation table 0x1800B0608: 0x1800006a5 # fake translation table descriptor # plus, in this descriptor,there are rights for code execution 0x1800B0610: disabe_wxn_arm64 # code for disabling WXN 0x1800B0800: usb_rop_callbacks # callback-chain ``` ??? As you can see, the payload defines a few fake address translation tables, to take over the system. WXN (Write permission implies Execute-never) is disabled which enables the code execution in RW memory. The modified translation table makes WXN disabling code execution possible. --- ### Final steps of exploit - Restore USB configuration - USB Serial Number = "PWND:[checkm8]" - Replace USB request handler pointer ??? We now restore the USB configuration to regain access to the device from the outside. The shellcode then overwrites a few values to tell the hacker that the execution was successful. Namely, the USB serial number is replaced with "PWND:[checkm8]" Finaly, we initiate a new USB transfer for the bootkit to load and execute. --- ## 3.5 - The Bootkit - Boot normally and compromise the stages one after the other -- - **But** iBoot will reset all registers and wipe memory ("trampoline") -- - We can hook bzero to avoid that ??? The bzero method (changes all data to \0 in specific memory space) is hooked into so that it never reaches our bootloader (transformed into a NOP in that case). This is a "hacky" way to do it according to the people who wrote it, but at least it has the advantage to work on all devices, and to be independent of future code changes. We now have read-write access to the kernel in the ram, but not to the iPhone's memory. -- - Embed tiny ramdisk in kernel with hijack code ??? In order to retain code execution in usermode, we can embed a tiny (fakeish) ramdisk in the shellcode, in order to hijack root code execution once the phone is booted. -- - We now have a fork(2) during system boot ??? The system will now fork(2) off right as it is booting iOS. In this fork we can launch an SSH daemon to get remote access to the system, and we can also load custom .app files to be installed on the system. --- # 4. Conclusion - latest full jailbreak was on iOS 8 (2014) - enables researchers to do security research - [dual booting](https://twitter.com/Basti564/status/1235316256024285184) - Linux on iPhone ? #### Illustrations and content - https://habr.com/en/company/dsec/blog/472762 - https://media.ccc.de/v/36c3-11238-the_one_weird_trick_securerom_hates


Clock Pong Game
A small game I made using p5.js for an assignment in 60-212 Interactivity and Computation and CMU. My description from the original post:
Prevent time from passing by knocking away the incoming seconds. The more you prevent time from passing, the faster the seconds will come. If one of the seconds makes it past you, time is reset and can even go into the future.
I liked the idea of making some sort of a game for this project, as time is usually quite a large part of games. I also wanted to make a clock that was not quite accurate, so that you could have some control over the clock's speed. I took inspiration from Pong, so that the player can prevent time from being added to the clock. To give a bit of a challenge, I made time speed up as the player is more successful. This way, if they miss, time is both reset and a couple seconds may be added to the clock. The main issue with using p5.js for this project is that the animation stops drawing when you leave a tab, so the time that is drawn will be different from the real time, and the scoring system gets messed up. I'd like to find a way around this.


Results
| {{result.email}} | {{result.error ? result.error : "invitation sent!"}} |
If you would like to invite many people at once, please
email us at Hylo.
| {{result.email}} | {{result.error ? result.error : "invitation sent!"}} |


Demonstrates the generator part of the ACGAN in the browser.
Description
This is the web demo part of the dual-environment TensorFlow.js example of Auxiliary Classifier Generative Adversarial Network (ACGAN).
The training code is in gan.js, which runs in Node.js using tfjs-node or tfjs-node-gpu. In this web page, we load the generator part of a pre-trained GAN to generate MNIST images. How real those generated MNIST images look depends on how well the model has been trained. After 5 epochs of training, you should start seeing reasonable images. After 15 epochs, the images should start to look good. Close-to-perfect images (ones that are hard to distinguish from the real ones) should appear toward the end of the default 100 epochs of training.
The ACGAN is a type of GAN. It consists of


|
|
def | ErrorCode_Name |
| |
|
def | __init__ |
| |
|
def | MergeFrom |
| |
|
def | Equals |
| |
|
def | IsInitialized |
| |
|
def | ByteSize |
| |
|
def | ByteSizePartial |
| |
|
def | Clear |
| |
|
def | OutputUnchecked |
| |
|
def | OutputPartial |
| |
|
def | TryMerge |
| |
|
def | __str__ |
| |
|
|
int | OK = 0 |
| |
|
int | INVALID_REQUEST = 1 |
| |
|
int | TRANSIENT_ERROR = 2 |
| |
|
int | INTERNAL_ERROR = 3 |
| |
|
int | PERMISSION_DENIED = 4 |
| |
|
int | TIMEOUT = 5 |
| |
|
int | CONCURRENT_TRANSACTION = 6 |
| |
|
tuple | ErrorCode_Name = classmethod(ErrorCode_Name) |
| |
The documentation for this class was generated from the following file:
- code/googleappengine-read-only/python/google/appengine/api/search/search_service_pb.py


--- layout: post title: ">SOA Target Practice: Part 1 - The Mission" date: 2008-04-22 20:00:00.000000000 +02:00 categories: - SOA tags: [] status: publish type: post published: true meta: blogger_blog: andreasohlund.blogspot.com blogger_permalink: "/2008/04/soa-target-practice-part-1-mission.html" author: login: andreas.ohlund email<EMAIL_ADDRESS>display_name: Andreas Öhlund first_name: Andreas last_name: "Öhlund" ---
>
As promised I will try to show you how to build SOA services using an practical example. (a very trivial example but it will do). So here's your mission if you choose to except it:
As an employee of company X I would like to see a list of all X:s employees to find role, department, email, image etc for my colleagues.
Like almost any assignment this is no green field project so we have the following systems present.
One of early misconceptions of SOA, was that Service == Web Service (this is luckily starting to go away). If you still believe that you'll get a SOA just by using web-services the solution should be obvious: Just wrap a web services around the HR system and call that service when users request the employee list. Hey, didn't that CMS vendor mention that their software was "SOA ready" because they had a web-service API so the CMS system is already part of our SOA
With this naive approach you'll get Service Oriented Integration (SOI), while this is not all that bad it's not building the agile and reusable architecture that the business think they'll get.
The upcoming posts will highlight the shortcomings of the above approach so we'll leave it for now.
That said, lets see how we can translate these requirements to well designed services in our company's SOA. To do that we must answer the question:
What defines a good service?
Bill Poole has the best definition I've seen so far:
Ok, so good service should:
Lets start with the first one, "Services should align with business". It's easy to understand why it's good that Services align with the business but perhaps not so easy to figure out how to achieve it.
It's my experience that services align well with business when you model them around business-capabilities. Business-capabilities focuses on what a business does to reach its objectives (its capabilities), instead of how it does it (its business processes).
In our example the business needs the capability to "manage our human resources" and "communicate internal company information to employees". One of the benefits of modelling services around capabilities is that capabilities is relatively stable over time. I can imaging that even before IT was invented the same capabilities where needed by our business.
Changing software is costly so modelling our services around things that are fairly stable reduces the need for change == lower costs for maintenance.
Another important aspect is to design services with the correct granularity. Correctly grained services usually coincide with traditional departments, e.g. Billing Service, Shipping Service etc. So if you have services that has functionality that spans more than one department it's usually a sign that you have too coarse grained services. On the other hand if you have a lot of services with functionality from the same department you might have too fine grained services.
With the above guidelines in mind we decide to introduce the following two services:
The latter will require be a lot of typing :) so lets refactor this one to Intranet-Service. This narrows the scope of the service a bit but I think the concept of using some kind of "intranet" to collaborate with employees is fairly stable so it will do for now.
So now we've hopefully aligned our services with the business and thereby satisfied the first requirement.
My next post will focus on the other three requirements of "a good service". As we'll see these requirements highly affects how our services communicate with each other.
Stay tuned...


{% extends "base.html" %} {% block content %}
Designed by and for biomedical researchers, The Harvest Stack is an open source toolkit for building web applications for integrating, discovering, and reporting data. Learn more.
Get Started


|
content
can go here
this
template was created in Dreamweaver 4.0, and was built
for Internet Explorer... this template is free as long
as you leave the copyright notice and the link to my
site at the bottom... if you like this template, please
visit my site and click on the link at the top of my
pages and sign up for a free email webmaster resource
newsletter; it only takes a minute, it's free and helps
me keep these templates free... i can customize this
for a fee, just email
me... if you order a customization, it will include
a flash intro for this template too... thanks and enjoy
you
can purchase a customized flash version of this template
for $30... email
me for info
|


Demonstrates how to use the writeObject and readObject methods to encode a custom data format. When there is a large amount of persistent data, that data should be stored in a convenient, condensed format, such as the one used in this example.
This example uses a triangular array, a symmetrical, 2-dimensional array. During serialization only half of the array is saved. This example serializes half of the array in writeObject, then restores the whole array in readObject by deserializing half of the array and copying to restore the other half of the array.
This example differs from the Using Serialization and the Serializable Fields API Example in that this example does not support versioning. In addition, because this example does not use an Externalizable interface, superclasses are not a consideration.


Muhammed leads Louisiana Tech past North Alabama 82-61
by The Associated PressRUSTON, La. (AP) — Mubarak Muhammed had 18 points and 12 rebounds, Derric Jean scored 13 points, and Louisiana Tech rolled past North Alabama 82-61 on Friday night.
DaQuan Bracey added 10 points for Louisiana Tech (4-1).
Jamari Blackmon had 24 points for the Lions (2-4).
La Tech led 45-32 at halftime and quickly pushed the lead to 21 with a 13-5 run to open the second half.
A 3-point play by Bracey extended the lead to 61-39 with 15:56 remaining and North Alabama drew no closer than 15 points the rest of the way.
Still, the teams combined for just 18 points in the final 10 minutes, the Bulldogs outscoring the Lions 12-6 over that stretch.
Louisiana Tech plays at Indiana on Monday. North Alabama plays Mississippi Valley State at home on Wednesday.
___
For more AP college basketball coverage: https://apnews.com/Collegebasketball and http://twitter.com/AP_Top25
___
This was generated by Automated Insights, http://www.automatedinsights.com/ap, using data from STATS LLC, https://www.stats.com
The Associated Press


{% extends 'base.html' %} {% load i18n %} {% block title %} StorageShare - Home {% endblock %} {% block content %}
| {% trans "Storage Name" %} | {% trans "Price Per Month" %} | {% trans "Area Code" %} |
|---|---|---|
| {{ storage.storage_name }} | {{ storage.price }} | {{ storage.area_code }} |
Need a place to store some extra items for a short amount of time but do not want to pay the outrageous prices of storage facilities?

ShareSpace provides an opportunity for people in need of storage space and rewards those with space.


#!/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = "Christian Heider Nielsen"
__doc__ = r"""
"""
import functools
from pathlib import Path
import numpy
import tensorflow
from PIL.Image import Image, fromarray
from neodroidvision.utilities.visualisation.bounding_box_visualisation import (
_visualize_boxes,
_visualize_boxes_and_keypoints,
_visualize_boxes_and_masks,
_visualize_boxes_and_masks_and_keypoints,
cdf_plot,
hist_plot,
)
[docs]def save_image_array_as_png(image: Image, output_path: Path) -> None:
"""Saves an image (represented as a numpy array) to PNG.
Args:
image: a numpy array with shape [height, width, 3].
output_path: path to which image should be written.
"""
image_pil = fromarray(numpy.uint8(image)).convert("RGB")
with tensorflow.gfile.Open(output_path, "w") as fid:
image_pil.save(fid, "PNG")
[docs]def draw_bounding_boxes_on_image_tensors(
images,
boxes,
classes,
scores,
category_index,
instance_masks=None,
keypoints=None,
max_boxes_to_draw=20,
min_score_thresh=0.2,
line_thickness=2,
):
"""Draws bounding boxes, masks, and keypoints on batch of image tensors.
Args:
:param images: A 4D uint8 image tensor of shape [N, H, W, C].
:param boxes: [N, max_detections, 4] float32 tensor of detection boxes.
:param classes: [N, max_detections] int tensor of detection classes. Note that
classes are 1-indexed.
:param scores: [N, max_detections] float32 tensor of detection scores.
:param category_index: a dict that maps integer ids to category dicts. e.g.
{1: {1: 'dog'}, 2: {2: 'cat'}, ...}
:param instance_masks: A 4D uint8 tensor of shape [N, max_detection, H, W] with
instance masks.
:param keypoints: A 4D float32 tensor of shape [N, max_detection, num_keypoints, 2]
with keypoints.
:param max_boxes_to_draw: Maximum number of boxes to draw on an image. Default 20.
:param min_score_thresh: Minimum score threshold for visualization. Default 0.2.
:param line_thickness:
Returns:
4D image tensor of type uint8, with boxes drawn on top.
"""
visualization_keyword_args = {
"use_normalized_coordinates": True,
"max_boxes_to_draw": max_boxes_to_draw,
"min_score_thresh": min_score_thresh,
"agnostic_mode": False,
"line_thickness": line_thickness,
}
if instance_masks is not None and keypoints is None:
visualize_boxes_fn = functools.partial(
_visualize_boxes_and_masks,
category_index=category_index,
**visualization_keyword_args,
)
elems = [images, boxes, classes, scores, instance_masks]
elif instance_masks is None and keypoints is not None:
visualize_boxes_fn = functools.partial(
_visualize_boxes_and_keypoints,
category_index=category_index,
**visualization_keyword_args,
)
elems = [images, boxes, classes, scores, keypoints]
elif instance_masks is not None and keypoints is not None:
visualize_boxes_fn = functools.partial(
_visualize_boxes_and_masks_and_keypoints,
category_index=category_index,
**visualization_keyword_args,
)
elems = [images, boxes, classes, scores, instance_masks, keypoints]
else:
visualize_boxes_fn = functools.partial(
_visualize_boxes,
category_index=category_index,
**visualization_keyword_args,
)
elems = [images, boxes, classes, scores]
def draw_boxes(image_and_detections):
"""Draws boxes on image."""
image_with_boxes = tensorflow.py_func(
visualize_boxes_fn, image_and_detections, tensorflow.uint8
)
return image_with_boxes
images = tensorflow.map_fn(
draw_boxes, elems, dtype=tensorflow.uint8, back_prop=False
)
return images
[docs]def add_cdf_image_summary(values, name):
"""Adds a tf.summary.image for a CDF plot of the values.
Normalizes `values` such that they sum to 1, plots the cumulative distribution
function and creates a tf image summary.
Args:
values: a 1-D float32 tensor containing the values.
name: name for the image summary."""
tensorflow.summary.image(
name, tensorflow.py_func(cdf_plot, [values], tensorflow.uint8)
)
[docs]def add_hist_image_summary(values, bins, name):
"""Adds a tf.summary.image for a histogram plot of the values.
Plots the histogram of values and creates a tf image summary.
Args:
values: a 1-D float32 tensor containing the values.
bins: bin edges which will be directly passed to numpy.histogram.
name: name for the image summary."""
tensorflow.summary.image(
name, tensorflow.py_func(hist_plot, [values, bins], tensorflow.uint8)
)


Singleton class to connect to DB
Located in /extended_pgsql.class.php [line 418]
Methods
pgsql_connect __construct( )
void __destruct( )
void singleton( )
void __clone( )


| Home | Libraries | People | FAQ | More |
x = a + b;involves the creation of a temporary
mp_int
inside operator +
because it is not able to write the result directly into x
which may already have enough memory
allocated to hold the result. Instead rewrite it into
x = a; x += b;This trick proves to be useful only for simple operations like addition and subtraction.
A benchmark program is supplied with Boost.Mp_math under libs/mp_math/tools/benchmark. This benchmark compares some primitive operations of different multi precision integer libraries. It creates detailed result files and uses gnuplot to create graphs.
Example invocations:
benchmark // runs all benches benchmark --help benchmark --ops="add subtract multiply" --libs="boost.mp_math libtommath"
Operating System: Arch Linux (i686), Kernel 2.6.26, glibc 2.8 Compiler: gcc-4.3.2
Libraries being compared:
Operand size is measured in number of bits. I chose to vary the operand size for the benchmarks a little to see how well the operation handles inputs of differing sizes. Benchmarks that use only one operand use operand 1.
While input operand 1 grows linearly, input operand 2's size is determined by a modified sine function.
The operation looks like this: dest
= (op1 ^ op1) % op2
.
This graph uses a logarithmic scale.


Joan Marie Verba's short stories and articles
Home
About/Bio
Books
All Books
Fiction & Nonfiction
Thunderbirds books
Journals & Diaries
Coloring Books
Short Stories/Articles


Returns whether TensorFlow can access a GPU.
tf.compat.v1.test.is_gpu_available
tf.compat.v2.test.is_gpu_available
tf.test.is_gpu_available( cuda_only=False, min_cuda_compute_capability=None )
Warning: if a non-GPU version of the package is installed, the function would
also return False. Use tf.test.is_built_with_cuda
to validate if TensorFlow
was build with CUDA support.
cuda_only
: limit the search to CUDA GPUs.min_cuda_compute_capability
: a (major,minor) pair that indicates the minimum
CUDA compute capability required, or None if no requirement.Note that the keyword arg name "cuda_only" is misleading (since routine will return true when a GPU device is available irrespective of whether TF was built with CUDA support or ROCm support. However no changes here because
++ Changing the name "cuda_only" to something more generic would break backward compatibility
++ Adding an equivalent "rocm_only" would require the implementation check the build type. This in turn would require doing the same for CUDA and thus potentially break backward compatibility
++ Adding a new "cuda_or_rocm_only" would not break backward compatibility, but would require most (if not all) callers to update the call to use "cuda_or_rocm_only" instead of "cuda_only"
True if a GPU device of the requested kind is available.


Home
(current)
About
Services
Our Work
Contacts
John Doe
Profile
Account Settings
Newsletter
Sign Out
John Doe
W E L C O M E
Hi! I'm John Doe
A Freelance Web App &
UI Designer
Hire me now
Hire me now


Its Online And In Person at the Same Time
How do you “pick” a financial expert? Referral or email from a friend, family member, business associate, accountant, lawyer? An advertisement on TV, in the newspaper or the yellow pages, or do you go to the bank because it’s “easy and convenient”?
In other words, it could be a complete stranger. Will that “expert” concentrate only on RRSP’s, insurance or investments; or can they answer all the questions related to your "whole story"?
We offer online conferencing for that important second opinion and as an alternative to traveling to meet in person with a stranger. You can get to know us from the security of your home or office and can comfortably ask your questions.
By providing a time limit, you can “cut to the chase” and get right into those questions you want answered. Financial experts, more often than not, will require information from you (such as age, income level, retirement goals, business goals) to answer your questions. With online A/V conferencing you can see exactly who you are speaking with and sharing that information with.
Should you wish to continue, we will identify your needs and if necessary introduce other professionals (such as tax experts, estate planners, etc.) to you with the same convenience.
Online conferencing allows us to do our small part to help protect the environment – less travel, means less harmful emissions in our air.
The bottom line is that conferencing is a convenient and economical way for you to comfortably ask questions and get to know us.
Copyright 2016 Financial insiders


RentalZApp
This application is designed to help you find your new home, it displays a range of property for you to search from and once you have selected a property you will be able to obtain as much information regarding that property as possible. We find the properties for you and connect you to the appropriate people, in the mean time just put up your feet, make a cup of tea, relax and rememeber mi casa es su casa
RentalZApp
Below are options of what you can do now that you have logged in, you can choose to either delete properties or add new properties
Please pick an option below
If there is nothing you wish to do, then please sign out
RentalZApp


EarthChem REST Server Documentation
The EarthChem REST Search Service accepts GET string variables which determine search criteria.
The target URL for the EarthChem REST Search Service is:
The target URL for the EarthChem REST Search Service is:
http://ecp.iedadata.org/restsearchservice
Usage of GET Variables:
author
Author of reference citation.
title
Title of citation journal article.
journal
Name of citation journal.
doi
DOI of citation article. (Note: not all ciations have a DOI assigned.)
minpubyear
Minimum publication year of citation article. If minpubyear is provided, maxpubyear
must also be provided.
maxpubyear
Maximum publication year of citation article. If maxpubyear is provided, minpubyear
must also be provided.
exactpubyear
Exact publication year of citation article.
keyword
The keyword query searches a generic descriptor field contained in the EarthChem schema. This is a free-text field that allows the supported datasets to provide a descriptor of their own choosing. Most often, this field contains a short sample description describing the sample's location and composition. The keyword search also includes rock name in the queried results.
sampleid
Sample Identifier provided by source database.
polygon
This field allows a polygon to be provided in order to constrain results geographically.
The polygon must be provided in a closed format of comma-delimited coordinate pairs.
Example:
-109.35 36.7875,-105.525 40.725,-104.5125 37.0125,-107.1 35.4375,-109.35 36.7875
Example:
-109.35 36.7875,-105.525 40.725,-104.5125 37.0125,-107.1 35.4375,-109.35 36.7875
north
Northern bound of a geographic envelope used to constrain results geographically.
If a northern bound is provided, an east, south, and west value must also be provided.
If a northern bound is provided, an east, south, and west value must also be provided.
east
Eastern bound of a geographic envelope used to constrain results geographically.
If an eastern bound is provided, a south, west, and north value must also be provided.
If an eastern bound is provided, a south, west, and north value must also be provided.
south
Southern bound of a geographic envelope used to constrain results geographically.
If a southern bound is provided, a west, north, and east value must also be provided.
If a southern bound is provided, a west, north, and east value must also be provided.
west
Western bound of a geographic envelope used to constrain results geographically.
If a western bound is provided, a north, east, and south value must also be provided.
If a western bound is provided, a north, east, and south value must also be provided.
level1
Material of the sample. This is an enumerated value. Possible values can be found in the EarthChem SOAP search schema.
level2
Rock type of the sample. This is an enumerated value. Possible values can be found in the EarthChem SOAP search schema.
level3
Composition of the sample. This is an enumerated value. Possible values can be found in the EarthChem SOAP search schema.
level4
Rock name provided by source database for the sample. This is an enumerated value. Possible values can be found in the EarthChem SOAP search schema.
minage
Minimum age of the sample. (Ma)
maxage
Maximum age of the sample. (Ma)
exactage
Exact age of the sample. (Ma)
geologicalage
Geological age of the sample. This is an enumerated value. Possible values can be found in the EarthChem SOAP search schema.
material
Material composition of the sample. This is an enumerated value. Possible values can be found in the EarthChem SOAP search schema.
searchtype
Desired type of search query. Possible values are "count", "rowdata", and "distinctitems"
count: returns count of results from query.
rowdata: returns table of results from query in the format of "outputtype" below. distinctitems: returns list of distinct items found within current query in the format of "outputtype" below.
count: returns count of results from query.
rowdata: returns table of results from query in the format of "outputtype" below. distinctitems: returns list of distinct items found within current query in the format of "outputtype" below.
outputtype
Desired output type from query. Possible values are "html", "csv", "xml", "json", "jsonp" and "staticmap".
html: returns HTML table of results from query.
csv: returns CSV table of results from query.
xml: returns XML document of results from query.
json: returns JSON document of results from query.
jsonp: returns JSON string wrapped in a Javascript function call defined by "jsonpfunction" below:
staticmap: returns map image of results from query.
Please note: When a searchtype of "count" is set, "html", "csv", and "staticmap" will return a plaintext integer count of samples from the query.
html: returns HTML table of results from query.
csv: returns CSV table of results from query.
xml: returns XML document of results from query.
json: returns JSON document of results from query.
jsonp: returns JSON string wrapped in a Javascript function call defined by "jsonpfunction" below:
staticmap: returns map image of results from query.
Please note: When a searchtype of "count" is set, "html", "csv", and "staticmap" will return a plaintext integer count of samples from the query.
jsonfunction
Desired Javascript function to be wrapped around JSON in the event that "outputtype" is set to "jsonp"
outputlevel
Desired level of output from query. Possible values are "sample" and "method".
sample: returns one row per sample. If a sample has more than one material associated with it, a row will be returned for each material.
method: returns one row per method used to determine chemical values.
sample: returns one row per sample. If a sample has more than one material associated with it, a row will be returned for each material.
method: returns one row per method used to determine chemical values.
startrow/endrow
These values determine which rows of query will be displayed. The first row is always 0 and the
last row is always the count value minus 1 (n-1).
Important: A maximum of 50 rows are allowed to be displayed at a time. Any start/end values that exceed a difference of 50 will result in the start value and start value + 50 values being displayed. If start/end values are not provided, rows 0-49 will be displayed.
Important: A maximum of 50 rows are allowed to be displayed at a time. Any start/end values that exceed a difference of 50 will result in the start value and start value + 50 values being displayed. If start/end values are not provided, rows 0-49 will be displayed.
standarditems
This element has a value of yes/no and determines if the standard chemical values should be
displayed in the html,csv, or xml outputs. Using the standard items allows a consistent output from query to query for use in
tables.
Standard items are:
SiO2, TiO2, Al2O3, Cr2O3, Fe2O3, Fe2O3 Total, FeO, FeO Total, NiO, MnO, MgO, CaO, Na2O, K2O, P2O5, LOI, H2O, H2O-, H2O+, S, Co2, F, Cl, Ag, As, Au, B, Ba, Be, Bi, Cd, Co, Cr, Cs, Cu, Ga, Hf, Hg, I, Ir, K, Li, Mn, Mo, Nb, Ni, Os, Pb, Pd, Pt, Rb, Re, S, Sb, Sc, Se, Sn, Sr, Ta, Te, Th, Ti, Tl, U, V, W, Y, Zn, Zr, La, Ce, Pr, Nd, Sm, Eu, Gd, Tb, Dy, Ho, Er, Tm, Yb, Lu, 87Sr / 86Sr, 143Nd / 144Nd, 206Pb / 204Pb, 207Pb / 204Pb, 208Pb / 204Pb, 176Hf / 177Hf, 176Lu / 177Hf, 187Os / 188Os, 10Be / Be, 3He / 4He, 87Rb/86Sr, 147Sm/144Nd, 238U/206Pb, 235U/207Pb, 232Th/208Pb
Standard items are:
SiO2, TiO2, Al2O3, Cr2O3, Fe2O3, Fe2O3 Total, FeO, FeO Total, NiO, MnO, MgO, CaO, Na2O, K2O, P2O5, LOI, H2O, H2O-, H2O+, S, Co2, F, Cl, Ag, As, Au, B, Ba, Be, Bi, Cd, Co, Cr, Cs, Cu, Ga, Hf, Hg, I, Ir, K, Li, Mn, Mo, Nb, Ni, Os, Pb, Pd, Pt, Rb, Re, S, Sb, Sc, Se, Sn, Sr, Ta, Te, Th, Ti, Tl, U, V, W, Y, Zn, Zr, La, Ce, Pr, Nd, Sm, Eu, Gd, Tb, Dy, Ho, Er, Tm, Yb, Lu, 87Sr / 86Sr, 143Nd / 144Nd, 206Pb / 204Pb, 207Pb / 204Pb, 208Pb / 204Pb, 176Hf / 177Hf, 176Lu / 177Hf, 187Os / 188Os, 10Be / Be, 3He / 4He, 87Rb/86Sr, 147Sm/144Nd, 238U/206Pb, 235U/207Pb, 232Th/208Pb
outputitems
Comma-separated list of items to be displayed. Items will be shown in html,csv, and xml output in order provided in the
GET variable. This is an enumerated value. Possible values can be found in the EarthChem SOAP search schema.
showcolumnnames
Control display of column names in CSV and HTML output modes. Possible values are yes and no. Default value is no.
Example 1:
Show method level html output for samples matching author "smith". Include
Sample ID, Source, Longitude, and Latitude.
HTTP Link:
Example 2:
Show method level xml output for samples located in western Kansas. Include Sample ID
and standard output items.
HTTP Link:
Example 3:
Show static map of samples between 55 and 56 Ma in the western United States.
HTTP Link:
Example 4:
Retrieve a JSONP document of samples from Kansas. The Javascript function is "myJSFunction"
HTTP Link:


About Preston
Innovative self-starter with over 7 years of service dedicated to increasing awareness
and participation in cultural, religious, political and social issues of importance to citizens of
the U.S. and abroad. Experienced relationship builder, fundraiser, program leader, counselor, and
multi-instrument musician with extensive international network, including bilingual abilities in
English and Hebrew. Recipient of the Rabbi Jill Kreitman Homiletics Prize.
Get in touch


Man jailed for sending Anna Soubry MP letter saying 'Cox was first you are next'
A man who sent a ‘sickening’ death threat to Anna Soubry MP has been jailed.
Alden Bryce Barlow, 55, was tracked down using finger print analysis and CCTV from the post office where he sent it.
He wrote in a letter: ‘COX WAS FIRST YOU ARE NEXT’.
Barlow, from Doncaster, admitted sending a letter conveying a threatening message and was sentenced to 12 months in jail at Sheffield Crown Court.
He was also given a 10-year restraining order against Ms Soubry, who is standing as a candidate for The Independent Group for Change (TIGfC) in the General Election.
The letter arrived at the MP’s constituency office in Broxtowe, Nottingham, on October 14 this year and was opened by a member of staff, the Crown Prosecution Service (CPS) said.
Ms Soubry, leader of the TIGfC, was previously a Conservative and had several ministerial jobs under David Cameron.
Advertisement Advertisement
Chief Crown prosecutor Gerry Wareham called the note ‘sickening’ and ‘ominous’ and described it as an ‘attack on democracy’.
He said: ‘Ms Soubry and her staff in the constituency office understandably found the message deeply disturbing and highly offensive.
‘I hope the sentence Barlow received today is of some comfort to Ms Soubry and her colleagues and a deterrent to anyone else contemplating such despicable actions against a parliamentary representative or candidate.’
Mrs Cox was Labour MP for Batley and Spen when she was stabbed and shot outside a constituency surgery in Birstall, West Yorkshire, in 2016.
Got a story for Metro.co.uk?
Get in touch with our news team by emailing us at<EMAIL_ADDRESS>For more stories like this, check our news page.


 %}
{% crispy notification_form %}{% trans "You can use any of the following services to log in to your account." %}
{% include "ksp_login/parts/associated_accounts_list.html" %}{% url "account_password" as passwd_url %} {% blocktrans %} You can change your password here. {% endblocktrans %}


{% extends "tutorial.html" %} {% block head %} {% endblock %} {% block iscompatible %} return Modernizr.draganddrop; {% endblock %} {% block content %}
For years, we've been using libraries like JQuery and Dojo to simplify complex UI elements like animations, rounded corners, and drag and drop. There's no doubt, eye-candy is important for making rich, immersive experiences on the web. But why should a library be required for common tasks that all developers are using?
Drag and drop
(DnD) is a first class citizen in HTML5! The spec defines an event-based mechanism, JavaScript API,
and additional markup for declaring that just about any type of element be draggable
on a page.
I don't think anyone can argue against native browser support for a particular feature.
Native browser DnD means faster, more responsive web apps.
Many apps that utilize DnD would have a poor experience without it. For example, imagine a chess game in which the pieces don't move. Oops! Although browser support is fairly complete, determining if a browser implements DnD (or any HTML5 feature for that matter) is important for providing a solution that degrades nicely. When/where DnD isn't available, fire up that library fallback to maintain a working app.
If you need to rely on an API, always use feature detection rather than sniffing the browser's User-Agent. One of the better libraries for feature detection is Modernizr. Modernizr sets a boolean property for each feature it tests. Thus, checking for DnD is a one-liner:
if (Modernizr.draganddrop) { // Browser supports HTML5 DnD. } else { // Fallback to a library solution. }
Making an object draggable is simple. Set the draggable=true
attribute
on the element you want to make moveable. Just about anything can be drag-enabled,
including images, links, files, or other DOM nodes.
As an example, let's start creating rearrangeable columns. The basic markup may look something like this:

A

B

C

It's worth noting that in most browsers, text selections, img elements, and anchor
elements with an href
attribute are draggable by default. For example, dragging
the logo on google.com produces a ghost image:
which can be dropped in the address bar, a <input type="file" />
element, or even
the desktop. If you want to enable other types of content to be draggable, you'll need to leverage the HTML5
DnD APIs.
Using a little CSS3 magic we can spruce up our markup to look like columns.
Adding cursor: move
gives users a visual indicator that something is moveable:

Result (draggable but won't do anything):
In the example above, most browsers will create a ghost image of the content being dragged. Others (FF in particular) will require that some data be sent in the drag operation. In the next section, we'll start to make our column example more interesting by adding listeners to process the drag/drop event model.
There are a number of different events to attach to for monitoring the entire drag and drop process:
dragstart
drag
dragenter
dragleave
dragover
drop
dragend
To handle the DnD flow, we need the notion of a source element (where the drag originates), the data payload (what we're trying to drop), and a target (an area to catch the drop). The source element can be an image, list, link, file object, block of HTML...you name it. The target is the drop zone (or set of drop zones) that accepts the data the user is trying to drop. Keep in mind that not all elements can be targets (e.g. images).
Once you have draggable="true"
attributes defined on your content, attach
dragstart
event handlers to kick off the DnD sequence for each column.
This code will set the column's opacity to 40% when the user begins dragging it:
function handleDragStart(e) { this.style.opacity = '0.4'; // this / e.target is the source node. } var cols = document.querySelectorAll('#columns .column'); [].forEach.call(cols, function(col) { col.addEventListener('dragstart', handleDragStart, false); });
Result:
Since the dragstart
event's target is our source element,
setting this.style.opacity
to 40% gives the user visual feedback that the element
is the current selection being moved. One thing that we still need to do is return the columns opacity
to 100% once the drag is done. An obvious place to handle that is the dragend
event.
More on this later.
dragenter
, dragover
, and dragleave
event handlers can be used to
provide additional visual cues during the drag process. For example, when a column is hovered over during a drag,
its border could become dashed. This will let users know the columns are also drop targets.

function handleDragStart(e) { this.style.opacity = '0.4'; // this / e.target is the source node. } function handleDragOver(e) { if (e.preventDefault) { e.preventDefault(); // Necessary. Allows us to drop. } e.dataTransfer.dropEffect = 'move'; // See the section on the DataTransfer object. return false; } function handleDragEnter(e) { // this / e.target is the current hover target. this.classList.add('over'); } function handleDragLeave(e) { this.classList.remove('over'); // this / e.target is previous target element. } var cols = document.querySelectorAll('#columns .column'); [].forEach.call(cols, function(col) { col.addEventListener('dragstart', handleDragStart, false); col.addEventListener('dragenter', handleDragEnter, false); col.addEventListener('dragover', handleDragOver, false); col.addEventListener('dragleave', handleDragLeave, false); });
There are a couple of points worth covering in this code:
this
/e.target
changes for each
type of event, depending on where we are in the DnD event model.e.preventDefault()
in the dragover
event. Another good practice is to return false
in that same handler.
Browsers are somewhat inconsistent about needing these, but they don't hurt to add.dragenter
is used to toggle the 'over' class instead
of the dragover
. If we were to use dragover
,
our CSS class would be toggled many times as the event dragover
continued
to fire on a column hover. Ultimately, that would cause the browser's renderer to do a
large amount of unnecessary work. Keeping redraws to a minimum is always a good idea.To process the actual drop, add an event listener for the drop
and dragend
events. In this handler, you'll need to prevent
the browser's default behavior for drops, which is typically some sort of annoying redirect.
You can prevent the event from bubbling up the DOM by calling e.stopPropagation()
.
Our column example won't do much without the
drop
event in place, but before we do that, an immediate improvement
is to use dragend
to remove the 'over' class from each column:
... function handleDrop(e) { // this / e.target is current target element. if (e.stopPropagation) { e.stopPropagation(); // stops the browser from redirecting. } // See the section on the DataTransfer object. return false; } function handleDragEnd(e) { // this/e.target is the source node. [].forEach.call(cols, function (col) { col.classList.remove('over'); }); } var cols = document.querySelectorAll('#columns .column'); [].forEach.call(cols, function(col) { col.addEventListener('dragstart', handleDragStart, false); col.addEventListener('dragenter', handleDragEnter, false) col.addEventListener('dragover', handleDragOver, false); col.addEventListener('dragleave', handleDragLeave, false); col.addEventListener('drop', handleDrop, false); col.addEventListener('dragend', handleDragEnd, false); });
Result:
If you've been following closely up until now,
you may notice that our example still doesn't drop the column as expected.
Enter the DataTransfer
object.
The dataTransfer
property is where all the DnD magic happens.
It holds the piece of data sent in a drag action. dataTransfer
is
set in the dragstart
event and read/handled in the drop
event.
Calling e.dataTransfer.setData(format, data)
will set the object's content to the mimetype and data payload passed as arguments.
In our example, the data payload is set to the actual HTML of the source column:
var dragSrcEl = null;
function handleDragStart(e) {
// Target (this) element is the source node.
this.style.opacity = '0.4';
dragSrcEl = this;
e.dataTransfer.effectAllowed = 'move';
e.dataTransfer.setData('text/html', this.innerHTML);
}
Conveniently, dataTransfer
also has a getData(format)
for fetching the drag data by mimetype. Here is the modification to process the column drop:
function handleDrop(e) {
// this/e.target is current target element.
if (e.stopPropagation) {
e.stopPropagation(); // Stops some browsers from redirecting.
}
// Don't do anything if dropping the same column we're dragging.
if (dragSrcEl != this) {
// Set the source column's HTML to the HTML of the column we dropped on.
dragSrcEl.innerHTML = this.innerHTML;
this.innerHTML = e.dataTransfer.getData('text/html');
}
return false;
}
I've added a global var named dragSrcEl
as a convenience to facilitate the column swap.
In handleDragStart()
, the innerHTML
of the source column is stored in that variable and later
read in handleDrop()
to swap the source column and target column's HTML.
Result:
The dataTransfer
object exposes properties to provide
visual feedback to the user during the drag process. These properties can also
be used to control how each drop target responds to a particular data type.
dataTransfer.effectAllowed
dropEffect
during the
dragenter
and dragover
events. The property can be set to the
following values: none
, copy
, copyLink
, copyMove
,
link
, linkMove
, move
, all
, and uninitialized
.
dataTransfer.dropEffect
dragenter
and
dragover
events. When the user hovers over a target element, the browser's cursor will
indicate what type of operation is going to take place (e.g. a copy, a move, etc.). The effect can
take on one of the following values: none
, copy
, link
, move
.
e.dataTransfer.setDragImage(imgElement, x, y)
var dragIcon = document.createElement('img'); dragIcon.src = 'logo.png'; dragIcon.width = 100; e.dataTransfer.setDragImage(dragIcon, -10, -10);
Result (you should see the Google logo when dragging these columns):
With the DnD APIs, it is possible to drag files from the desktop to your web app in the browser window. As an extension to this idea, Google Chrome supports the ability to drag file objects out from the browser to the desktop.
Dragging a file from the desktop is achieved by using the DnD events as other types of content.
The main difference is in your drop
handler. Instead of using
dataTransfer.getData()
to access the files, their data will be contained
in the dataTransfer.files
property:
function handleDrop(e) { e.stopPropagation(); // Stops some browsers from redirecting. e.preventDefault(); var files = e.dataTransfer.files; for (var i = 0, f; f = files[i]; i++) { // Read the File objects in this FileList. } }
For a complete guide to dragging files from desktop to the browser, see Using drag and drop for selecting in Reading local files in JavaScript.
For a complete guide to dragging files from the browser to the desktop, see Drag out files like Gmail from the CSS Ninja.
Here is the final product with a little more polish and a counter for each move:
The interesting thing about the column sample is that the columns are both a drag source and a drop target. A more common scenario is for the source and target elements to be different. See html5demos.com/drag for a demo.
No one will argue that HTML5's DnD model is complicated compared to other solutions like JQuery UI. However, any time you can take advantage of the browser's native APIs, do so! After all, that's the whole point of HTML5...which is to standardize and make available a rich set of APIs that are native to the browser. Hopefully popular libraries that implement DnD functionality will eventually include native HTML5 support by default, and fallback to a custom JS solution as needed.


Welcome to the Club!
To verify your address, visit www.example.com/verify and use the activation code below.
{{activate_code}}


Gentrification is the process of fiscal transformation of a community in an affluent direction. The process itself does not depend on a specific event, but to be described as "gentrified" a community would experience these changes in a relatively brief period of time. In this analysis, we use the financial markers to determine gentrification status and eligibility—based on the methodology from governing.com.
To be eligible for gentrification, a tract must start the decade at an economic disadvantage. As a formal measure, we consider a tract eligible if both the median household income and median home value in 2000 are below the 40th percentile for the surrounding city, like the community represented here.
In the long run, a gentrified area's median income is expected to rise. However, income can lag behind other metrics, and may not show signs of long-term growth in the first ten years, so we rely on other predictors of eventual income growth, and only use income directly to verify eligibility.
In the place of income, this analysis uses the home value and educational attainment as financial indicators to evaluate growth of a locality, as these metrics tend to be leading indicators of growth, rather then lagging indicators.
As we saw when evaluating eligibility, this community already has a fairly low median home value, leaving it plenty of room for growth. The dashed line shows an average rate of home value increase—the 50th percentile of growth rates in the city.
Regardless of its starting point, to be considered gentrified, a tract must show above average growth. This tract's actual growth line rises above the average, so it meets this criterion.
Educational attainment—measured here as the percentage of residents with at least a four year college degree—provides a good leading indicator of eventual income growth. A gentrifying community will often see an influx of recent college graduates, who have initially lower incomes, but high potential for future earnings.
As with median home value, the dashed line represents average ten-year growth in the city. Whatever the starting point, educational attainment growth rates must be above this average.
We can see here that the example tract meets the requirement for educational attainment growth, the final criterion to consider a tract gentrified.
So, because median household income and median home value started on the low end—below the 40th percentile in 2000—and because home value and the percentage of college educated population have risen at above average rates over the ten-year span, this census tract would be considered gentrified.
Gentrification is a complex issue, and no simple metric like this can capture the intricacies of an on-the-ground qualitative assessment. But having a formal, quantitative definition can be extremely useful for broad historical analysis.


Find out what type of pet you should own by taking this short quiz! Designed by Paige Allen.
Last updated during sprint 5, November first.
Description :This is a short quiz with questions that will help determine what pet fits someone's circumstances and responsibility skills.
Feautures I believe I will have time to incorpoarte are skills I learned from our matchmaker
activity, by users entering an answer and at the end, their results will be displayed to them.
If there was more time, I would incorporate pictures with all of the questions and results to make it more appealing.
Python3 Language will be used, correctly using python in visual studio code and being able to run the file will demonstrate skills that I have learned in class.
I haven't deicded how to make this go beyond skills I don't know, possibly by hosting my quiz so you can access it from a webpage.


| 1 |
| e01b |
| CS24 W18 |
| Name: | |
|---|---|
| (as it would appear on official course roster) | |
| Umail address: | @umail.ucsb.edu |
EXAM: e01b: Practice Midterm Exam 'B'
| ready? | date | points |
|---|---|---|
| true | Thu 07/07 09:30AM |
You may not collaborate on this exam with anyone. If you need to use the restroom, you must leave your cell phone with the exam proctor before leaving the room.
- Write your name at the top of this page AND EVERY ODD NUMBERED PAGE.
- Double check that you turned in ALL pages; look for "End of Exam" on the last page.
- This exam is closed book, closed notes, closed mouth, cell phone off.
- You are permitted one sheet of paper (max size 8.5x11") on which to write notes.
- This sheet will be collected with the exam, and might not be returned.
- Please write your name on your notes sheet.
Note: This is not a “complete” 100 point practice exam. This is a place I’ll put additional example problems as I encounter them between now and the exam on Thursday.
For a full 100 point practice exam, click here..
-
(20 pts) For practice exam purposes: This exercise is a variation on the exercise on p. 266 in HFJ. The answer to that one appears in the book, so I suggest you try that one first, then check your answer before attempting this problem.
On the handout there is some code. Your job: figure out after which line of main() each of the following objects is eligible for garbage collection.
If an object is still not eligible for garbage collection when the last line of main is reached, write “never”. Your answer should be one of the line numbers that appears in comments in main (e.g.
/* 3 */
or/* 7 */
) or the word “never”.Object Fill in line here (a) Fido
(b) Rover
(c) Princess
(d) Spot
(e) Snoopy
-
(Problem 12 from CS56 W12 Midterm 2) For this question, you need the additional handout with code for these files:
Book.java
,Product.java
,Shippable.java
,Song.java
.You may assume that all of the code for Question 2 on the handout compiles—I’ve checked that this is true. Now consider the code for the
Q2
class below, which does contain some errors, and as a result, will NOT compile.Please do these things with this “broken” code for the Q2 class:
-
(10 pts) Several lines need to be eliminated from this file in order to make it compile. Find the lines that are bogus, and draw a line through each of them in the code listing above. Hint: By “several”, I mean more than 2, and fewer than 10. Start by determining which, if any, of the constructors are bogus. Then, eliminate any lines that refer to the variables created on those lines. Finally, check all of the remaining method calls.
You will lose two points each time you striking a line that is not bogus, and you will lose two points for failing to strike any line that IS bogus. So, choose wisely.
/* 1*/ public class Q2 { /* 2*/ public static void main (String [] args) { /* 3*/ /* 4*/ Book gp = new Book("Pratchett","Going Postal",799,0.15); /* 5*/ Song br = new Song("Lady Gaga","Bad Romance"); /* 6*/ Product slts = new Song("Nirvana","Smells Like Teen Spirit",79); /* 7*/ Shippable hp = new Book("Rowling","Harry Potter & the Polymorphic Polyp",652,1.5); /* 8*/ Shippable ttc = new Shippable("Dickens","Tale of Two Cities",999,1.5); /* 9*/ /*10*/ System.out.println("a:" + gp.getTitle()); /*11*/ System.out.println("b:" + br.getArtist()); /*12*/ System.out.println("c:" + br.getPrice()); /*13*/ System.out.println("d:" + slts.getPrice()); /*14*/ System.out.println("e:" + slts.getTitle()); /*15*/ System.out.println("f:" + hp.getPrice()); /*16*/ System.out.println("g:" + hp.getWeight()); /*17*/ System.out.println("h:" + hp.getTitle()); /*18*/ System.out.println("i:" + ttc.getPrice()); /*19*/ System.out.println("j:" + ttc.getPrice()); /*20*/ /*21*/ } // main method /*22*/ } // class Q2
-
(10 pts) After striking through the bogus lines, the remaining code should compile and run. So, indicate what the output will be (if any) below. Be precise. If there will no output, write “no output”.
-


User authentication is finished.
All updatable attributes are updated. (default behaviour)
Or a custom action can be triggered. (such as redirection to this page)
| Attribute | Current | From mojeID |
|---|---|---|
| Username | {{ user.username }} | {{ username.0 }} |
| First name | {{ user.first_name }} | {{ first_name.0 }} |
| Last name | {{ user.last_name }} | {{ last_name.0 }} |
| {{ user.email }} | {{ email.0 }} |


Package it.unimi.dsi.fastutil.booleans
Provides type-specific classes for boolean elements or keys.
Not all classes are provided in a boolean-specific version: sorted
sets and maps not generated (as they are completely
useless). Unsorted sets and maps are kept for orthogonality, whereas
BooleanCollection
is used by maps with boolean values.
-
Interface Summary Interface Description BooleanBidirectionalIterable A type-specificIterable
that further strengthens the specification ofIterable.iterator()
.BooleanBidirectionalIterator A type-specific bidirectional iterator; provides an additional method to avoid (un)boxing, and the possibility to skip elements backwards.BooleanBigList A type-specificBigList
; provides some additional methods that use polymorphism to avoid (un)boxing.BooleanBigListIterator A type-specificBigListIterator
.BooleanCollection A type-specificCollection
; provides some additional methods that use polymorphism to avoid (un)boxing.BooleanComparator A type-specificComparator
; provides methods to compare two primitive types both as objects and as primitive types.BooleanConsumer A type-specificConsumer
; provides methods to consume a primitive type both as object and as primitive.BooleanHash A type-specificHash
interface.BooleanHash.Strategy A type-specific hash strategy.BooleanIterable A type-specificIterable
that strengthens that specification ofBooleanIterable.iterator()
andBooleanIterable.forEach(Consumer)
.BooleanIterator A type-specificIterator
; provides an additional method to avoid (un)boxing, and the possibility to skip elements.BooleanList A type-specificList
; provides some additional methods that use polymorphism to avoid (un)boxing.BooleanListIterator A type-specific bidirectional iterator that is also aListIterator
.BooleanSet A type-specificSet
; provides some additional methods that use polymorphism to avoid (un)boxing.BooleanStack A type-specificStack
; provides some additional methods that use polymorphism to avoid (un)boxing. -
Class Summary Class Description AbstractBooleanBidirectionalIterator Deprecated. As of fastutil 8 this class is no longer necessary, as its previous abstract methods are now default methods of the type-specific interface.AbstractBooleanBigList An abstract class providing basic methods for big lists implementing a type-specific big list interface.AbstractBooleanBigList.BooleanSubList A class implementing a sublist view.AbstractBooleanBigListIterator Deprecated. As of fastutil 8 this class is no longer necessary, as its previous abstract methods are now default methods of the type-specific interface.AbstractBooleanCollection An abstract class providing basic methods for collections implementing a type-specific interface.AbstractBooleanIterator Deprecated. As of fastutil 8 this class is no longer necessary, as its previous abstract methods are now default methods of the type-specific interface.AbstractBooleanList An abstract class providing basic methods for lists implementing a type-specific list interface.AbstractBooleanList.BooleanSubList A class implementing a sublist view.AbstractBooleanListIterator Deprecated. As of fastutil 8 this class is no longer necessary, as its previous abstract methods are now default methods of the type-specific interface.AbstractBooleanSet An abstract class providing basic methods for sets implementing a type-specific interface.AbstractBooleanStack Deprecated. As of fastutil 8 this class is no longer necessary, as its previous abstract methods are now default methods of the type-specific interface.BooleanArrayList A type-specific array-based list; provides some additional methods that use polymorphism to avoid (un)boxing.BooleanArrays A class providing static methods and objects that do useful things with type-specific arrays.BooleanArraySet A simple, brute-force implementation of a set based on a backing array.BooleanBigArrayBigList A type-specific big list based on a big array; provides some additional methods that use polymorphism to avoid (un)boxing.BooleanBigArrays A class providing static methods and objects that do useful things with big arrays.BooleanBigListIterators A class providing static methods and objects that do useful things with type-specific iterators.BooleanBigListIterators.BigListIteratorListIterator A class exposing a list iterator as a big-list iterator..BooleanBigListIterators.EmptyBigListIterator A class returning no elements and a type-specific big list iterator interface.BooleanBigListIterators.UnmodifiableBigListIterator An unmodifiable wrapper class for big list iterators.BooleanBigLists A class providing static methods and objects that do useful things with type-specific big lists.BooleanBigLists.EmptyBigList An immutable class representing an empty type-specific big list.BooleanBigLists.ListBigList A class exposing a list as a big list.BooleanBigLists.Singleton An immutable class representing a type-specific singleton big list.BooleanBigLists.SynchronizedBigList A synchronized wrapper class for big lists.BooleanBigLists.UnmodifiableBigList An unmodifiable wrapper class for big lists.BooleanCollections A class providing static methods and objects that do useful things with type-specific collections.BooleanCollections.EmptyCollection An immutable class representing an empty type-specific collection.BooleanCollections.IterableCollection A collection wrapper class for iterables.BooleanCollections.SynchronizedCollection A synchronized wrapper class for collections.BooleanCollections.UnmodifiableCollection An unmodifiable wrapper class for collections.BooleanComparators A class providing static methods and objects that do useful things with comparators.BooleanIterators A class providing static methods and objects that do useful things with type-specific iterators.BooleanIterators.EmptyIterator A class returning no elements and a type-specific iterator interface.BooleanIterators.UnmodifiableBidirectionalIterator An unmodifiable wrapper class for bidirectional iterators.BooleanIterators.UnmodifiableIterator An unmodifiable wrapper class for iterators.BooleanIterators.UnmodifiableListIterator An unmodifiable wrapper class for list iterators.BooleanLists A class providing static methods and objects that do useful things with type-specific lists.BooleanLists.EmptyList An immutable class representing an empty type-specific list.BooleanLists.Singleton An immutable class representing a type-specific singleton list.BooleanLists.SynchronizedList A synchronized wrapper class for lists.BooleanLists.SynchronizedRandomAccessList A synchronized wrapper class for random-access lists.BooleanLists.UnmodifiableList An unmodifiable wrapper class for lists.BooleanLists.UnmodifiableRandomAccessList An unmodifiable wrapper class for random-access lists.BooleanOpenHashSet A type-specific hash set with with a fast, small-footprint implementation.BooleanSets A class providing static methods and objects that do useful things with type-specific sets.BooleanSets.EmptySet An immutable class representing the empty set and implementing a type-specific set interface.BooleanSets.Singleton An immutable class representing a type-specific singleton set.BooleanSets.SynchronizedSet A synchronized wrapper class for sets.BooleanSets.UnmodifiableSet An unmodifiable wrapper class for sets.


Golf Extension
Description
The general idea is: to use special golf ball gun to create 3D object ib the sky.
This feature will be interesting as is like a perfomance, and like tools for new golf ruls extensions.
Golf ball gun is controlled by PLC wich is used video stream and environment sensor.
User may choose objects from presets.
Another user case is: web cam shoot flying ball and create 3D objects as a border.
It will be possible to use multi-color balls with one type markers - control balls - for check environments changing.
We are sure that this installation diversifies classical golf and will allow to create new interesting game clones.
Project status
We have demo software and hardware sensors, but we haven't gun in metall, it's needed develop.
If you are interested in our development and you have unlimited access to golf field and equipment for installation testing, please contact with us.
On completion of development and creation of a test sample we need one and a half years.
We will be glad to cooperation with you.
Wireless power installation
Description
There is a need to facilitate of aircraft. We suggest to remove power installation/battery from aircraft.
Having a steady source of energy the aircraft is in the air can so long as it is needed.
The principle of werk of the remote laser power device is shown in the figures.
Installed on the platform hinge with the laser. The laser can be twisted in space.
On power device the camera is installed, which accompanies the aircraft. The controller monitors the behavior of the aircraft space and transmits signals to the
motion controller which accompanies the object.
In theory, laser system hasn't restrictions on capacity.
Project status
It was tested laser power of 400Wt. In theory, the transmission distance is limited by the energy dissipation in the atmosphere,
which can be overcome by increasing the laser power.
Using a single installation makes the restriction on use. Energy is transferred only within visible area. If the laser beam is overlapped by another object or
aircraft flies into an invisible zone, the power supply is stopped.
Research is needed to use several power base.
Surveys need to be addressed synchronization and protection from excess capacity.
Also, studies are needed to optimize the conversion mechanism of the laser beam into an electric current. In the current implementation, we use sensors based on conversation of thermal energy into electrical energy.
To design and build a prototype is necessary for one to two years.
We will be glad to cooperation with you.


Trace Analysis Action
Trace Analysis is a new Analysis Action. This test measures the length of individual traces for each line width, and reports the longest and shortest trace that occurs in each line width. The test analyzes all lines in the layer whose line width falls between 0 to the value of the max_line_width ERF variable.
What is a trace?
A trace is a set of lines
or set of arc features. A trace must begin from a pad. It can end in one of
four ways:
1. Enters another Pad.
2. Stub line (this stub line will
be taken into consideration when calculating the trace's length).
3. Enters a Surface or drawn
area.
4. Connects with another line /
arc of the same dimensions, with another line of a different width, or with a
different symbol.
The length of a trace is measured
by the length of the skeleton of the line containing the trace, from the
beginning of the trace until its end.
Shaved lines and shaved arcs will
not be considered as part of a trace.
Lines / Arcs which are drawn with
special symbols will not be considered as part of a trace.
Lines with the following
attributes will be ignored: .pattern_fill, .sliver_fill, .tear_drop.
If the pad is fully embedded in
the line, it will not break the trace.
If there are features near the
lines being analyzed that have the attributes .sliver_fill or .tear_drop,
these neighboring features will be ignored.
Any filters that may be applied to this check (apply to
selected features, run inside window, or usage of mask mechanism)
will be applied to the pads that begin
the trace. For example, if running in inside window mode, any trace that
begins with a
pad that is inside the window will be reported, even though some of its parts are outside the window.
Reports
The action will report, for each line width, the longest trace and the shortest trace that was measured.
The action will generate for output…
- two separate categories for each line width tested
- a table that summaries all measurements.
A table which summaries all measurements made. A sample
table is given below.
Attributes
Each
attribute displays the minimum or maximum trace_length for each line width.
The
attribute name is composed of the symbol name followed by phrase shortest_trace_len
or longest_trace_len.
Example
f03_r3.940_shortest_trace_len = 0.416
f03_r3.940_longest_trace_len = 0.443
f03_r4.920_shortest_trace_len = 0.007
f03_r4.920_longest_trace_len = 10.846
f03_r5.910_shortest_trace_len = 1.517
f03_r5.910_longest_trace_len = 1.5246
Categories
For
each line width, two dynamic categories will be created - one for
the longest trace that was measured and one for the shortest trace. Each
category will contain the shapes that form the measured trace. The category
name will be in the format:
<Shortest/Longest/Single_Trace>_<line
symbol name>_<Layer's Name>_<length in inch/mm>_<inch/mm>.
To see
the complete trace, select the desired category and select Show
All. You can also search through the shapes that form the trace. The
elements <line symbol name> and <Layer's Name> in the
category name will be defined according to the units that were used when the
action was activated.
In
cases where only one trace was measured for a given line width, the category name
will begin with Single.


@(params: Map[String, Any]) @uk.gov.hmrc.hmrcemailrenderer.templates.helpers.html.template_main(params, "VAT Return Direct Debit Instruction: cannot be used") {
Dear @params("NAME")
Direct Debit mandate reference @params("DDIREFERENCE")
Your bank has told us we cannot collect payments using this Instruction.
If you still wish to pay by Direct Debit, you need to set up a new Instruction.
From HMRC Direct Debit Team
}


Grand PrIEEE is an undergraduate design competition (formerly) sponsored by ViaSat and hosted by UC San Diego. Teams of undergraduate students design, build, and race an autonomous car which must follow a track marked by white tape on dark-colored carpet. Under the tape, there is a wire carrying a 100mA rms 75kHz sinusoidal signal. The fastest cars travel at average speeds of up to 10ft/s. IEEE UCSD provides funding for several teams to compete.
The goal of the Grand PrIEEE project is to build an autonomous 1/10 scale RC car car that can race around track marked by a wire carrying a sinusoidal current. Two potential approaches are optics and magnetics. Since the course is marked by white tape, an optical approach might use a camera and image processing to try to "see" the track and determine the car’s position and orientation relative to the track. The electromagnetic approach relies on Faraday’s law of induction, which states that the induced electromotive force or EMF in any closed circuit is equal to the time rate of change of the magnetic flux through the circuit. If you place a coil near the track, a sinusoidally-varying EMF will be induced in the coil, the magnitude of which will depend on the coil’s orientation and distance from the wire. One can then feed this signal into a controller which will actuate the car’s steering mechanism to steer the car back on track.
The competition is held annually in April or May in the form of a race. The team with the lowest total time, including penalties, wins!


提醒框可以使用 .alert-box 类创建, 可以添加可选的类： .secondary, .success, .info, .warning 或 .alert:
This is a default alert box.
This is a secondary alert box.
Success! This alert box indicates a successful or positive action.
Info! This alert box indicates a neutral informative change or action.
Warning! This alert box indicates a warning that might need attention.
Alert! This alert box indicates a dangerous or potentially negative action.
圆角提醒框
.radius 和 .round 类用于为提醒框添加圆角：
Success! Alert box with a radius.
Info! Alert box that is rounded.
关闭提醒框
This is a default alert box.
×
This is a secondary alert box.
×
Success! This alert box indicates a successful or positive action.
×
Info! This alert box indicates a neutral informative change or action.
×
Warning! This alert box indicates a warning that might need attention.
×
Alert! This alert box indicates a dangerous or potentially negative action.
×


| Total net profit | -21.76 | Gross profit | 62.09 | Gross loss | -83.85 |
| Profit factor | 0.74 | Expected payoff | -0.21 | ||
| Absolute drawdown | -25.96 | Maximal drawdown (%) | 37.24 (330.14%) | ||
| Total trades | 105 | Profit trades (% of total) | 56 (53.33%) | Loss trades (% of total) | 49 (46.67%) |
| Long positions (won %) | 61 (52.46%) | Short positions (won %) | 44 (54.55%) | ||
| Largest | profit trade | 6.59 | loss trade | -4.06 | |
| Average | profit trade | 1.11 | loss trade | -1.71 | |
| Minimum | profit trade | 0.1 | loss trade | -0.01 | |
| Maximum | take profit in pips | 69.7 | stop loss in pips | -41.0 | |
| Average | take profit in pips | 12.1 | stop loss in pips | -21.0 | |
| Minimum | take profit in pips | -1.8 | stop loss in pips | -6.5 | |
| Maximum | Reward-Risk | 3.4 | Duration in minutes | 899 | |
| Average | Reward-Risk | 0.7 | Duration in minutes | 149.8 | |
| Minimum | Reward-Risk | 0.0 | Duration in minutes | 0 | |
| Maximum | consecutive wins (profit in money) | 9.0 (10.14) | consecutive losses (loss in money) | 6.0 (-8.16) | |
| Average | consecutive wins | 2.0 | consecutive losses | 2.0 |
| Total net profit | -24.06 | Gross profit | 29.66 | Gross loss | -53.72 |
| Profit factor | 0.55 | Expected payoff | -0.39 | ||
| Absolute drawdown | -27.94 | Maximal drawdown (%) | 30.11 (1387.56%) | ||
| Total trades | 61 | Profit trades (% of total) | 32 (52.46%) | Loss trades (% of total) | 29 (47.54%) |
| Largest | profit trade | 2.39 | loss trade | -4.06 | |
| Average | profit trade | 0.93 | loss trade | -1.85 | |
| Minimum | profit trade | 0.1 | loss trade | -0.01 | |
| Maximum | take profit in pips | 32.0 | stop loss in pips | -41.0 | |
| Average | take profit in pips | 10.2 | stop loss in pips | -23.0 | |
| Minimum | take profit in pips | -1.8 | stop loss in pips | -6.5 | |
| Maximum | Reward-Risk | 2.4 | Duration in minutes | 855.0 | |
| Average | Reward-Risk | 0.6 | Duration in minutes | 158.6 | |
| Minimum | Reward-Risk | 0.0 | Duration in minutes | 0.0 | |
| Maximum | consecutive wins (profit in money) | 6.0 (4.69) | consecutive losses (loss in money) | 5.0 (-5.95) | |
| Average | consecutive wins | 2.0 | consecutive losses | 1.0 |
| Total net profit | 2.3 | Gross profit | 32.43 | Gross loss | -30.13 |
| Profit factor | 1.08 | Expected payoff | 0.05 | ||
| Absolute drawdown | -3.5 | Maximal drawdown (%) | 11.26 (109.0%) | ||
| Total trades | 44 | Profit trades (% of total) | 24 (54.55%) | Loss trades (% of total) | 20 (45.45%) |
| Largest | profit trade | 6.59 | loss trade | -2.89 | |
| Average | profit trade | 1.35 | loss trade | -1.51 | |
| Minimum | profit trade | 0.28 | loss trade | -0.73 | |
| Maximum | take profit in pips | 69.7 | stop loss in pips | -32.3 | |
| Average | take profit in pips | 14.7 | stop loss in pips | -18.3 | |
| Minimum | take profit in pips | 3.0 | stop loss in pips | -6.9 | |
| Maximum | Reward-Risk | 3.4 | Duration in minutes | 899.0 | |
| Average | Reward-Risk | 0.9 | Duration in minutes | 137.5 | |
| Minimum | Reward-Risk | Duration in minutes | 3.0 | ||
| Maximum | consecutive wins (profit in money) | 8.0 (9.19) | consecutive losses (loss in money) | 6.0 (-8.16) | |
| Average | consecutive wins | 2.0 | consecutive losses | 2.0 |


Stephen Rehill on January 18, 2016 in Content, Design
Making a claim for the benefit Personal Independence Payment (PIP) can take a long time time. It can often take up to 4 months from starting the application to getting your money (if you’re terminally ill your claim will be processed more quickly).
Emily Brunwin on January 1, 2016 in Content, Immigration
We’ve pushed the button on some brand new content – immigration advice for the public and advisers. It’s new territory – so why did we take the leap?
We’ve launched immigration advice for the public and advisers. It’s new territory – so why did we take the leap?
We’ve launched immigration advice for the public and advisers. It’s new territory – so why did we take the leap?
If you would like to test any of the new future research and testing you can sign up on the Get Involved page.
We no longer support Internet Explorer 8. To avoid problems viewing this website, please consider upgrading to Google Chrome.


|
|
def | __repr__ |
| |
|
def | __str__ |
| |
|
def | toXml |
| |
|
def | __init__ |
| |
|
def | merge |
| |
|
|
| freq |
| |
|
| termids |
| |
|
| termidFreqs |
| |
|
| termidRules |
| |
|
| combinations |
| |
|
|
int | freq = 0 |
| |
|
list | termids = [] |
| |
|
list | avgs = [] |
| |
|
int | avg = 0 |
| |
|
int | pctg = 0 |
| |
|
int | opctg = 0 |
| |
|
int | ll = 0 |
| |
|
int | surprise = 0 |
| |
|
int | entropy = 0 |
| |
|
int | gini = 0 |
| |
|
dictionary | termidFreqs = {} |
| |
|
dictionary | termidRules = {} |
| |
|
| document = None |
| |
The documentation for this class was generated from the following file:
- cheshire3/datamining/preParser.py


From Casper to Glossier, these 12 new brands transformed the world of retail in the last decade
by Irene Jiang, Business Insider US- In the last ten years, the way we shop, eat, and exercise has transformed drastically.
- Direct-to-consumer brands have taken over in the last 10 years, with products and mission values that resonate with consumers’ increasing focus on sustainability and social consciousness. They are also better equipped to meet the needs of an increasingly digital society.
- From Casper to Glossier, these 12 new brands transformed retail in the last decade.
- Sign up for Business Insider’s retail newsletter, The Drive-Thru, to get more stories like this in your inbox.
- Visit Business Insider’s homepage for more stories.
The future of retail is here, and it’s not in shopping malls.
In the last ten years, the way we shop, eat, and exercise has transformed drastically. Sure, malls may be dying along with the American dream. But out of their ashes arise a shiny new cohort of brands that live online, whose digital presence is exponentially more important than their physical presence.
Consumers are more aware than ever how their purchasing choices affect the world around them. As a result, the brands that have taken over retail during the last decade reflect the socially and environmentally conscious values of the newest consumer generation, as well as the increasingly digital lifestyles they lead.
From Casper to Glossier, these 12 new brands transformed the face of retail over the last 10 years.
& Other Stories
Founded in 2010, & Other Stories is an H&M-owned, largely direct-to-consumer brand that has thrived by utilizing Instagram to build a diehard community of chic young fans. & Other Stories was one of the first brands of its era to show that fashion doesn’t have to be bespoke to feel bespoke.
S’well
Before S’well launched in 2010, water bottles were mostly functional tools. But S’well turned the water bottle into a sleek, upscale fashion piece and identity statement. S’well positioned its drop-shaped bottle as a mascot for the war against plastic bottles, even though reusable bottles have been displacing plastic ones long before S’well came into the picture.
Warby Parker
Founded in 2010, Warby Parker is an online glasses startup that disrupted Luxottica’s dominance in the eyewear industry. The fashionable and impact-conscious retailer has become a household name over the course of the last decade, especially among young professionals.
Everlane
Founded in 2010, online-only retailer Everlane pioneered the “pay-what-you-want” policy for its chic sustainable clothing. In an effort to be transparent, Everlane’s website contains photos of all its factories along with information about them.
Peloton
Exercise is no longer a choice between working out at a gym or in your home. Now, thanks to companies like Peloton, you can work out at a virtual gym from the comfort of home, either with their bike or with their app. Founded in 2012, Peloton has made it possible to work out anywhere and still be in the encouraging hands of a charismatic celebrity trainer.
Thirdlove
Before Thirdlove was founded in 2013, buying a bra online was unthinkable for most women. But with its revolutionary half-cups and online fitting, Thirdlove promises a better-fitting bra, made by women for women. Look out, Victoria’s Secret.
Casper
Casper came onto the stage in 2013 and catapulted boxed mattresses into the urban yuppie lifestyle canon. Sure, there was Tuft & Needle before, but it was Casper that made boxed mattresses mainstream.
Glossier
Founded in 2014 by two beauty editors as a blog, “The Gloss” eventually became “Glossier” and beauty advice became beauty products. This direct-to-consumer brand promotes “less is more” makeup philosophy that is wildly popular with young women – and would have been unthinkable ten years ago.
Away
Warby Parker alumni founded Away in 2015, a direct-to-consumer luggage brand that sells luggage that’s designed to withstand the slings and arrows of modern air travel.
Rothy
Launched in 2016, Rothy’s combines feminism, practicality, and sustainability in one expensive but very functional package. Who’d have thought machine-washable ballet flats made from plastic bottles were what working women were waiting for all along?
White Claw Hard Seltzer
Millennials are ditching beer for other alternatives. They’re drinking less, and when they drink, they prioritize quality over quantity. Enter White Claw in 2016: a light, fruity, low-calorie alternative to beer, White Claw was the brand that sparked a hard-seltzer revolution.
Mirror
Mirror only launched in 2018, but it already promises to be the next step in the evolution of virtual fitness. A mirror that’s also a digital screen, Mirror displays a virtual gym class in real-time with real instructors and classmates.


?6
7
8
9
10
T
XT
-
The
New
York
copyright
reserved
botanical
Garden
BOTANICAL
vGARDEti/
NEW
YORK
BOTANICAL
GARDEN
01447482
PLANTS
OF
DOMINICA,
LESSER
ANTILLES
Ludwigia
octovalvis
(Jacq.)
Raven
Onagraceae
Det.
S.R.Hill
7/97
ST.
ANDREW
PARISH.
E
end
of
Melville
Hall
airport,
cow
pasture
near
dump
area
at
coast;
alt.
ca.
2
m.
With
grasses,
sedges,
Ludwigia,
Lindernia.
15
deg.
32'
40
"
N;
61
deg.
18'
W,
Londonderry
area.
Flowers
yellow,
petals
falling
early
and
easily;
plants
often
reddish.
Roots
spongy;
occasional
to
frequent
at
mud
margin.
Steven
R.
Hill
28871
With:
L.R.Phillippe
23
February
1997
01447482
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


Plain Text¶
This output is both for debugging and other tools that wish to extract DFA tables. It dumps the output to the console.
Plain text output can be selected using the -lang plain
command line
option.
Command Line Options¶
| Option | Version | Description |
|---|---|---|
-o <file> |
0.3+ | Specify the complete path for the output file. If this option is not specified, the default output is the console. |


Codes
Runable Python CMQCC Analysis
Runable Python Combined CMQCC and Numerical Risk and Stratification Codes - posted upon submission of publication:
Antepartum
Peripartum
Postpartum
Links for downloading Python to run these codes:
Installing Python
Installing Anaconda
Work developed for understanding volumetric/coagulation factor changes in pregnancy:
Physiologically-based Pharmacokinetic (PBPK) Model of Clotting in Pregnancy


--- layout: page title: CV main_image_path: /assets/images/Clare-at-workth.jpg image_caption: Clare at work images: - image_path: /upload/studio5.JPG image_title: Studio image_description: _options: image_path: width: 1200 height: 1200 resize_style: contain mime_type: image/jpeg main_image_path: width: 1200 height: 800 resize_style: contain mime_type: image/jpeg _comments: main_image_path: Image used to represent your page images: Add and edit your gallery images here image_description: May only be used in the close up of an image ---
Born in London, England. Brought up in Montreal, Canada. Lives in London and Gloucestershire with partner. Two sons.
Studied English and Theatre at McGill University, Montreal and Warwick University, UK.
Trained in Fine Art at Goldsmiths College and Islington Institute, London.
Trained in Printmaking at Oxford Printmakers
The Mall Gallery, London
Contemporary Print Show, London
A Woman's Touch, Singapore
Manchester Royal Exchange, Manchester
Glasgow Art Fair, StArt Art,
Chelsea Art Fair, Art Partnership
The Art on Paper Fair, Royal College of Art
Byard Art, Cambridge
Frivoli Gallery, London
The Gallery, Cork Street
Pyramid Gallery, York
Wiseman Gallery, Oxford
Cambridge Contemporary Art, Cambridge
New Ashgate Gallery, Farnham
Rye Gallery, Rye
Cupola Gallery, Sheffield
Affordable Art Fair, London
Montpelier Gallery, Cheltenham
Artspace, Henley
Maymie White, London
Christchurch Picture Gallery, Oxford
Board Member and Area Co-ordinator for Oxfordshire Artweeks.
Associate Member of Oxford Printmakers Co-operative
Member of Oxford Art Society
I look at the familiar with an unsettled glance, as well as a touch of humour. My figures are not assured in their place in the world. For them life is often a bit of a puzzle. Sometimes their world even spirals into the dreamlike and surreal. Things are not always as we think.
We all face constant change: uncertainty one moment and understanding the next. Frustration , then acceptance. Indecision, then resolution. But we quickly move on. I like to pause and capture some of these points in time. Just by looking, we are exposed.
I invite the viewer to become part of the moment and to question assumptions. Become part of the story and to observe or identify.
I explore the physicality, as well as the situation, of these people. By their very solidity, they are rooted to the spot. Possibly through choice, possibly through the inabilty to act. In the lithographs working on a piece of stone adds to the monumental nature of the figures. There is a sense of carving the images in two dimensions.
I hope that these pieces manage to stay fresh to the eye, as the discussion between the picture and the viewer continues over time, with new stories and new voices emerging.
Clare's work is often on view at:
Pyramid Gallery
43 Stonegate, York YO1 8AW
Tel 0194 641 187
www.pyramidgallery.com
Cupola Gallery
178 Midddlewood Road
Sheffield S6 1TD
01142 852 665
www.cupolagallery.com
Frivoli
7a Devonshire Road
Chiswick, London W4 2EU
Tel 020 8742 3255
Bowie and Hulbert
5 Market Street, Hay on Wye
Hereford HR3 5AF
Tel o1497 821 026
www.hayclay.co.uk
{{ image.image_description }}
{% endif %}


“Hello, World”¶
Bayesian estimation via Stan’s HMC-NUTS sampler¶
To exercise the essential functions of CmdStanPy we show how to run
Stan’s HMC-NUTS sampler to estimate the posterior probability
of the model parameters conditioned on the data,
using the example Stan model bernoulli.stan
and corresponding dataset bernoulli.data.json
which are
distributed with CmdStan.
This is a simple model for binary data: given a set of N observations of i.i.d. binary data y[1] … y[N], it calculates the Bernoulli chance-of-success theta.
data {
int<lower=0> N;
int<lower=0,upper=1> y[N];
}
parameters {
real<lower=0,upper=1> theta;
}
model {
theta ~ beta(1,1); // uniform prior on interval 0,1
y ~ bernoulli(theta);
}
The data file specifies the number of observations and their values.
{
"N" : 10,
"y" : [0,1,0,0,0,0,0,0,0,1]
}
Instantiate the Stan model, assemble the data¶
The CmdStanModel class manages the Stan program and its corresponding compiled executable. It provides properties and functions to inspect the model code and filepaths. By default, the Stan program is compiled on instantiation.
# import packages
import os
from cmdstanpy import cmdstan_path, CmdStanModel
# specify Stan program file
bernoulli_stan = os.path.join(cmdstan_path(), 'examples', 'bernoulli', 'bernoulli.stan')
# instantiate the model; compiles the Stan program as needed.
bernoulli_model = CmdStanModel(stan_file=bernoulli_stan)
# inspect model object
print(bernoulli_model)
Run the HMC-NUTS sampler¶
The CmdStanModel method sample
is used to do Bayesian inference
over the model conditioned on data using using Hamiltonian Monte Carlo
(HMC) sampling. It runs Stan’s HMC-NUTS sampler on the model and data and
returns a CmdStanMCMC object. The data can be specified
either as a filepath or a Python dict; in this example, we use the
example datafile bernoulli.data.json:
By default, the sample
command runs 4 sampler chains.
This is a set of per-chain
Stan CSV files
The filenames follow the template ‘<model_name>-<YYYYMMDDHHMM>-<chain_id>’
plus the file suffix ‘.csv’.
There is also a correspondingly named file with suffix ‘.txt’
which contains all messages written to the console.
If the output_dir
argument is omitted, the output files are written
to a temporary directory which is deleted when the current Python session is terminated.
# specify data file
bernoulli_data = os.path.join(cmdstan_path(), 'examples', 'bernoulli', 'bernoulli.data.json')
# fit the model
bern_fit = bernoulli_model.sample(data=bernoulli_data, output_dir='.')
# printing the object reports sampler commands, output files
print(bern_fit)
Access the sample¶
The CmdStanMCMC object provides properties and methods to access, summarize, and manage the sample and its metadata.
The sampler and model outputs from each chain are written out to Stan CSV files.
The CmdStanMCMC object assembles these outputs into a
numpy.ndarray which contains all across all chains arranged as (draws, chains, columns).
The draws
method returns the draws array.
By default, it returns the underlying 3D array.
The optional boolean argument concat_chains
, when True
,
will flatten the chains resulting in a 2D array.
bern_fit.draws().shape
bern_fit.draws(concat_chains=True).shape
To work with the draws from all chains for a parameter or quantity of interest
in the model, use the stan_variable
method to obtains
a numpy.ndarray which contains the set of draws in the sample for the named Stan program variable
by flattening the draws by chains into a single column:
draws_theta = bern_fit.stan_variable(name='theta')
draws_theta.shape
The draws array contains both the sampler variables and the model
variables. Sampler variables report the sampler state and end in __.
To see the names and output columns for all sampler and model
variables, we call accessor functions sampler_vars_cols
and
stan_vars_cols
:
sampler_variables = bern_fit.sampler_vars_cols
stan_variables = bern_fit.stan_vars_cols
print('Sampler variables:\n{}'.format(sampler_variables))
print('Stan variables:\n{}'.format(stan_variables))
The NUTS-HMC sampler reports 7 variables. The Bernoulli example model contains a single variable theta.
Summarize the results¶
CmdStan is distributed with a posterior analysis utility
stansummary
that reads the outputs of all chains and computes summary statistics
for all sampler and model parameters and quantities of interest.
The CmdStanMCMC method summary
runs this utility and returns
summaries of the total joint log-probability density lp__ plus
all model parameters and quantities of interest in a pandas.DataFrame:
bern_fit.summary()
CmdStan is distributed with a second posterior analysis utility
diagnose
which analyzes the per-draw sampler parameters across all chains
looking for potential problems which indicate that the sample
isn’t a representative sample from the posterior.
The diagnose
method runs this utility and prints the output to the console.
bern_fit.diagnose()
Save the Stan CSV files¶
The save_csvfiles
function moves the CmdStan CSV output files
to a specified directory.
bern_fit.save_csvfiles(dir='some/path')