module Array: ArrayLabels;
let length: array('a) => int;
let get: (array('a), int) => 'a;
ArrayLabels.get a n
returns the element number n
of array a
.
The first element has number 0.
The last element has number ArrayLabels.length a - 1
.
You can also write a.(n)
instead of ArrayLabels.get a n
.
Raise Invalid_argument "index out of bounds"
if n
is outside the range 0 to (ArrayLabels.length a - 1)
.
let set: (array('a), int, 'a) => unit;
ArrayLabels.set a n x
modifies array a
in place, replacing
element number n
with x
.
You can also write a.(n) <- x
instead of ArrayLabels.set a n x
.
Raise Invalid_argument "index out of bounds"
if n
is outside the range 0 to ArrayLabels.length a - 1
.
let make: (int, 'a) => array('a);
ArrayLabels.make n x
returns a fresh array of length n
,
initialized with x
.
All the elements of this new array are initially
physically equal to x
(in the sense of the ==
predicate).
Consequently, if x
is mutable, it is shared among all elements
of the array, and modifying x
through one of the array entries
will modify all other entries at the same time.
Raise Invalid_argument
if n < 0
or n > Sys.max_array_length
.
If the value of x
is a floating-point number, then the maximum
size is only Sys.max_array_length / 2
.
let create: (int, 'a) => array('a);
let init: (int, ~f: int => 'a) => array('a);
ArrayLabels.init n f
returns a fresh array of length n
,
with element number i
initialized to the result of f i
.
In other terms, ArrayLabels.init n f
tabulates the results of f
applied to the integers 0
to n-1
.
Raise Invalid_argument
if n < 0
or n > Sys.max_array_length
.
If the return type of f
is float
, then the maximum
size is only Sys.max_array_length / 2
.
let make_matrix: (~dimx: int, ~dimy: int, 'a) => array(array('a));
ArrayLabels.make_matrix dimx dimy e
returns a two-dimensional array
(an array of arrays) with first dimension dimx
and
second dimension dimy
. All the elements of this new matrix
are initially physically equal to e
.
The element (x,y
) of a matrix m
is accessed
with the notation m.(x).(y)
.
Raise Invalid_argument
if dimx
or dimy
is negative or
greater than Sys.max_array_length
.
If the value of e
is a floating-point number, then the maximum
size is only Sys.max_array_length / 2
.
let create_matrix: (~dimx: int, ~dimy: int, 'a) => array(array('a));
let append: (array('a), array('a)) => array('a);
ArrayLabels.append v1 v2
returns a fresh array containing the
concatenation of the arrays v1
and v2
.let concat: list(array('a)) => array('a);
ArrayLabels.append
, but concatenates a list of arrays.let sub: (array('a), ~pos: int, ~len: int) => array('a);
ArrayLabels.sub a start len
returns a fresh array of length len
,
containing the elements number start
to start + len - 1
of array a
.
Raise Invalid_argument "Array.sub"
if start
and len
do not
designate a valid subarray of a
; that is, if
start < 0
, or len < 0
, or start + len > ArrayLabels.length a
.
let copy: array('a) => array('a);
ArrayLabels.copy a
returns a copy of a
, that is, a fresh array
containing the same elements as a
.let fill: (array('a), ~pos: int, ~len: int, 'a) => unit;
ArrayLabels.fill a ofs len x
modifies the array a
in place,
storing x
in elements number ofs
to ofs + len - 1
.
Raise Invalid_argument "Array.fill"
if ofs
and len
do not
designate a valid subarray of a
.
let blit:
(
~src: array('a),
~src_pos: int,
~dst: array('a),
~dst_pos: int,
~len: int
) =>
unit;
ArrayLabels.blit v1 o1 v2 o2 len
copies len
elements
from array v1
, starting at element number o1
, to array v2
,
starting at element number o2
. It works correctly even if
v1
and v2
are the same array, and the source and
destination chunks overlap.
Raise Invalid_argument "Array.blit"
if o1
and len
do not
designate a valid subarray of v1
, or if o2
and len
do not
designate a valid subarray of v2
.
let to_list: array('a) => list('a);
ArrayLabels.to_list a
returns the list of all the elements of a
.let of_list: list('a) => array('a);
ArrayLabels.of_list l
returns a fresh array containing the elements
of l
.let iter: (~f: 'a => unit, array('a)) => unit;
ArrayLabels.iter f a
applies function f
in turn to all
the elements of a
. It is equivalent to
f a.(0); f a.(1); ...; f a.(ArrayLabels.length a - 1); ()
.let map: (~f: 'a => 'b, array('a)) => array('b);
ArrayLabels.map f a
applies function f
to all the elements of a
,
and builds an array with the results returned by f
:
[| f a.(0); f a.(1); ...; f a.(ArrayLabels.length a - 1) |]
.let iteri: (~f: (int, 'a) => unit, array('a)) => unit;
ArrayLabels.iter
, but the
function is applied to the index of the element as first argument,
and the element itself as second argument.let mapi: (~f: (int, 'a) => 'b, array('a)) => array('b);
ArrayLabels.map
, but the
function is applied to the index of the element as first argument,
and the element itself as second argument.let fold_left: (~f: ('a, 'b) => 'a, ~init: 'a, array('b)) => 'a;
ArrayLabels.fold_left f x a
computes
f (... (f (f x a.(0)) a.(1)) ...) a.(n-1)
,
where n
is the length of the array a
.let fold_right: (~f: ('b, 'a) => 'a, array('b), ~init: 'a) => 'a;
ArrayLabels.fold_right f a x
computes
f a.(0) (f a.(1) ( ... (f a.(n-1) x) ...))
,
where n
is the length of the array a
.let sort: (~cmp: ('a, 'a) => int, array('a)) => unit;
Pervasives.compare
is
a suitable comparison function, provided there are no floating-point
NaN values in the data. After calling ArrayLabels.sort
, the
array is sorted in place in increasing order.
ArrayLabels.sort
is guaranteed to run in constant heap space
and (at most) logarithmic stack space.
The current implementation uses Heap Sort. It runs in constant stack space.
Specification of the comparison function:
Let a
be the array and cmp
the comparison function. The following
must be true for all x, y, z in a :
cmp x y
> 0 if and only if cmp y x
< 0cmp x y
>= 0 and cmp y z
>= 0 then cmp x z
>= 0ArrayLabels.sort
returns, a
contains the same elements as before,
reordered in such a way that for all i and j valid indices of a
:cmp a.(i) a.(j)
>= 0 if and only if i >= jlet stable_sort: (~cmp: ('a, 'a) => int, array('a)) => unit;
ArrayLabels.sort
, but the sorting algorithm is stable (i.e.
elements that compare equal are kept in their original order) and
not guaranteed to run in constant heap space.
The current implementation uses Merge Sort. It uses n/2
words of heap space, where n
is the length of the array.
It is usually faster than the current implementation of ArrayLabels.sort
.
let fast_sort: (~cmp: ('a, 'a) => int, array('a)) => unit;
let unsafe_get: (array('a), int) => 'a;
let unsafe_set: (array('a), int, 'a) => unit;


You enter as guest!
Sign In/Sign Up
Add announcements
Car Trade
Car name
Price
min
max
Transmission
Automatic
Manual
CVT
DCT
Car body
Hatchback
Sedan
MPV
SUV
Crossover
Coupe
Engine
Diesel
Petrol
Gas
Hybrid
Engine volume
from
to
Show filtering
LIST ANNOUNCES
Authorization
×
Sign In
Registration
×
Sign Up


Contact Marlo
First Name
Last Name
Email
Reason for contacting
Message to Marlo
Type message here...
Back to homepage...


{% extends "registration/base.html" %} {% load bootstrap4 %} {% block title %}Research Scholar Application{% endblock %} {% block meta_description %}Request unmetered access to the cases made available by the Caselaw Access Project{% endblock %} {% block main_content %} {% if NEW_RESEARCHER_FEATURE %}
Please explain your project as an independent research scholar.
{% else %}If you are a research scholar and your work requires access to the full text of more than 500 cases per day, you may apply for unmetered access to the full text of all cases made available by the Caselaw Access Project.
To be eligible for unmetered access to the full text of all cases, you must demonstrate that you are a research scholar and you must enter into a special bulk access agreement with LexisNexis, which prohibits you from (1) using the cases for non-research purposes and (2) sharing the cases with others.
If you wish to apply for unmetered access, please complete the form below. If your eligibility is clear, LexisNexis will send send you a special bulk access agreement via Docusign. If there are any questions about your eligibility, then someone will be in touch with additional information. Please note that if you are an independent researcher unaffiliated with any academic or non-profit research institution, you should be especially detailed in your description of your work and research interest. This will better enable LexisNexis to evaluate your request.
Please contact us with any questions.
{% endif %} {% endblock %}


Create Account
Password must contain at least 6 characters.
Register
I have an account
Login
Let me in
Create Account
GET ME OUT OF HERE


| The film follows the artist as she prepares for what may be the most important moment of her life: a major retrospective of her work at The Museum of Modern Art in New York. To be given a retrospective at one of the world's premiere museums is, for any living artist, the most exhilarating sort of milestone. For Marina, it is far more - it is the chance to finally silence the question she has been hearing over and over again for four decades: 'But why is this art?' | |
| Genres: | Documentary, Biography, History |
| Director: | Matthew Akers, Jeff Dupre |
| Writer: | Cast: | Herself - Marina Abramovic Himself - Ulay Himself - Klaus Biesenbach Himself - David Balliano Herself - Chrissie Iles Himself - Arthur Danto Himself - David Blaine Himself - James Franco Herself - Rushka Bergman Himself - Orlando Bloom Himself - Brian Lane Moore MOCA Performer - Ashton Swinford |


Emit
Configuring
Logical Layer
Brokers
Clients
Callbacks
Managing
Logical Layer
Clients
Shares
Monitoring
Logical Layer
Clients
Reporting
Logical Layer
Clients
Conceptual Layer
Topics
Account
{{user.name}}
Settings
Disconnect
EMIT
a supervisory & control system for MQTT clients
Topics
{{x1.item.name}}
{{item.name}}


What is the difference between Margin, Border, and Padding?
11 February 2020
The web browser engine displays HTML content as rectangular box (also known as the CSS model). That box can be divided into four parts: margin, border, padding and content and are defined by their respective edges.
Source: MDN web docs
The content area, defined by content edges (content height and width) contains the actual content of HTML element, such as text, image or video.
The padding area extends the content area to include its padding. Padding is a transparent area, or white space that surrounds the content area.
The border area extends the padding area to include its border. Border is a line that wraps around the padding area.
The margin extends the border to include its margin. Margin is an empty area used to separate the element from its neighbors.
The general rule of thumb of when to use padding or margin is:
- If you need more background, use padding.
- If you need more white space, use margin.
Lastly, be wary of margin collapse! It is where two elements have vertical margins merged into one another.


-
OSM Layer loading
WMS Layer loading
This examples shows how to use ngeoDecorateLayerLoading to be notified when a layer is loading. The loading property is true when the layer is loading, false otherwise.
ngeoDecorateLayerLoading
loading


Presenter and moderators can upload PDF (recommended) and office files as presentations. To upload a file, click the "+" button in the bottom left and choose "upload a presentation": The file will be converted for use in heiconf. That may take a minute.


Happy New Year folks! Hopefully new years resolutions are still on pace. In the meantime, let’s kick off 2019 with a fresh new release of libraries.
finagle-core: c.t.f.s.StackBasedServer
has been changed to extend the
c.t.f.Stack.Transformable
trait. This brings StackBasedServer
into parity
with c.t.f.c.StackBasedClient
, which already extends the
Stack.Transformable
trait. 9f637b5e
finagle-http: HttpMuxer propagates the close signal to the underlying handlers. 6475680d
finagle-stats-core: introduce flag to allow logging metrics on service shutdown. 4588bc1f
finagle-core: The deprecated c.t.f.b.ServerBuilder.stack
method which takes a function
has been removed. Uses of this method should be changed to use the c.t.f.b.ServerBuilder.stack
method which takes a c.t.f.s.StackBasedServer
instead. a05e5e7b
finagle-core: The type of c.t.f.b.ServerConfig.nilServer
has been changed from
Server\[Req, Rep\]
to StackBasedServer\[Req, Rep\]
. 4be953d4
finagle-core: The access level of the c.t.f.b.ServerBuilder.copy
method has changed
from protected to private. 4be953d4
finagle-core: The bridge type c.t.f.b.Server
has been removed. Users should
change to use c.t.f.ListeningServer
instead. Uses of the previously
deprecated Server.localAddress
should use ListeningServer.boundAddress
instead. eb66ee71
finagle-core: The deprecated c.t.f.t.Transport.localAddress
and
c.t.f.t.Transport.remoteAddress
methods are now final and can no longer
be extended. Users should migrate to the respective c.t.f.t.TransportContext
methods. b85f43a0
finagle-thrift: The c.t.f.t.ThriftRichClient.protocolFactory
and
c.t.f.t.ThriftRichServer.protocolFactory
methods have been removed. Users should
switch to using ThriftRichClient.clientParam.protocolFactory
and
ThriftRichServer.serverParam.protocolFactory
instead. In addition, implementations
of the protocolFactory
method have been removed from the concrete c.t.f.Thrift
and c.t.f.ThriftMux
client and server. e33baf82
finagle-core: Failed writes on Linux due to a remote peer disconnecting should now
be properly seen as a c.t.f.ChannelClosedException
instead of a
c.t.f.UnknownChannelException
. 8f5774cb
finagle-http: Compression level of 0 was failing on the server-side when speaking h2c. Updated so that it can handle a request properly. 5f96fcb2
finagle-thriftmux: A Java compatibility issue for users trying to call withOpportunisticTls
on ThriftMux
clients and servers has been fixed. e57d2a91
ServiceFactory.const
propagates the close from the ServiceFactory
to the underlying service, instead of ignoring it. 6475680dfinatra-kafka-streams: SumAggregator and CompositeSumAggregator only support enhanced window aggregations for the sum operation. Deprecate SumAggregator and CompositeSumAggregator and create an AggregatorTransformer class that can perform arbitrary aggregations. f588970e
finatra-streams: Open-source Finatra Streams. Finatra Streams is an integration between Kafka Streams and Finatra which we’ve been using internally at Twitter for the last year. The library is not currently open-source. 47cce546
inject-server: Add lint rule to alert when deprecated util-logging
JUL flags from the
c.t.inject.server.DeprecatedLogging
trait are user defined. This trait was mixed-in
only for backwards compatibility when TwitterServer was moved to the slf4j-api and the flags are
not expected to be configured. By default, util-app
based applications will fail to start if
they are passed a flag value at startup which they do not define. Users should instead configure
their chosen slf4j-api logging implementation directly. 388bf8f9
finatra-thrift: c.t.finatra.thrift.Controllers
now support per-method filtering and
access to headers via c.t.scrooge.{Request, Response}
wrappers. To use this new
functionality, create a Controller
which extends the
c.t.finatra.thrift.Controller(SomeThriftService)
abstract class instead of constructing a
Controller
that mixes in the SomeThriftService.BaseServiceIface
trait. With this, you can now
provide implementations in form of c.t.scrooge.Request
/c.t.scrooge.Response
wrappers by calling
the handle(ThriftMethod)
method. Note that a Controller
constructed this way cannot also
extend a BaseServiceIface
.
handle(SomeMethod).filtered(someFilter).withFn { req: Request[SomeMethod.Args] =>
val requestHeaders = req.headers
// .. implementation here
// response: Future[Response[SomeMethod.SuccessType]]
}
Note that if Request
/Response
based implementations are used the types on any
existing ExceptionMappers
should be adjusted accordingly. Also, if a DarkTrafficFilterModule
was previously used, it must be swapped out for a ReqRepDarkTrafficFilterModule
9d891cd1
inject-core, inject-server: Remove deprecated @Bind
support from test mixins. Users should
instead prefer using the bind[T]
DSL in tests. 841f6974
inject-app: Remove deprecated bind\[T\]
DSL methods from c.t.inject.app.BindDSL.
Instead of:
injector.bind[T](instance)
injector.bind[T, Ann](instance)
injector.bind[T](ann, instance)
Users should instead use the more expressive forms of these methods, e.g.,:
injector.bind[T].toInstance(instance)
injector.bind[T].annotatedWith[Ann].toInstance(instance)
injector.bind[T].annotatedWith(ann).toInstance(instance)
which more closely mirrors the scala-guice binding DSL. 2690003d
finatra-thrift: For services that wish to support dark traffic over
c.t.scrooge.Request
/c.t.scrooge.Response
-based services, a new dark traffic module is
available: c.t.finatra.thrift.modules.ReqRepDarkTrafficFilterModule
9d891cd1
finatra-thrift: Creating a c.t.finatra.thrift.Controller
that extends a
ThriftService.BaseServiceIface
has been deprecated. See the related bullet point in “Added” with
the corresponding PHAB_ID to this one for how to migrate. 9d891cd1
inject-core, inject-server: Remove deprecated WordSpec
testing utilities. The framework
default ScalaTest testing style is FunSuite
though users are free to mix their testing
style of choice with the framework provided test mixins as per the
documentation.
41767c6e
finatra-thrift: Instead of failing (potentially silently)
c.t.finatra.thrift.routing.ThriftWarmup
now explicitly checks that it is
using a properly configured c.t.finatra.thrift.routing.Router
e2dc8b30
finatra-inject: c.t.finatra.inject.server.PortUtils
has been modified to
work with c.t.f.ListeningServer
only. Methods which worked with the
now-removed c.t.f.b.Server
have been modified or removed.
642d7260
finatra-kafka-streams: Finatra Queryable State methods currently require the window size to be passed into query methods for windowed key value stores. This is unnecessary, as the queryable state class can be passed the window size at construction time. We also now save off all FinatraKeyValueStores in a global manager class to allow query services (e.g. thrift) to access the same KeyValueStore implementation that the FinatraTransformer is using. c51e174b
fromFuture()
and value()
in the Reader object to construct a new Reader. ac15ad8butil-core: The implicit conversions classes in c.t.conversions.SomethingOps
have been
renamed to have unique names. This allows them to be used together with wildcard imports.
See Github issue (https://github.com/twitter/util/issues/239). 2d5d6da9
util-core: Both c.t.io.Writer.FailingWriter
and c.t.io.Writer.fail
were removed. Build your
own instance should you need to. 63815225


name: inverse layout: true class: center, middle, inverse --- # STAT 105: Lecture 6 ## Chapter 3: Elementary Descriptive Statistics .footnote[Course page: [imouzon.github.io/stat105](https://imouzon.github.io/stat105)] --- # Recap ## Summarizing Data Numerically ### ## Centrality and Spread Statistics --- layout:false .left-column[ ## Univar. Summary ### Simple Graphs ### Freq Tables ### Histograms ### Center Stats ] .right-column[ ## Summarizing Data Numerically: Centrality ``` Group 1 Group 2 74 79 77 81 65 77 78 74 68 79 81 76 76 73 71 71 81 80 80 78 86 81 76 89 88 83 79 91 79 78 77 76 79 75 74 73 72 76 75 79 ``` Motivated by asking what is *normal/common/expected* for this data **Mean**: A "fair" center value: `\( \bar{x} = \frac{1}{n} \sum_{i=1}^{n} x_i = \sum_{i=1}^{n} \frac{1}{n} x_i \)` **Mode**: The most commonly occurring value in set **Median**: The value dividing the set in half (the middle of the values). For group 1, the mean is 78.8, the median is 79, and the mode is 79. For group 2, the mean is 76.45, the median is 76, and the mode is 76. ] --- layout:false .left-column[ ## Univar. Summary ### Simple Graphs ### Freq Tables ### Histograms ### Center Stats ### Spread Stats ] .right-column[ ## Summarizing Data Numerically: Spread Motivated by asking what is *variability is seen in the data* or *how spread out* the data is. **Range**: The difference between the highest and lowest values (Range = max - min) **IQR**: The Interquartile Range; how spread out the middle 50% is (IQR = Q3 - Q1) ] --- layout:false .left-column[ ## Univar. Summary ### Simple Graphs ### Freq Tables ### Histograms ### Center Stats ### Spread Stats ] .right-column[ ## Summarizing Data Numerically: Spread **Variance**: "Average" squared distance from the mean. - **Population Variance**: `\[\sigma^2 = \frac{1}{n}\sum_{i=1}^{n}(x_i - \bar{x})^2 \]` - **Sample Variance**: `\[s^2 = \frac{1}{n-1}\sum_{i=1}^{n}(x_i - \bar{x})^2 \]` **Standard Deviation**: The square root of the variance (has the same units as the data values). - **Population Standard Deviation**: `\(\sigma = \sqrt{\frac{1}{n}\sum_{i=1}^{n}(x_i - \bar{x})^2} \)` - **Sample Standard Deviation**: `\(s = \sqrt{\frac{1}{n-1}\sum_{i=1}^{n}(x_i - \bar{x})^2} \)` ] --- layout:false .left-column[ ## Univar. Summary ### Simple Graphs ### Freq Tables ### Histograms ### Center Stats ### Spread Stats ] .right-column[ ### Ex: Finding the Variance and Standard Deviation John Deere is experimenting with using 3D steel printers to produce parts which are in low demand. They recently produced 25 such parts for a model of tractor that hasn't been in active production since the 1970s. In order to make sure that the printed parts are capable of endure the forces the mold crafted parts are capable of, they apply force to a five randomly sampled parts. The results are recorded below (in Newtons):
61, 63, 58, 51, 69
Find the variance and standard deviation of this sample. ] --- layout:false **Example**: Since we are told it is a sample, we need to use **sample variance**. We need then mean: `\[ \bar{x} = (61 + 63 + 58 + 51 + 69) / 5 = 60.4 \]` and can find \\(s^2\\) using: `\[ \begin{align} s^2 &= \frac{1}{n-1}\sum_{i=1}^5 (x_i - \bar{x})^2 \\\\ &= \frac{1}{n-1}\left( (x_1 - \bar{x})^2 + (x_2 - \bar{x})^2 + (x_3 - \bar{x})^2 + (x_4 - \bar{x})^2 + (x_5 - \bar{x})^2 \right) \\\\ &= \frac{1}{5-1} \left((61 - 60.4)^2 + (63 - 60.4)^2 + (58 - 60.4)^2 + (51 - 60.4)^2 + (69 - 60.4)^2 \right) \\\\ &= \frac{1}{4} \left( (0.6)^2 + (2.6)^2 + (-2.4)^2 + (-9.4)^2 + (8.6)^2 \right) \\\\ &= \frac{1}{4} \left( 0.36 + 6.76 + 5.76 + 88.36 + 73.96 \right) \\\\ &= 43.8 \\\\ \end{align} \]` --- ## Example: Finding the Standard Deviation With `\(s^2\)` known, finding `\(s\)` is simple: `\[ \begin{align} s &= \sqrt{s^2} \\\\ &= \sqrt{43.8} \\\\ &= 6.6181568 \\\\ \end{align} \]` --- name: inverse layout: true class: center, middle, inverse --- # Chapter 3.2: Plots Using Quantiles --- layout: false .left-column[ ## Univar. Summary ### Simple Graphs ### Freq Tables ### Histograms ### Center Stats ### Spread Stats ### Boxplots ] .right-column[ ## Boxplots: Plotting Center, Spread, and Outliers ``` Group 1 Group 2 74 79 77 81 65 77 78 74 68 79 81 76 76 73 71 71 81 80 80 78 86 81 76 89 88 83 79 91 79 78 77 76 79 75 74 73 72 76 75 79 ``` **Boxplot**: A slightly more complex plot used to illustrate - location statistics (min, median, max, etc.) - spread (with IQR, range, etc.) - unusual large or small observations In order to draw one you need to be able to find the median and the first and third quartiles. **Group 1**: Q(.25) = 75.5, Q(.50) = 79, Q(.75) = 81 **Group 2**: Q(.25) = 73.5, Q(.50) = 76, Q(.75) = 78.5 ] --- .left-column[ ## Univar. Summary ### Simple Graphs ### Freq Tables ### Histograms ### Center Stats ### Spread Stats ### Boxplots ] .right-column[ **Example**: Draw boxplots for the groups using quantile function ``` Group 1 Group 2 74 79 77 81 65 77 78 74 68 79 81 76 76 73 71 71 81 80 80 78 86 81 76 89 88 83 79 91 79 78 77 76 79 75 74 73 72 76 75 79 ``` | | \\(Q(.25)\\) | \\(Q(.5)\\) | \\(Q(.75)\\) | |----------|--------------|-------------|--------------| | Group 1 | 75.5 | 79 | 81 | |   | | | | | Group 2 | 73.5 | 76 | 78.5 | This means that Group 1 has IQR = 5.5 and 1.5\*IQR = 8.25 while Group 2 has IQR = 5 and 1.5\*IQR = 7.5 ] --- layout: false .left-column[ ## Univar. Summary ### Simple Graphs ### Freq Tables ### Histograms ### Center Stats ### Spread Stats ### Boxplots ] .right-column[ ## Boxplots: Example A simple plot making use of the first, second and third quartiles (i.e., `\(Q(.25)\)`, `\(Q(.5)\)` and `\(Q(.75\)`. 1. A box is drawn so that it covers the range from `\(Q(.25)\)` up to `\(Q(.75)\)` with a vertical line at the median. 2. Whiskers extend from the sides of the box to the furthest points within 1.5 IQR of the box edges 3. Any points beyond the whiskers are plotted on their own. ![plot of chunk unnamed-chunk-6](figure/unnamed-chunk-6-1.png) ] --- layout:false .left-column[ ## Univar. Summary ### Simple Graphs ### Freq Tables ### Histograms ### Center Stats ### Spread Stats ### Boxplots ### Quantile Plots ] .right-column[ ## Quantiles Represented by Data Values **Consider the quantile function again**: For \\(0 \le p \le 1\\) and sample size \\(n\\) we let \\(i = \lfloor n \cdot p + 0.5 \rfloor \\) and find the \\(p^{th}\\) quantile using: \\[ Q(p) = x\_i + (n \cdot p + 0.5 - i) (x\_{i + 1} - x\_i) \\] ** What if... ** Think about what happens to the quantile function if we choose \\(p\\) so that \\(n \cdot p + 0.5\\) is an integer: - \\(\lfloor n \cdot p + 0.5 \rfloor = n \cdot p + 0.5 \\) - \\(i = n \cdot p + 0.5 \\) - \\( \begin{align} Q(p) &= x\_i + (n \cdot p + 0.5 - i) (x\_{i+1} - x\_i) \\\\ &= x\_i + (0) (x\_{i+1} - x\_i) \\\\ &= x\_i \end{align} \\) Then \\(Q(p) = x_i\\) (by the way, this is neat!!!) ] --- layout:false .left-column[ ## Univar. Summary ### Simple Graphs ### Freq Tables ### Histograms ### Center Stats ### Spread Stats ### Boxplots ### Quantile Plots ] .right-column[ ## Quantiles Represented by Data Values - Q: Which values of \\(p\\) make \\( n \cdot p + 0.5 \\) integers? - A: Any value that can be written as \\(p = \\frac{i - 0.5}{n} \\) **Example** Consider the following set of observations (in increasing order):
41, 50, 58, 61, 61, 64, 66, 67, 76, 77
We can build the following table using \\(p = \frac{i - 0.5}{n}\\): | | | | | | | | | | | | |:----------------------------|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:| | \\(i\\) | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | | \\(p\\) | 0.05 | 0.15 | 0.25 | 0.35 | 0.45 | 0.55 | 0.65 | 0.75 | 0.85 | 0.95 | | \\(Q(p)\\) | 41 | 50 | 58 | 61 | 61 | 64 | 66 | 67 | 76 | 77 | So \\(\small{Q(.05) = 41, Q(.15) = 50, \ldots, Q(.95) = 77}\\). ] --- .left-column[ ## Univar. Summary ### Simple Graphs ### Freq Tables ### Histograms ### Center Stats ### Spread Stats ### Boxplots ### Quantile Plots ] .right-column[ **Scatterplots using quatiles and their corresponding values** For each `\(x_i\)` in the data set, we plot `\(\left(\frac{i - 0.5}{n}, x_i\right)\)` - meaning we are plotting `\( (p, Q(p)) \)`. We connect the points with a straight line (which exactly mathces the interpolated values we would get from `\(Q(p)\)`). Consider the sample: 13, 15, 18, 19, 21, 34, 35, 35, 36, 39. The following table which helps create the plot: | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |------------|-----|-----|-----|-----|-----|-----|-----|-----|-----|------| | \\(p\\) | 0.05 | 0.15 | 0.25 | 0.35 | 0.45 | 0.55 | 0.65 | 0.75 | 0.85 | 0.95 | | \\(Q(p)\\) | 13 | 15 | 18 | 19 | 21 | 34 | 35 | 35 | 36 | 39 | ![plot of chunk unnamed-chunk-8](figure/unnamed-chunk-8-1.png) ] --- .left-column[ ## Univar. Summary ### Simple Graphs ### Freq Tables ### Histograms ### Center Stats ### Spread Stats ### Boxplots ### Quantile Plots ### QQ-plots ] .right-column[ ### Quantile-Quantile Plots: **QQ plots** are created by plotting the values of `\(Q(p)\)` for a data set against values of `\(Q(p)\)` coming from some other source. - Empirical QQ plots: the other source are quantiles from another actual data set. - Theoretical QQ plots: the other source are quantiles from a theoretical set - we know the quantiles without having any data. **Example** - Set 1: 13, 15, 18, 19, 21, 34, 35, 35, 36, 39 - Set 2: 27, 31, 37, 39, 43, 69, 71, 71, 73, 79 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |------------|-----|-----|-----|-----|-----|-----|-----|-----|-----|------| | \\(p\\) | 0.05 | 0.15 | 0.25 | 0.35 | 0.45 | 0.55 | 0.65 | 0.75 | 0.85 | 0.95 | |   | | | | | | | | | | | | Set 1 \\(Q(p)\\) | 13 | 15 | 18 | 19 | 21 | 34 | 35 | 35 | 36 | 39 | |   | | | | | | | | | | | | Set 2 \\(Q(p)\\) | 27 | 31 | 37 | 39 | 43 | 69 | 71 | 71 | 73 | 79 | ] --- layout: false .left-column[ ## Recap ## Plots and Quantiles ### Boxplots ### Quantile Plots ### QQ Plots ] .right-column[ ### Quantile-Quantile Plots: The resulting plot shows some kind of linear pattern - this means that the quantiles increase at the same rate, even if the sizes of the values themselves are very different. ![plot of chunk unnamed-chunk-10](figure/unnamed-chunk-10-1.png) ]


Buttermilk panna cotta recipe
by Angela HartnettI love white currents poached in a touch of elderflower just spooned over the pannacotta. You can make this dessert in advance of a dinner party so that you have less to worry about on the day.
Prep time: 10 minutes, plus setting time (ideally overnight) | Cooking time: 10 minutes
SERVES
Four to six
INGREDIENTS
- 150ml double cream
- ½ vanilla pod, split in half and seeds scraped
- 50ml condensed milk
- 1 gelatine leaf, soaked in ice cold water to soften
- 175ml buttermilk
METHOD
- Place the double cream, vanilla pod and seeds in a saucepan and bring to the boil.
- Stir in the condensed milk and remove from the heat. Squeeze the soaked gelatine leaf in your hand to get rid of excess of water and add this to the pan, stirring to dissolve.
- Allow the mixture to cool and finally add the buttermilk.
- Remove the vanilla pod. Pour the mixture into four to six (depending on the size) panna cotta or small pudding moulds and leave to set in the fridge, ideally overnight.
- Serve the pannacotta turned out, with poached fruits or cantucci biscuits.


Paste Your GitHub Repo URL Below to see the issue status:
Fetching Data From GitHub...
| Total Open Issues: | {{metaInfo.open_issues_count}} |
| Latest Issue (Last 24 Hour): | {{last24HoursIssuesCount}} |
| Latest Issue (Last 7 Days): | {{last7DaysIssuesCount}} |
| All Other Old Issue: | {{metaInfo.open_issues_count-(last24HoursIssuesCount+last7DaysIssuesCount)}} |


Pizza
App
Home
Varieties
Delivery
About Us
Contact us
CONTACT US
Incase of any comment or complaint, Please reach out to us as fast as possible.
CONTACT US


--- layout: post title: dancing feet date: '2016-05-05T18:30:27+02:00' categories: - Storyboards picture_url: https://film-storyboards.tumblr.com/post/143915150396 ---


Visualization of STL strings and containers may not work with implementations other than the one that ships with GCC.
To make the debugger work with other vendors the .zero.py file that currently ships with the debugger (and is installed in the plugins directory) needs to be modified.
The script implements the on_debug_symbol callback which transforms STL internal structures into user-friendly representations.


mwarp
1d
Home
Installation
Quick start
User manual
Examples
API
Support
Index
Modules
Navigation
next »
« previous
|
mwarp1d 0.1 documentation
»
User manual
User manual
¶
Contents:
Preliminaries
Launching
Importing data
Specifying output directory
Warping
Landmark warping
Manual warping
Restoring previous sessions
Exporting
Warped data
Screenshots
Keyboard shortcuts
Landmark mode
Manual mode
Command line UI launching
Page Contents
User manual
Previous topic
Quick start
Next topic
Preliminaries
This Page
Show Source


Creating and running programs¶
Now that you’ve set up your computer and EV3 Brick, you’re ready to start writing programs.
To make it easier to create and manage your programs, let’s first have a quick look at how MicroPython projects and programs for your EV3 robots are organized.
Programs are organized into project folders, as shown in Figure 7. A project folder is a directory on your computer that contains the main program (main.py) and other optional scripts or files. This project folder and all of its contents will be copied to the EV3 Brick, where the main program will be run.
This page shows you how to create such a project and how to transfer it to the EV3 Brick.
Creating a new project¶
To create a new project, open the EV3 MicroPython tab and click create a new project, as shown in Figure 8. Enter a project name in the text field that appears and press Enter. When prompted, choose a location for this program and confirm by clicking choose folder.
When you create a new project, it already includes a file called main.py. To see its contents and to modify it, open it from the file browser as shown in Figure 9. This is where you’ll write your programs.
If you are new to MicroPython programming, we recommend that you keep the existing code in place and add your code to it.
Opening an existing project¶
To open a project you created previously, click File and click Open Folder, as shown in Figure 10. Next, navigate to your previously created project folder and click OK. You can also open your recently used projects using the Open Recent menu option.
Connecting to the EV3 Brick with Visual Studio Code¶
To be able to transfer your code to the EV3 Brick, you’ll first need to connect the EV3 Brick to your computer with the mini-USB cable and configure the connection with Visual Studio Code. To do so:
- Turn the EV3 Brick on
- Connect the EV3 Brick to your computer with the mini-USB cable
- Configure the USB connection as shown in Figure 11.
Downloading and running a program¶
You can press the F5 key to run the program. Alternatively, you can start it manually by going to the debug tab and clicking the green start arrow, as shown in Figure 12.
When the program starts, a pop-up toolbar allows you to stop the program if necessary. You can also stop the program at any time using the back button on the EV3 Brick.
If your program produces any output with the print
command, this is shown in the output window.
Expanding the example program¶
Now that you’ve run the basic code template, you can expand the program to make a motor move. First, attach a Large Motor to Port B on the EV3 Brick, as shown in Figure 13.
Next, edit main.py to make it look like this:
#!/usr/bin/env pybricks-micropython
from pybricks import ev3brick as brick
from pybricks.ev3devices import Motor
from pybricks.parameters import Port
# Play a sound.
brick.sound.beep()
# Initialize a motor at port B.
test_motor = Motor(Port.B)
# Run the motor up to 500 degrees per second. To a target angle of 90 degrees.
test_motor.run_target(500, 90)
# Play another beep sound.
# This time with a higher pitch (1000 Hz) and longer duration (500 ms).
brick.sound.beep(1000, 500)
This program makes your robot beep, rotate the motor, and beep again with a higher pitched tone. Run the program to make sure that it works as expected.


--- layout: post authors: ["Greg Wilson"] title: "Where the Time Goes (Version 2)" date: 2015-06-14 time: "22:30:00" tags: ["Operations"] ---
Last November, I wrote a post about where my time was going. A lot has changed since then, including my workload, so here's an update:
| Hours | Activity | Notes |
|---|---|---|
| 12.0 | Instructor training | Averages 1.5 days/week (but is bursty). |
| 8.0 | Bookkeeping | Currently high because we're putting data into Amy and getting our books in order. |
| 6.0 | Discussions with partners (current and potential) | Some live, some by email. |
| 6.0 | Developing Amy | Some is coding/reviewing, most is discussing what it should do. |
| 4.0 | Coordinating workshops | The admins handle most of it, but there are always things left over. |
| 4.0 | Board discussions and tasks | Varies week to week. |
| 4.0 | Other email. | Miscellaneous questions that need answers. |
| 4.0 | Maintaining the web site | Includes writing blog posts, generating badges for new instructors, etc. |
| 2.0 | Technical support | Git issues, mailing list issues, web site issues, etc. |
That's 50 hours in a week when I'm not traveling or teaching workshops, down from 57.5 hours/week seven months ago, and we have accomplished a tremendous amount since the Steering Committee was elected in January:
the workshop template is much easier to use;
our lessons (mostly) conform to the new template and have almost been published;
we're holding regular debriefing sessions in which instructors from recent workshop can share their experiences;
we've trained a bunch of new instructors, and run some very promising experiments with accelerated online instructor training;
we're using Amy on a daily basis; and
more than a dozen organizations have signed up as partners or affiliates, and more are in the pipeline.
The list still doesn't include things that are vital to Software Carpentry's long-term health, like writing up instructor training or creating new lessons, but the foundation that will allow us to focus on that is almost in place.


[WATCH] ‘Komen Sikit YB’ with Tajuddin Rahman
by Mastura Malak, Hasmizar Hassan, Jeremy Seng, Fikri GhazaliIN this episode of “Komen Skit YB”, we feature Pasir Salak MP Tajuddin Abdul Rahman who had been making the headlines since yesterday.
He was caught in a verbal altercation with Ismail Mohamed Said (Kuala Krau) in front of the media in Parliament.
He said he only looks fierce on the outside, but actually he’s a nice guy. — November 21, 2019.


--- layout: post status: publish published: true title: Struts2 Map Form to Collection of Objects author: display_name: Geoff Lane login: admin email<EMAIL_ADDRESS>url: http://www.zorched.net author_login: admin author_email<EMAIL_ADDRESS>author_url: http://www.zorched.net date: '2009-07-02 19:38:35 -0400' date_gmt: '2009-07-03 01:38:35 -0400' categories: - Code - Java tags: - orm - Java - struts2 - jsp - OGNL comments: - id: 15562 author: DreamerCoder author_email<EMAIL_ADDRESS>author_url: '' date: '2009-07-20 12:28:54 -0400' date_gmt: '2009-07-20 18:28:54 -0400' content: "hi buddy this is exactly what i was looking for..thanx for this wonderful informative post..\r\ni have an issue something related to this..\r\ni am using struts2 framework and Hibernate annotations..\r\n\r\ni have a Product.java model and Inventory.java model..One Product can be in many inventories..\r\n\r\ni am displaying the product list in a table. i have given in front of every row which contains product information.\r\n\r\nnow when user checks 3 or 4 (or whatever he likes) checkboxes and clicks on 'add to inventory' button, those products should be updated with inventory objects...m currently using @ManytoOne in Inventory.java\r\ndo u have any idea how should i do this task..\r\n\r\nwaiting for ur reply" - id: 15563 author: DreamerCoder author_email<EMAIL_ADDRESS>author_url: '' date: '2009-07-20 12:30:27 -0400' date_gmt: '2009-07-20 18:30:27 -0400' content: "@correction - \r\n\r\ni have given s:checkbox in front of every row which contains product information" - id: 15564 author: Geoff Lane author_email<EMAIL_ADDRESS>author_url: http://www.zorched.net date: '2009-07-20 18:19:37 -0400' date_gmt: '2009-07-21 00:19:37 -0400' content: "@DreamCoder,\r\nYou can't bind directly to the Hibernate objects in that case because you'll just end up binding to something like Inventory.id which will eventually cause you trouble. \r\n\r\nThe best way to do that is to have something like public void setInventoryIds(Integer[] inventoryIds) in your Action and handle loading the instances through Hibernate yourself." - id: 16041 author: nobilet author_email<EMAIL_ADDRESS>author_url: '' date: '2010-02-04 06:52:17 -0500' date_gmt: '2010-02-04 12:52:17 -0500' content: Thanks for this tips !!!!! You help me a lot ! - id: 16152 author: Asif Karedia author_email<EMAIL_ADDRESS>author_url: '' date: '2010-06-01 09:14:07 -0400' date_gmt: '2010-06-01 15:14:07 -0400' content: "Hi Geoff,\r\n\r\nMight be a bit irrelevant but I am trying to access a form bean like name=\"user.roles.id\" in my form. Can access the bean but when I press submit the user.roles is null in Action class. I have a private property user in Action class which is a DTO (i.e. all properties are public). Any help would be appreciated.\r\n\r\nThanks." - id: 17910 author: Jonathan author_email<EMAIL_ADDRESS>author_url: '' date: '2011-07-20 20:28:00 -0400' date_gmt: '2011-07-21 02:28:00 -0400' content: Thanks for this, Geoff! I found myself in the same exact predicament, having everything but the checkbox pre-selection figured out. - id: 17913 author: edsave author_email<EMAIL_ADDRESS>author_url: http://twitter.com/edsave date: '2011-07-26 13:06:30 -0400' date_gmt: '2011-07-26 19:06:30 -0400' content: "OMG! Thank you so much for this!!! \r\nI was breaking my head exactly for this very same issue. I even added a method to preselect in the action but nothing would work. \r\n\r\nYou can't imagine how happy you've made me! I really appreciate it." ---
The Struts2 documentation contains examples that are often basic at best which can make it challenging to figure out how to do things sometimes. I was working on creating a form that would allow me to select values from a list to connect 2 objects in a One-to-Many relationship. This is a common relationship for many things. In this example, I'll use a User and Role class to demonstrate the concept.
For background, here's a JPA mapped User and Role class. {% highlight java %} import java.util.List; import javax.persistence.*;
@Entity public class User {
private Long id;
// ... other member variables
private List
@Id @GeneratedValue(strategy = GenerationType.AUTO) public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
@OneToMany
@JoinTable(name = "UserRoles",
joinColumns = @JoinColumn(name = "user_Id"),
inverseJoinColumns = @JoinColumn(name = "role_Id"),
uniqueConstraints = @UniqueConstraint(columnNames = {"user_Id", "role_Id"})
)
public List
public void setRoles(List
// ... other properties }
@Entity public class Role {
private Long id;
@Id @GeneratedValue(strategy = GenerationType.AUTO) public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
// ... other properties } {% endhighlight %}
A list of Roles exists in the database. When a User is created, they are assigned one or more Roles. The User and Roles are connected in the Database through a join table as defined in the mapping. At this point I created some DAO Repository classes to manage the persistence and an Action to handle the form values. (The details of JPA, setting up Persistence and Actions are beyond the scope of this post.)
The part that caused me the most grief ended up being the form. I wanted to add a checkbox list that contained all of the Roles. The example on the Struts site for checkboxlist, a control with 43 documented properties is:
{% highlight html %}
The form itself is pretty vanilla for the most part. The checkboxlist is the interesting part because it's what allows us to map the User to the Roles. I knew that I was looking for something to put into the value property of the control that would tell it to pre-select the Role values that were already associated with the User.
I started out with something like:
{% highlight html %}
That didn't work. When you think about it, that makes sense because the keys in the list are ids and the values supplied are Role objects. So I needed to figure out how to get the Ids from the Roles. I could have done that in the Action class, but it seemed like there should be a better way. A way that would allow me to continue in more of a Domain fashion.
Doing some research into OGNL, I came upon the list projections section which was the key...
The OGNL projection syntax gives us user.roles.{id}. Basically that is a list comprehension that takes of list of Role objects and turns it into a list of Role Ids. That list of Ids becomes the list of values that will be preselected.
Knowing that I can now create a select box that will include the pre-selected values on an edit form:
{% highlight html %}
Enjoy.


--- layout: post title: Do you ever just feel like this? date: 2009-08-13 20:48:00.000000000 -04:00 type: post published: true status: publish categories: - nummy tags: - cat - nummy meta: {} author: login: sophie email<EMAIL_ADDRESS>display_name: Pika first_name: '' last_name: '' ---


2:15
Robot State
Unknown state
Connect
No streams available
Pre-match
Match View
Diagnostic
NetworkTables
Robot Configuration
Autonomous Selection
No auto modes found
Selected Auto
Match View
Match Info
Event:
Match:
Battery
12
Volts
Diagnostics
Motor Values
NetworkTables
Set
Get
Connecting


Need a refresher on the names of kiteboarding tricks? Start here!
Guesses remaining:
Wrong Guess:
Wins:
Losses:


--- title: Senior Engineer 1 Competencies description: Engineering competencies for Senior 1 Engineers. permalink: /competencies/senior1/ layout: o-layout-docs redirect_from: - /competencies/mid-to-senior1/ ---


--- title: "LED Dancing Floor, JC330-3, force sensing, LED Stage Dance Floor Lighting, LED Dance Stage, LED Dance Light China Manufacturer & Supplier" description: "LED DANCING FLOOR, LED Dancing Floor, JC330-3, force sensing, LED Stage Dance Floor Lighting, LED Dance Stage, LED Dance Light China Manufacturer & Supplier" keywords: - LED Dancing Floor - "JC330-3" - force sensing - LED Stage Dance Floor Lighting - LED Dance Stage - "LED Dance Light China Manufacturer & Supplier" ---
|
LED DANCING FLOOR |
|||||||||||||
|
MODEL NO.: LED-DAN-33×33 |
|||||||||||||
|
Feature:
Application: |
|||||||||||||


Julian Renard
Nomad full stack developer and entrepreneur.
Former student at Gobelins, l'école de l'image (Paris).
I enjoy working on design-driven projects, and specialise in developing sites and applications for startups. I mostly use Javascript and Python.
Feel free to get in touch if you'd like to hire me as freelancer or work with my agency (FoxLab Agency, Berlin & Paris).


--- layout: post status: publish published: true title: "午夜的广州街头" author: Leask author_login: leask author_email<EMAIL_ADDRESS>author_url: https://leaskh.com wordpress_id: 572 wordpress_url: http://leaskh.wordpress.com/2006/04/14/%e5%8d%88%e5%a4%9c%e7%9a%84%e5%b9%bf%e5%b7%9e%e8%a1%97%e5%a4%b4 date: '2006-04-14 22:45:15 +0800' date_gmt: '2006-04-14 22:45:15 +0800' categories: - Life tags: [] comments: - id: 267 author: renee author_email: '' author_url: '' date: '2006-04-15 09:28:27 +0800' date_gmt: '2006-04-15 09:28:27 +0800' content: "其实 呢d太多嘞 更多噶你都未见过.." ---


Directions: Type in a U.S.A. address and you will find the pizza shops nearby.
Address:
Radius:
25
100
200


#{extends 'listAll.html' /} #{set title:'Protocols and Structures for Inference - All Learners' /} #{list items:resourceNames, as:'name' }


Warning, each question is timed, and your timing effects your score. Also, all answers are sent in real time to Christiana where she ranks you as a person and gives you a score she likes.


Variables often store pieces of text, called strings, that will be drawn to the screen.
When a string is assigned to a variable, the text needs to be wrapped in
quotes. You can use either 'single'
or "double"
quotation marks. Otherwise PlotDevice will think the piece of text is the name of a variable:
txt = hello >>> NameError: name 'hello' is not defined
txt = "hello" print(txt) >>> hello
A string is like a list of individual characters. You can access each character in the string by putting the "index" number in brackets. You can also access substrings by passing a start- and end-index spearated by a colon. Note that just like "slices" of a list, the end-index is not included in the sub-range returned.
alphabet = "abcdefghijklmnopqrstuvwxyz" alphabet[0] # returns 'a' alphabet[-1] # 'z' alphabet[:4] # 'abcd' alphabet[1:4] # 'bcd' alphabet[-3:] # 'xyz'
The choice() command selects either a random element from a list or a random character from a string (depending on which kind of value you pass to it). In the example below, we use choice() and random() to select 80 characters from the alphabet and scatter them over the screen at random positions, sizes, and orientations.
Python strings have a number of very useful methods:
str.upper()
returns an uppercase copy of the string
str.lower()
returns a lowercase copy of the string
str.capitalize()
returns a copy of the string with the first character capitalized
str.title()
returns a copy of the string with the first character of each word capitalized
str.find(txt, start=0)
returns the index position of txt
in the string
str.replace(old, new)
returns a copy of the string with all instances of old
replaced by new
str.split()
returns the list of words (separated by whitespace) in the string
str.join(lst)
returns a string formed by concatenating all the items of lst
with str
separating them
Keep in mind that these are methods of the string object itself, not commands. So rather than calling then with your string as an argument:
lower(txt) # bzzzt, wrong
you need to use "dot notation" to access the string's method instead:
txt.lower() # hooray, success
All the string methods leave your original string untouched and instead return a new copy that's been modified accordingly:
txt = "Ask me, ask me, ask me" print(txt.title()) print(txt.upper()) print(txt) >>> Ask Me, Ask Me, Ask Me >>> ASK ME, ASK ME, ASK ME >>> Ask me, ask me, ask me
The replace() method is especially useful when you want to filter mistakes from the string or otherwise alter portions of the content:
txt = "There's more to life than code, you know." txt = txt.replace("code", "books") txt = txt.replace(".", ". But not much more...") print(txt) >>> There's more to life than books, you know. But not much more...
If your search & replace needs are more complex, Python has a powerful Regular Expressions library available to you. Add import
re
to the top of your script and you'll have access to useful methods like:
None
if it wasn't.We've seen that the print
statement allows you to combine multiple variables when generating output. It even adds a space character between terms separated by commas. But mixing strings and values like this gets hard to edit as your code gets more complex. An alternative approach is to use ‘string interpolation’ to generate a new string with your values inserted at specific locations according to a template.
Python has two syntaxes for this: the ‘new’ style using the string's format() method, and the ‘old’ style using printf-style escapes and the %
operator. Personally, I still prefer the older approach, but your mileage may vary.
Here's an old-style formatting example. The basic usage is template % values
. If you're inserting multiple values, be sure to wrap them in parentheses separated by commas:
pastry = 'pie' num = [4, 20] price = 12.5 txt = '%i & %i blackbirds baked in a %s: $%0.2f' % (num[0], num[1], pastry, price) print(txt) >>> 4 & 20 blackbirds baked in a pie: $12.50
If you want your string to contain a literal "%"
character, put a "%%"
in your format instead:
print("(plus %i%% sales tax)" % 5) >>> (plus 5% sales tax)
Text strings often contain quotation marks as content, especially if the text contains dialogue. When PlotDevice examines the string and encounters such a quote, it would logically assume that the string is terminated here.
For instance, the following example won’t work:
txt = "(On his death bed): "Those curtains are hideous."
To get around this, take your pick of either double- or single-quotes when defining a string. Whichever one you start the string with will also be used for determining where the string ends. If double-quotes are part of the content of our string, we might choose to wrap it in single-quotes (and vice versa):
txt = '(On his death bed): "Those curtains are hideous." - Oscar Wilde'
Or, if we've got a lot of single-quotes in the content, we can wrap it in double-quotes:
txt = "You can't / you won't / and you don't / stop."
But if our string contains both kinds of quotes, this approach doesn't help us. For these cases we can use triple-quotes to delimit the string and mix-and-match quotation marks within it:
txt = """John Cage's 4'33" (performed by the Boston Typewriter Orchestra)"""
Triple-quoted strings are also unique in being able to span multiple lines. Each carriage return will be converted to a newline character in the string it assigns. Single- and double-quoted strings must begin and end on the same line of your script. If you want to include line breaks in a non-triple-quoted string, use the ‘escape’ code for the newline character: "\n"
.
When you’re going to typeset long paragraphs of text, it’s better to store the text in a separate text file and then read its contents into a variable. This keeps your script clean, and you can edit the text separately from the script.
The text file you create must be plain text devoid of styling (PlotDevice doesn't speak RTF or .docx
). If you use a text-editor like Sublime Text, TextMate, or Emacs any files you create will be plaintext by default. If you're using the built-in TextEdit application, the first thing you'll need to do upon creating a new document is disable formatting:
You can then compose whatever text you'd like (or, if you're like me, lazily paste in something interesting from Wikipedia). Save the file to a convenient folder and remember its file path so you can access it from your script:
Within our PlotDevice script, we can read the contents of the file into a string using the read() command. Note that when we draw the string (by passing it to text()) we make sure to include a width
argument. Otherwise there'd be no line-breaking and text would go spilling off the right side of the canvas:
Unicode is a character system that allows computers to use symbols from all of the writing systems in the world. If you’re going to use for example suomi or Hebrew in the output of your script, you’ll have to know about Unicode.
If you're going to import text from a text file, the first thing to ensure is that the file has been saved in a compatible "text encoding". In the dark ages of the 1990s there were dozens of encodings in common usage – with most only being useful for one language or another. Thankfully, the world has mostly converged on UTF-8 as the One True Encoding in recent years and we recommend that you use it for all your data and source code files.
When saving a plain text document in TextEdit, make sure
is selected in the list:You can load the file's contents into by calling the read() command with a filename or url. It reads the file's raw bytes and decodes them, returning a unicode string.
txt = read("proust.txt")
By default it will attempt to decode the file as UTF-8, but if you pass an optional encoding
argument you can override this.
txt = read("ozu.txt", encoding="shift-jis")
The read() command is just a convenience method. You can emulate its behavior using standard Python functions if you'd rather do things by-the-book:
raw_bytes = file("hebrew.txt").read() txt = raw_bytes.decode("utf-8") text(txt, 100, 200)


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object systemic.sif.sifcommon.model.BaseMessage systemic.sif.sifcommon.model.SubscriberMessage
public class SubscriberMessage
This class encapsulates a SIF message that has been received by a subscriber, might this be an event or a response. It holds all required information relating to a SIF Message that is given by the ZIS to the subscriber.
The main intent of this class is the ability to package all the parameters of the onEvent() or the onRequest() method in one object that can then be passed around to processes, threads, persistence etc.
| Constructor Summary | |
|---|---|
SubscriberMessage()
Will create a default subscriber message with a auto-generated messageID. |
|
SubscriberMessage(openadk.library.SIFDataObject sifObject,
openadk.library.Zone zone,
MappingInfo mappingInfo)
Constructor if this object should represent a SIF Response. |
|
SubscriberMessage(openadk.library.SIFDataObject sifObject,
openadk.library.Zone zone,
MappingInfo mappingInfo,
openadk.library.EventAction eventAction)
Constructor if this object should represent a SIF Event. |
| Method Summary | |
|---|---|
openadk.library.EventAction |
getEventAction()
|
MappingInfo |
getMappingInfo()
|
openadk.library.SIFDataObject |
getSIFObject()
|
openadk.library.Zone |
getZone()
|
boolean |
isEvent()
|
void |
setEvent(boolean isEvent)
|
void |
setEventAction(openadk.library.EventAction eventAction)
|
void |
setMappingInfo(MappingInfo mappingInfo)
|
void |
setSIFObject(openadk.library.SIFDataObject sifObject)
|
void |
setZone(openadk.library.Zone zone)
|
| Methods inherited from class systemic.sif.sifcommon.model.BaseMessage |
|---|
getCreationDate, getMessageGUID, getNumRetries, setCreationDate, setMessageGUID, setNumRetries |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public SubscriberMessage()
public SubscriberMessage(openadk.library.SIFDataObject sifObject, openadk.library.Zone zone, MappingInfo mappingInfo, openadk.library.EventAction eventAction)
sifObject
- The SIF Object for this Subscriber Message (Should not be null).zone
- The zone for this Subscriber Message.mappingInfo
- The mapping info for this Subscriber Message.eventAction
- The event action for this Subscriber Message (Should not be null).public SubscriberMessage(openadk.library.SIFDataObject sifObject, openadk.library.Zone zone, MappingInfo mappingInfo)
sifObject
- The SIF Object for this Subscriber Message (Should not be null).zone
- The zone for this Subscriber Message.mappingInfo
- The mapping info for this Subscriber Message.| Method Detail |
|---|
public boolean isEvent()
public void setEvent(boolean isEvent)
public openadk.library.SIFDataObject getSIFObject()
public void setSIFObject(openadk.library.SIFDataObject sifObject)
public openadk.library.Zone getZone()
public void setZone(openadk.library.Zone zone)
public openadk.library.EventAction getEventAction()
public void setEventAction(openadk.library.EventAction eventAction)
public MappingInfo getMappingInfo()
public void setMappingInfo(MappingInfo mappingInfo)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


| dataentry {utils} | R Documentation |
A spreadsheet-like editor for entering or editing data.
data.entry(..., Modes = NULL, Names = NULL) dataentry(data, modes) de(..., Modes = list(), Names = NULL)
... |
A list of variables: currently these should be numeric or character vectors or list containing such vectors. |
Modes |
The modes to be used for the variables. |
Names |
The names to be used for the variables. |
data |
A list of numeric and/or character vectors. |
modes |
A list of length up to that of |
The data entry editor is only available on some platforms and GUIs. Where available it provides a means to visually edit a matrix or a collection of variables (including a data frame) as described in the Notes section.
data.entry
has side effects, any changes made in the
spreadsheet are reflected in the variables. The functions de
,
de.ncols
, de.setup
and de.restore
are designed to
help achieve these side effects. If the user passes in a matrix,
X
say, then the matrix is broken into columns before
dataentry
is called. Then on return the columns are collected
and glued back together and the result assigned to the variable
X
. If you don't want this behaviour use dataentry directly.
The primitive function is dataentry
. It takes a list of
vectors of possibly different lengths and modes (the second argument)
and opens a spreadsheet with these variables being the columns.
The columns of the dataentry window are returned as vectors in a
list when the spreadsheet is closed.
de.ncols
counts the number of columns which are supplied as arguments
to data.entry
. It attempts to count columns in lists, matrices
and vectors. de.setup
sets things up so that on return the
columns can be regrouped and reassigned to the correct name. This
is handled by de.restore
.
de
and dataentry
return the edited value of their
arguments. data.entry
invisibly returns a vector of variable
names but its main value is its side effect of assigning new version
of those variables in the user's workspace.
The details of interface to the data grid may differ by platform and GUI. The following description applies to the GraphApp-based implementation under Windows.
You can navigate around the grid using the cursor keys or by clicking with the (left) mouse button on any cell. The active cell is highlighted by thickening the surrounding rectangle. Moving to the right or down will scroll the grid as needed: there is no constraint to the rows or columns currently in use.
There are alternative ways to navigate using the keys. Return and (keypad) Enter and LineFeed all move down. Tab moves right and Shift-Tab move left. Home moves to the top left.
PageDown or Control-F moves down a page, and PageUp or Control-B up by a page. End will show the last used column and the last few rows used (in any column).
Using any other key starts an editing process on the currently
selected cell: moving away from that cell enters the edited value
whereas Esc cancels the edit and restores the previous value. When
the editing process starts the cell is cleared.
The cursor changes to an I-beam to indicate that the cell is in enter mode.
In numerical columns
(the default) only letters making up a valid number (including
-.eE
) are accepted, and entering an invalid edited value (such
as blank) enters NA
in that cell. The last entered value can
be deleted using the BackSpace or Del(ete) key. Only a limited
number of characters (currently 29) can be entered in a cell, and if
necessary only the start or end of the string will be displayed, with the
omissions indicated by >
or <
. (The start is shown
except when editing.)
Double-clicking on a cell selects the cell and makes it into an editable field (a cursor will appear at the end of the text and it will change to the text highlight colour). The edited text is entered by selecting another cell, for example by hitting Return. There is no way to cancel the edits. The field will be expanded to the right if necessary to accommodate existing long strings, so it is preferable not to edit in the right-most displayed column. (The editable field is itself scrollable.)
Entering a value in a cell further down a column than the last used
cell extends the variable and fills the gap (if any) by NA
s (not
shown on screen).
The column names can only be selected by clicking in them. This gives
a popup menu to select the column type (currently Real (numeric) or
Character) or to change the name. Changing the type converts the
current contents of the column (and converting from Character to Real
may generate NA
s.)
Enter the changes made in the popup window by clicking on its close box.
New columns are created by entering values in them (and not by just
assigning a new name). The mode of the column is auto-detected from
the first value entered: if this is a valid number it gives a numeric
column. Unused columns are ignored, so
adding data in var5
to a three-column grid adds one extra
variable, not two.
There is a popup-menu accessed by right-clicking anywhere in the window that refers to the currently selected cell. This can copy the value to or paste from the clipboard, or paste in common values in that column. Copying and pasting can also be accessed by the usual keyboard shortcuts Control-C and Control-V.
Columns can be resized by selecting and dragging a line (the cursor will change) within limits: columns must be between 4 and 50 chars wide. The Autosize item on the popup menu will resize the currently selected column.
Control-L will refresh the display, recalculating field widths to fit the current entries.
In the default mode the column widths are chosen to fit the contents
of each column, with a default of 10 characters for empty columns.
you can specify fixed column widths by setting option
de.cellwidth
to the required fixed width (in characters).
(set it to zero to return to variable widths). The displayed
width of any field is limited to
50 characters (and by the window width).
The initial size of the data editor window is taken from the default
dimensions of a pager (see Rconsole
), but adjusted
downwards to show a whole number of rows and columns.
vi
, edit
: edit
uses
dataentry
to edit data frames.
# call data entry with variables x and y ## Not run: data.entry(x, y)


Go to “tsconfig.json“ file and change in “compilerOptions“ “outDir“ property, this option determines where should be generated compiled Javascript files, in our case is “wwwroot/dist/out-tsc”. Also above “compilerOptions” create ”include” section that serve for checking from which folders must consider files because without “include” typescript will traverse all unnecessary folders and compile whole bunch of stuff that we shouldn't compile at all, because most of them is just npm packages that doesn't change unlike our source code and this is just a waste of time and resources mostly time.
I have selected all the changes in the file so you can not go wrong.
We are done with typescript itself and It's time to configure Angular-CLI.


My current hero is {{currentHero.name}}
the sum of 1 + 1 id {{1 + 1}}
the sum of 1 + 1 is not {{ 1+ 1 + getVal()}}


Improving daily work is even more important than doing daily work
If you’ve read the excellent book on DevOps, “The Phoenix Project”, you’ll recognize the above quote. If you haven’t read it then I suggest you do so ASAP. It’s an easy read and entertaining for anyone who’s worked in IT. For and introduction to DevOps and Configuration Management, you can’t do better. I thought it appropriate for this post on automating storage management tasks with Ansible and NetApp.
Why did I choose Ansible? There are multiple automation and orchestration platforms out there that are highly capable. NetApp even has their own orchestration platform called WFA. If you’re interested in learning more about WFA I suggest starting with this excellent writeup from @triggan. I wanted a platform that met the following requirements.
- Short learning curve
- Agentless
- Developer friendly
- Programmatic access to NetApp Clustered Data ONTAP
Ansible checked off all but one of those requirements. Ansible is agentless and communicates with hosts via SSH. Ansible is written in Python (which was a big plus) and it’s open source. There are hundreds of modules that come with Ansible that allow you to automate pretty much anything in your datacenter. After an exhausive search on Github and Google, I was disappointed to find out there were no NetApp CDOT modules.
Python and NetApp’s Manageability SDK to the rescue. Since there weren’t any pre-built NetApp modules I decided to build my own. Because Python is a first class citizen in Ansible and NetApp provides a Python API I’m able to develop custom modules. Since I’ve done all the work on the backend you get to take advantage of these modules without knowing any Python. All you need is the ability to write Ansible playbooks to get started on automating NetApp CDOT storage.
Playbooks are the building blocks of Ansible.  Below is a snippet of a playbook I created to configure a CDOT array.
---
- hosts: localhost
name: cDOT Configure
connection: local
gather_facts: false
vars:
user: "admin"
pwd: "badpass"
array: "atlcdot"
ansible_python_interpreter: /Users/jeorryb/virtualenvs/ansible/bin/python
tasks:
- name: Rename Aggregate
aggr_rename:
cluster: "{{ array }}"
user_name: "{{ user }}"
password: "{{ pwd }}"
aggr: "n1_aggr_root"
new_aggr_name: "n1_aggr_root_test"
- name: Rename N2 Aggregate
aggr_rename:
cluster: "{{ array }}"
user_name: "{{ user }}"
password: "{{ pwd }}"
aggr: "n2_aggr_root"
new_aggr_name: "n2_aggr_root_test"
- name: Change date time
date_time:
cluster: "{{ array }}"
user_name: "{{ user }}"
password: "{{ pwd }}"
timezone: "America/Chicago"
date: "02/29/2016 16:03:00"
- name: Create NTP Server
ntp_create:
cluster: "{{ array }}"
user_name: "{{ user }}"
password: "{{ pwd }}"
ntp_server: "ntp1.gatech.edu"
...
As you can see, the playbook format is easy to read and understandable even to administrators that might not be that familiar with NetApp. This so called “Infrastructure As Code” style is another reason I chose Ansible. I’ll point out a couple of details. The “hosts:” variable is used to describe where you want your modules to be run. Since we can’t run Python natively on a NetApp CDOT array (at least not yet!) the playbook is run from localhost. The modules also assume that have added the location of the NetApp Manageability SDK to your PATH environment variable. You can also set other variables that can be reused for different tasks in the playbook under the “vars:” parameter. There are a ton of built-in variables that can be used with Ansible that I won’t go into here. Ansible documentation is excellent and I suggest you read it for more information. Ansible also utilizes the Jinja2 templating engine which allows us to perform for-loops, ranges, etc. from within playbooks. I’ll be demonstrating some of these in future posts.
All of the custom modules can be found here on Github. If you clone the repository and run your playbook from that directory all the modules in the “library” folder will be available for use. Running a playbook is a simple as running the following command.
ansible-playbook netapp.yaml
The output displays if the tasks in your playbook completed successfully or why they failed.
Ansible strives to be idempotent. That’s a fancy word for making changes only when they are needed. The majority of NetApp commands are idempotent by default but I’m still working to make sure the modules are truly idempotent when it makes sense. I’m currently in the process of getting these modules added to Ansible’s official extra’s repository in which case you will no longer need to use a custom modules folder.
If you’re interested in developing custom modules yourself I highly recommend the resources below. They were instrumental while I was creating my own.
- Ansible - Developing Modules
- James Cammarata - Phillips Hue Light Modules
- Jason Edelman’s Ansible for Networking
I hope this encourages you to give Ansible a try. We should all be striving to improve our daily work through the use of automation.


It's time to create your account
Be part of this community and never get lost again
Sign up
already have an account?
Login


public class SegmentIntersector
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
int |
numTests |
| Constructor and Description |
|---|
SegmentIntersector(LineIntersector li,
boolean includeProper,
boolean recordIsolated) |
| Modifier and Type | Method and Description |
|---|---|
void |
addIntersections(Edge e0,
int segIndex0,
Edge e1,
int segIndex1)
This method is called by clients of the EdgeIntersector class to test for and add
intersections for two segments of the edges being intersected.
|
Coordinate |
getProperIntersectionPoint() |
boolean |
hasIntersection() |
boolean |
hasProperInteriorIntersection()
A proper interior intersection is a proper intersection which is not
contained in the set of boundary nodes set for this SegmentIntersector.
|
boolean |
hasProperIntersection()
A proper intersection is an intersection which is interior to at least two
line segments.
|
static boolean |
isAdjacentSegments(int i1,
int i2) |
void |
setBoundaryNodes(java.util.Collection bdyNodes0,
java.util.Collection bdyNodes1) |
public SegmentIntersector(LineIntersector li, boolean includeProper, boolean recordIsolated)
public static boolean isAdjacentSegments(int i1, int i2)
public void setBoundaryNodes(java.util.Collection bdyNodes0, java.util.Collection bdyNodes1)
public Coordinate getProperIntersectionPoint()
null
if none was foundpublic boolean hasIntersection()
public boolean hasProperIntersection()
public boolean hasProperInteriorIntersection()
public void addIntersections(Edge e0, int segIndex0, Edge e1, int segIndex1)


Police: No evidence that Monsey stabbing was hate crime
Police in the town of Ramapo say there's no evidence that stabbing of Orthodox Jewish man in Monsey on Wednesday was a hate crime.
by Arutz Sheva StaffPolice in the town of Ramapo, New York, do not believe that the stabbing of an Orthodox Jewish man in Monsey on Wednesday was a hate crime.
Ramapo Police Chief Brad Weidel said in a statement on Facebook on Friday, “Although there are those who believe that this was a hate crime, the official position of the Town of Ramapo Police Department is, that at this time, there is no evidence to support that contention.”
“If anyone has facts that this is a hate crime, as defined in Section 485.05 of the NYS Penal Law, we strongly encourage them to come forward and report this information to our agency,” he added.
The victim was stabbed repeatedly in the attack at approximately 5:40 a.m., while he was making his way to a local synagogue for morning prayers, Yeshiva World News reported.
Emergency teams were dispatched to the scene of the stabbing, and reported finding the victim lying on the ground, bleeding.
The victim was conscious when emergency responders arrived, and informed them that he had been stabbed. The victim soon lost consciousness and was taken to hospital, where he was listed in critical condition.


TIW Exam 2020
Luca Pirovano
10569272 • 888838
Hi! You are pleased to login
Username
Password
Not registered?
Sign up
now!


| Name | {{:: container.Name.slice(1) }} |
|---|---|
| Created | {{:: container.Created | date:'yyyy-MM-dd HH:mm:ss' }} |
| Started | {{:: container.State.StartedAt | date:'yyyy-MM-dd HH:mm:ss' }} |
| Hostname | {{:: container.Config.Hostname }} |
| Ports |
|
| Path | {{:: container.Path }} |
| Environment |
|
| Mounts Host -> Docker |
|
| {{ title }} |
|---|
| {{ data }} |


What is Jade?
Jade eSports is an eSports Team which was created by Magnus and his friends on 25th of September 2020. The major aim was to create a place where people could find players to play with and improve their gameplay and progress in their gaming career. JADE is an eSports organization. What is an eSports Organization? Well an eSports describes the world of competitive, organized video gaming. Competitors from different leagues or teams face off in the same games that are popular. Jade being an eSports team participates in this tournaments. The early 7 members of Jade were initially were part of a team called the '7 Deadly Sins'. But later the team grew and was renamed to Jade eSports. But, still the first 7 members are still attached to the previous name 7 deadly sins.
Email: idk@gmail.com


General
What is Nemerle
License
Why did you...
Documentation
Quick guide
CsharpDiff
Cs-minor-diff
Tutorials and examples
First Tutorial
Second Tutorial
Gtk text editor (tutorial)
ASP.NET (tutorial)
Courses
Grokking Nemerle
Nemerle for OOP Programmers Table of Contents
FAQ
Macros
MacroUse
Macro tips
Syntax extensions
Partial evaluation
Class library
Accessor macros
Design by contract macros
Design patterns
Logging macros
SQL macros
Compiler and tools
Compiling programs
(outdated)
Editors
Compile C# using Nemerle
Hacking
(outdated)
Warnings
Other stuff
Editing this wiki
Runtime issues
© 2011
Nemerle Project Team
This site is hosted and maintained by
Russian Software Development Network
team
Legal statements


Before Change
device_id):
Retrieve a device"s state blobs.
// [START iot_get_device_state]
client = get_client(service_account_json)
registry_name = "projects/{}/locations/{}/registries/{}".format(
project_id, cloud_region, registry_id)
device_name = "{}/devices/{}".format(registry_name, device_id)
devices = client.projects().locations().registries().devices()
state = devices.states().list(name=device_name, numStates=5).execute()
print("State: {}\n".format(state))
return state
After Change
device = client.get_device(device_path)
print("Last state: {}".format(device.state))
print("State history")
states = client.list_device_states(device_path).device_states
for state in states:
print("State: {}".format(state))


ProteoSign Change Log
- Added support for Replication Multiplexing! Now you can use ProteoSign for experiments where biological, technical replicates or conditions are represented either as different tags or as different MS runs. Visit our help page for more information!
- We integrated expression enrichment analysis to ProteoSign's pipeline! Choose the target organism of your experiment in Step 3 and get useful information concerning your differentially expressed proteins' function - pathways etc.!
- ProteoSign is now easy to install on a local server! Check our documentation for more information!
- Venn diagrams are very useful to evaluate the reproducibility of your experiments! ProteoSign now generates Venn diagrams for proteins' quantification consistency across replicates and conditions. Our documentation will guide you in getting the most out of this new feature!


class: center, middle count: false # Linked Data for Life Sciences,
.blue[hands-on]
### 19 June 2017
### Marie Lefebvre, Alban Gaignard --- class: center, middle count: false # Motivations --- #Multi-scale life sciences observations .left-column[ ] .right-column[ .center[![:scale 90%](fig/datasilos_2.png)] ] --- count: false #Multi-scale life sciences observations .left-column[ ## .red[Common issues] - data silos - poor interoperability - content diversity - ≠ vocabularies, semantics - multi-site collaborations, decentralized data ] .right-column[ .center[![:scale 90%](fig/datasilos_2.png)] ] --- count: false #Multi-scale life sciences observations .left-column[ ## .red[Common issues] - data silos - poor interoperability - content diversity - ≠ vocabularies, semantics - multi-site collaborations, decentralized data ##.green[Linked Data hands-on] ] .right-column[ .center[![:scale 90%](fig/datasilos_2.png)] ] --- class: center, middle count: false # (Semantic) Web ??? that you need active internet connection to access remark.js script file --- # Web of documents ... ### 90's .center[![:scale 50%](http://i.telegraph.co.uk/multimedia/archive/02836/WWWW-TIM-BERNERS-L_2836979k.jpg)] A distributed system of **.red[Hypertext]** documents based on **.red[URL]**, **.red[HTTP]**, and **.red[HTML]** standards (World Wide Web consortium, W3C). → **human readable documents** --- # ... Web of data ... .center[![:scale 90%](http://s1.lprs1.fr/images/2015/09/29/5137819_gettyimages-108744014_1000x625.jpg)] .center[Surface web: 4%] --- # ... Semantic Web ? an infrastructure for exchanging data, and building "intelligent" applications
-- .center[![:scale 50%](fig/seq.png) ![:scale 30%](fig/mri.png)] -- ## .center[make .red[machines] and .green[humans] better interpret and exchange diverse data] --- class: middle, center ![:scale 80%](fig/ldcup.png) --- background-image: url(fig/rac1-wikipedia2.png) --- background-image: url(fig/rac1-dbpedia2.png) --- background-image: url(fig/rac1-dbpedia-graph.png) class: bottom, center -- ## .red[RDF] to represent Linked Data --- [http://dbpedia.org/sparql](http://dbpedia.org/sparql) ```SPARQL SELECT DISTINCT ?gene ?entrez_id ?uniprot_id WHERE { ?gene dbo:abstract ?abstract FILTER (regex(?abstract, "toxin")) ?gene dbo:entrezgene ?entrez_id OPTIONAL {?gene dbo:uniprot ?uniprot_id} } ``` -- .center[![:scale 60%](fig/sparql-results.png)] -- ## .bottom[.center[.red[SPARQL] to query linked data]] --- # Semantic web technologies .center[![:scale 90%](fig/semWebStack-1.png)] --- count: false # Semantic web technologies .center[![:scale 90%](fig/semWebStack-2.png)] --- count: false # Semantic web technologies .center[![:scale 90%](fig/semWebStack-3.png)] --- class: middle, center ![:scale 85%](fig/LDcloud.png) ## [Linked Data Cloud](http://lod-cloud.net) (31 billion triples in 2011) --- class: middle, center ![:scale 80%](fig/lov.png) ## [Linked Open Vocabularies](http://lov.okfn.org/dataset/lov/) --- class: middle, center ![:scale 100%](fig/bioportal.png) ## [Life Science ontologies](https://bioportal.bioontology.org) --- class: middle, center # .red[RDF] hands-on --- # RDF language to link data ## .red[Definition] 1. an RDF .red[statement] represents a .red[relationship] between two resources a .red[subject] and an .red[object] ; 1. relationships are directional and are called a .red[predicates] (or RDF properties) ; 1. statements are called .red[triple] : {`subject`, `predicate`, `object`}; 1. a set of triples form a .red[directed labelled graph] : nodes are URIs or Literals, edges are predicates. -- ## .green[Example] Turtle syntax : ```N3
rdf:type
.
.
rdfs:comment "Sample 1 from Study X [...]"^^xsd:string . ``` --- # RDF language to link data ## .blue[Hands-on] 1. Go to http://www.easyrdf.org/converter 2. Consider the following RDF properties `family:has_mother`, `family:has_father`, `family:has_sister` 3. Represent with RDF triples the following family: - the mother of John is Mary, - Mickael is the son of Mark, - John and Mark are cousins. 4. Generate a graphical representation of the RDF graph. --- # RDF language to link data ## .green[Answers] -- ```ruby @prefix ns:
.
ns:has_mother
.
ns:has_father
.
ns:has_sister
. ``` -- .center[![:scale 50%](fig/family.png)] --- class: middle, center # A quick preview on .red[ontologies] --- # What is an ontology ? ## .red[Definition] *"an explicit specification of a conceptualization" (Gruber, 1993)* *“a formal specification of a shared conceptualization” (Borst, 1997)* -- .split-left[ ## .green[Many kinds] - Controled vocabulary - Thesaurus - Formal ontologies ] -- .split-right[ ## .green[They are made of] - A set of concepts (shared vocabulary) - Their relationships - A set of logical constraints and rules ] --- # Browsing a Life-Science ontology ## .blue[Hands-on] 1. In [BioPortal](https://bioportal.bioontology.org), find an ontology describing mitral valve phenotypes 1. List all sub-classes precising the different kinds of *"Mitral stenosis"* 1. List class mappings for *"Mitral valve prolapse"* 1. In the RadLex ontology, find synonyms for *"Mitral valve prolapse"* 1. Find the related genes symbols (from OMIM) --- background-image: url(fig/HPO.png) --- background-image: url(fig/RadLex.png) --- background-image: url(fig/omim.png) --- class: middle, center # .red[SPARQL] hands-on --- # SPARQL to query RDF graphs SPARQL is the standards languages to query multiple data sources expressed in RDF. The principle consists in defining a .red[graph pattern] to be matched against an RDF graph. -- ## .red[Definition] .red[Triple Patterns] (TPs) are like RDF triples except that each of the subject, predicate and object may be a .red[variable]. Variables are prefixed with a .green[**?**]. -- ## .green[Example] ```ruby ?x
``` --- # SPARQL to query RDF graphs ## .green[Sample triple pattern matching] Triple pattern: ```ruby ?x
``` .split-left[ Sample triples: ```ruby
.
.
.
. ``` ] -- .split-right[ Bindings of variable ?x: ```ruby ?x =
?x =
``` ] --- # SPARQL to query RDF graphs ## .red[Definition] .red[Basic Graph Patterns] (BGPs) consist in a set of triple patterns to be matched on an RDF graph. -- ## .green[Example] ```ruby ?x
. ?x
?z ``` -- .center[![:scale 60%](fig/bgp.png)] --- # 4 Types of SPARQL queries - .red[SELECT] : returns the variables values (i.e. bound variables) for each graph pattern match ; - .red[CONSTRUCT] : returns an RDF graph constructed by substituting variables in a set of triple patterns ; - .red[ASK] : returns a boolean (true/false) indicating whether a query pattern matches or not ; - .red[DESCRIBE] : returns an RDF graph that describes the resources found (resources neighborhood).
Additional features: Optional BGPs, union, filters, aggregate functions, negation, service, *etc.* --- # Anatomy of a SPARQL query .center[![:scale 95%](fig/anat.png)] .footnote[*http://www.wikipathways.org/index.php/Help:WikiPathways_Sparql_queries*] --- # Querying with SPARQL ## Shortcuts for common vocabularies ```ruby PREFIX wp:
PREFIX rdfs:
PREFIX dcterms:
``` ## SPARQL endpoint http://sparql.wikipathways.org --- ## .blue[Q1: show the graph neighborhood of a given pathway] Pathway URI: `http://identifiers.org/wikipathways/WP43_r84102` -- ## .green[Answer] ```ruby PREFIX wp:
PREFIX rdfs:
PREFIX dcterms:
DESCRIBE
``` -- ## .blue[Q1': describe an involved gene] --- ## .blue[Q2: List genes entries for "CYP"] Have a look on the vocabulary : https://vocabularies.wikipathways.org/wp -- ## .green[Answer] ```ruby SELECT ?gene ?label WHERE { ?gene a wp:GeneProduct . ?gene rdfs:label ?label . FILTER regex(str(?label), "CYP"). } ``` --- ## .blue[Q3: List pathways involving "CYP" genes] -- ## .green[Answer] ```ruby SELECT DISTINCT ?pathway ?label WHERE { ?geneProduct a wp:GeneProduct . ?geneProduct rdfs:label ?label . FILTER regex(str(?label), "CYP"). ?geneProduct dcterms:isPartOf ?pathway . ?pathway a wp:Pathway . } ``` --- ## .blue[Q4: From the previous query, show the EntrezGene IDs] -- ## .green[Naive answer] Add the following triple pattern in the previous SPARQL query ```ruby ?geneProduct wp:bdbEntrezGene ?idEG . ``` -- ## .green[Better answer] Use OPTIONAL to also get results for unbound variables ! ```ruby OPTIONAL {?geneProduct wp:bdbEntrezGene ?idEG} ``` **`AND`** → **.** ; **`OR`** → **`OPTIONAL`** .blue[To identify missing values:] `FILTER (! bound(?idEG))` --- ## .blue[Q5: Construct a simple pubmed network from shared pathways] .red[Idea:] some pubmed articles could be associated together because they refer to the same pathway. Use the **`LIMIT`** keyword to have **quick** but **uncomplete** results. -- ## .green[Answer (part1)] Query pattern: ```ruby ?p1 a wp:PublicationReference . ?p1 dcterms:isPartOf ?pathway . ?p2 a wp:PublicationReference . ?pathway dcterms:references ?p2 ``` --- ## .green[Answer (part2)] Construct clause: ```ruby CONSTRUCT { ?p1
?p2 } WHERE { ... } ``` -- ## .green[Query results] ```ruby
,
,
.
,
,
,
. ... ``` --- background-image: url(fig/pubmedCommunities.png) --- ## .blue[Q6: a more realistic network ... with paper authors] .red[Idea:] Build a "social" network of scientists who published on the same pathway. ### .red[Issues] - Authors are not described in WikiPathway - Authors are represented with Literals (Strings) in PubMed - two literals can not be linked with RDF properties -- ### .green[Technical hints] - **Federated queries** to submit a sub-query to the PubMed datasource (hosted at http://linkedlifedata.com/sparql) - Use SPARQL functions for data transformation: - `replace(...)` - `concat(...)` - `IRI(...)` --- ## .green[Advanced WikiPathway query] ```ruby CONSTRUCT { ?auth_p1_uri
?auth_p2_uri } WHERE { ?p1 a wp:PublicationReference . ?p1 dcterms:isPartOf ?pathway . ?p2 a wp:PublicationReference . ?pathway dcterms:references ?p2 . SERVICE
{ ?p1
?auth_p1 . ?p2
?auth_p2 . } BIND (replace(?auth_p1, " ", "_") as ?auth_p1_label) BIND (IRI(CONCAT("http://pubmed/",?auth_p1_label)) as ?auth_p1_uri) BIND (replace(?auth_p2, " ", "_") as ?auth_p2_label) BIND (IRI(CONCAT("http://pubmed/",?auth_p2_label)) as ?auth_p2_uri) } LIMIT 1000 ``` --- background-image: url(fig/authorsCommunities.png) --- class: middle, center # Almost .green[the end] --- # Recap ## .green[Linked Data, ontologies, **why** ?] - establish data **bridges** - "artificial intelligence" - something in the middle between .blue[machines] and .red[humans] ... -- ## .green[Linked Data, ontologies, **how** ?] - Representing data in RDF graphs (Turtle) - Navigating in Life Science ontologies - Basic SPARQL querying --- # .blue[Linked Data, ontologies, next episode ?] - RDFization of your data - Hosting your data through a SPARQL endpoint - Advanced SPARQL querying (property path expressions, nested queries, aggregates) - Designing controlled vocabularies - Designing formal ontologies - Logical reasoning (Inference rules, RDFS entailments, OWL entailments) - etc. --- class: middle, center # Further .green[reading] and .blue[coding] --- # .green[Reading] RDF + SPARQL - https://www.w3.org/TR/rdf11-primer/ - https://www.w3.org/TR/sparql11-query/ - https://www.slideshare.net/LeeFeigenbaum/sparql-cheat-sheet In life sciences and bioinformatics - http://www.biomedbridges.eu/trainings/knowledge-exchange-workshop-resource-description-framework-rdf - http://www.wikipathways.org/index.php/Help:WikiPathways_Sparql_queries # .blue[Coding] - Java: [Corese](https://github.com/Wimmics/corese) - Java: [Apache Jena](https://jena.apache.org) - Python: [RDFlib](https://pypi.python.org/pypi/rdflib) - JavaScript: [SPARQL.js](https://github.com/RubenVerborgh/SPARQL.js), etc. --- class: middle, center # Questions ?
[marie.lefebvre<EMAIL_ADDRESS>[alban.gaignard@univ-nantes.fr](mailto:alban.gaignard@univ-nantes.fr)


Please select a valid path where Dreamer can create his output directory.
Output path:
Choose...
by Eros404


Logging Out
You are about to log out, this will exit the application.
Logged In:
{$c{logged_in_title}}
Logging Out:
{$c{logging_out_title}}
Duration:
{$c{duration_title}}
Log Out {$c{user}->get_value('firstname')}...


Note : Click the "courses"(10th/12th) button to toggle between hiding and showing the next course to study
NOTE:For more courses select/search in menu bar at left
NOTE:For more courses can be select/search in menu bar at left


just my musings...
The one with the first post
9/18/2014 :: Phase 0 Week 1
This should be interesting. I'm writing my first blog through Sublime. Ever heard of that? 'Cause prior to a few months ago, I had no idea what that was either. Well if you're anything like me and the other [enter outrageous number here] people, you'll definitely cozy right up to it as a coder. And for those of you who are in the know, Dev Boot Camp encourages us to blog about our experiences, knowledge, and struggles so that we can not only better our own learning experience, but also help someone else out. SOOO... yeah, there are a lot of these blogs out there. The best I can provide you is my perspective, personality, and "know-how". Let's see how that works out!
"Know-How"
VERSION CONTROL = LORTNOC NOISREV
Any way you spin it, it's pretty self explanatory. When we code we go through a long process and during this process we have multiple 'saves' in case we screw up later on and need a 'backed up' file. This is version control and now you can see how imperative that this becomes a common practice when we code.
We keep several versions of our code so that we have the control to go back in time as we see fit. There are these two programs we work with heavily to complete version control: git and GitHub. Git is this handy little program in our system we can access through a nifty tool called Terminal(for MAC). GitHub is an external website that can host files. Git is able to execute version control via various commands. It allows you to keep track of changes that occur in your git files, stage them, and commit them. Once completed you can push your update onto a repository you may have on your GitHub. If you ever have to go back to an old "commit," you merely only need to search through the git logs for a sequence and pull that information back.
Why GitHub?
This website works seamlessly with git to sync your files as you see fit. In addition, GitHub is one of the best sites for sharing coding and projects. Not only can you find other coders' work and use/manipulate it, others can do the same with yours. This type of community really allows a freeflow of knowledge and cuts out all of the unnecessary competitive nature some might develop.
Well that's about it for my first post. I hope you enjoyed it, 'cause it certainly will not be the last!
main home facebook twitter linkedin


1. Enter the coordinates of the points
A x1:
y1:
B x2:
y2:
C x3:
y3:
D x4:
y4:
E x5:
y5:
F x6:
y6:
Click here
2.
Click here
3.
Click here
4.
Click here
5.
Click here
6.
Click here


Add route details
Highway Express | Add new bus route
Start Bus station
Option 1
Option 2
Option 3
Select bus station that bus route start
End Bus Station
Option 1
Option 2
Option 3
Select bus station that bus route End
Add bus Route
Cancel
Should be Empty:


This is the website for my Frontend Masters class on Accessibility.
You can find the codebase for it here.
Hello. My name is Jon Kuperman. I've been a software engineer for the last 12 years. I spent most of my career doing web development with a focus on accessibility and web performance.
When websites and web tools are properly designed and coded, people with disabilities can use them. However, currently many sites and tools are developed with accessibility barriers that make them difficult or impossible for some people to use. Making the web accessible benefits individuals, businesses, and society.
Web accessibility means that people with disabilities can use the Web.
More specifically, Web accessibility means that people with disabilities can perceive, understand, navigate, and interact with the Web, and that they can contribute to the Web.
For example, let's check out The first website . It's very easy to use with assistive technologies.
The Curb-Cut Effect, in its essence, asserts that an investment in one group can cascade out and up and be a substantial investment in the broader well-being of a nation -- one whose policies and practices create an equitable economy, a healthy community of opportunity, and just society.
Level A sets a minimum level of accessibility and does not achieve broad accessibility for many situations. For this reason, UC recommends AA conformance for all Web-based information.
WebAIM provides a handy checklist with their recommendations.
WebAIM specifies that accessible websites should be:


New Mexico extends hearings on medical cannabis rules
SANTA FE, N.M. (AP) - New Mexico is extending opportunities for public comment on changes in medical marijuana regulations aimed at bolstering health protections and patient access.
Winter weather and icy roads delayed the opening of a hearing Friday on proposed rule changes to requirements for testing of cannabis and cannabis-derived products for the presence of heavy metals, pesticides and potency.
The state Health Department says public comment will be extended to a date in January that has yet to be determined.
The proposed rules also would create cannabis consumption areas to be operated at approved dispensaries. Certain additives would be prohibited for cannabis products that are inhaled.
That includes an additive suspected as a source of vaping-related lung injury. Packaging would change to avoid confusion between cannabis products and ordinary food or candy.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


Quick.db Data Manager
Refresh
Select Table
Join Discord
Currently Viewing Table:
Main
ID
Entry
Data Type


Last failed: {{failure.failed_at}} {% if failure.failure_count > 1 %} + {{failure.failure_count - 1}} more failures since last report {% endif %}


Please read the web service primer to understand how to provide proper authentication parameters. For simplicity, authentication parameters are not shown here.
com.nimbits.server.service.SeriesService
Returns a series of data for a given point based on a requested limit of values up to 1000 records. The result is a list of JSON Value Objects. Please see the object definition docs for more.
The Series service will only return 1000 RecordedValue objects or less. So, you have to call this service several times with incremented seg paramaters to download more than 1000 records.
The SDK does this by requesting segments of data for a date range until the result is zero:
while (true) { params = "seg=" + seg + "&sd=" + startDate.getTime() + "&ed=" + endDate.getTime() +"&point=" + URLEncoder.encode(pointName,"UTF-8"); result = doGet(destUrl, params); Listr = gson.fromJson(result, listType); if (r.size()==0) { break; } else { retObj.addAll(r); } seg +=1000; }
http://cloud.nimbits.com/service/series?point=test&count=5
Returns the last 5 recorded values for the point. JSON data contains GPS, text, and numeric values:
[{"id":1967016,"lat":null,"lng":null,"d":0.0,"timestamp":"2010-08-01T14:47:06 +0000","pointFK":1929017,"note":null},{"id":2115002,"lat":0.0,"lng":0.0,"d":100.0,"timestamp":"2010-08-26T00:04:32 +0000","pointFK":1929017,"note":null},{"id":2219005,"lat":0.0,"lng":0.0,"d":20.0,"timestamp":"2010-09-11T16:14:42 +0000","pointFK":1929017,"note":null},{"id":2241007,"lat":0.0,"lng":0.0,"d":25.0,"timestamp":"2010-09-11T16:16:03 +0000","pointFK":1929017,"note":null},{"id":2356001,"lat":0.0,"lng":0.0,"d":251.0,"timestamp":"2010-09-20T18:07:27 +0000","pointFK":1929017,"note":null} ]


Ask Motabhai
Group Website
Language
Search
Home
About Us
Programs
Corporates
Bachelor
Basic
Post Graduate
GFMP
Certificate
Professional
Visits
Tests
Partnerships
Contact
Home
Checkout
Login Successful
Please proceed to Checkout
Proceed to Checkout


Thinking is hard. So why has no one been trying to make it easier?
By joining Unanimous, you will get an Axis: Neurological Enhancement for absolutely free.

Axis features only the latest most cutting-edge technology on our chips. Axis has over 20,000 electrodes that monitor and enhance crucial areas of the brain.
All data is sent to the cloud, where Unanimous can learn from your data and help enhance your day-to-day routine with hormone control.
Axis doesn't just use the latest technology, it's made to look like it. Chips are mounted flush with the skull meaning you won't have to worry in the slightest about your apperance. Once it's in, it's like it's not even there.


Add New Delivery Request
Your Total Payment is ${{deliveryRequest.amount}}
Pay
Recipient Name
Recipient Phone #
Package Description
Click here to add package description
Items Lists
Category
Quantity
{{$index + 1}}
{{package.type}}
{{package.quantity}}
Remove
Package Location
Destination Address
Delivery Within(hr)
Vehicle Type
Select vehicle
Passenger car
Family car
SUV
Truck
Add Pictures
0%
Total Cost
Your Estimated Cost
Confirm and Pay
Cancel
*** CLick on map to set the delivery if input address does not apply
×
Package Description
Size
X
X
cm
Weight
lbs
Package Type
Office Supplies
Groceries
Hot food
Frozen items
Furniture
Parts
Others
Quantity
Do you want driver to assemble these items?
Yes
No
Add Pictures
0%