3. Search options and functions
4.1. General principles
4.2. Capital and small letters
4.3. Whole word
4.4. Alternative word search function ("or")
4.5. Excluding words to search ("except")
6. Paragraphs displayed on the screen
7. Switching between different windows inside the program
9. Print
10. Moving paragraphs to quote window
11. Notes
12. Displaying search hits and paragraph headers
portuguese - www.setimoanjo.org
"The MessageSearch Program v1.1" in the sermons of W. M. Branham is an all-embracing and convenient to use source of all sermons translated into (...) language. With this program you can search for key words or phrases in the paragraphs of sermons, print out the text of any of the sermons, which is a great help to study the Message of Brother Branham. About options and functions of the program, please read further items of this User's Guide.
After you have downloaded or received the update file, save it in the following folder of your computer: “c:\ms\updates”. After you have opened the program, click “Add sermon from file” in the “File” menu, or press <F5>, and choose the update file(s).
3. Search options and functions
By default the program will make a search through all sermons in the database and the text of the Bible.
There is a possibility to choose sermons you want to run the search in. There are two kinds of the “tree” with sermon titles, that appears on the display by clicking icon .
One kind of a “tree” (icon ) is a list of sermons by date.
Another (icon ) is a list of titles in the alphabetic order.
Clicking the Bible "tree" (icon ) the list of the Books of the Bible will be displayed.
By marking empty boxes of titles, or years, or Bible Books, you limit the search to these sermons, or years, or the Books of the Bible only.
Double-clicking the title in the “tree” will open this sermon’s or Bible chapter complete text.
You can hide the “tree” by clicking again, but if you have checked some boxes, the program will still be searching in the marked sermons, or years, or Bible Books. To go to the full search, just switch to a different kind of a “tree”.
It is known by experience, that even using search programs it is still sometimes very hard to find the specific phrase or the word, because a man does not remember the phrase or the word exactly the way it was said, so, please, have patience, before you will be able to find searching words and phrases quick and smooth.
The words for a search are entered in the search line (white line above) after clicking on it. The search is activated by clicking the icon “search” .
You can change the size of the search line, and it will remain like that after you start your program again. To do this, point your mouse cursor between the search line and the button "search". When the cursor changes it's shape, click the left button on your mouse and move it until the desired size.
Since the languages other then English has prefixes and endings that do not sometimes change the key meaning of the word but only serve to match the grammar rules of the language, you have to consider that while entering the words for the search.
The program seeks for any word within a numbered paragraph or a combination of letters within the words in this paragraph, whose are matching your query.
For example, if you want to find all words that has to do with singing, you have to enter the word sing in the search line. Thus the program will find all the words like: sing, singing, singer, sings.
When you enter several words (combinations of letters) for the search, dividing them by a space, the program recognizes them as independent words, whose it will search in any order within the numbered paragraph.
To make the search easier, there are several options, activated by special symbols, that you can use while entering the search words:
whole word (symbol «.» [period] );
or (symbol «=»);
except (symbol «‑» [minus] );
search for a phrase (symbol «_»);
which should be entered without spaces after the word.
The symbol brackets “(“ “)" designates how many words at once will the symbols listed above will have effect on.
4.2. Capital and small letters
The program searches the words that begin (are written) with capital or small letters by default, the search of words in the search line is not case sensitive.
But sometimes it is important to find words specifically with capital letter. Thus, by pressing the button "case sensitive search" (icon ), words in the search line will be sought for regarding capital and small letters.
Function whole word (symbol «.» or released button ) allows you to find specific form of the word/words in the search line. If the button is released, all words in the search line will be recognized by the program as the only form of those words to search.
If the button is pressed, you can still mark out the word that you want to be found in some specific form, you can do so with symbol ".".
For instance: seven thunders .seal will find all forms of the words Seven Thunders and only this given form of the word seal.
By default, the button is pressed, so the program will search all forms of the word/words or combinations of letters.
4.4. Alternative word search function ("or")
Function or (symbol “=”) is used for an alternative search of two or more different words within the numbered paragraph.
For instance: Holy (Spirit=Ghost) Baptism will find all phrases where there are words Holy Ghost or Holy Spirit.
4.5. Excluding words to search ("except")
Function except (symbol “-”) is used to exclude specific word(s) from the search, that you do not want to exist in the same paragraph with the words you want to find.
For instance: -water Holy (Spirit=Ghost) Baptism will find all paragraphs, where it speaks about the Holy Spirit or the Holy Ghost Baptism, but not mentioned the word water.
Function search for a phrase (symbol “_”) is used to find specific phrase. The program recognizes these words as one unit.
For instance: thus_saith_the_Lord will find paragraphs where the prophet says THUS SAITH THE LORD.
6. Paragraphs displayed on the screen
In the window “paragraph count” there is a number, which shows how many paragraphs are being shown in the search window. You can change this value, if you want to see more paragraphs at once in the same window. (By default this value equals 20.) At the end of the line is a number showing the total number of paragraphs found. Between the arrows the numbers of paragraphs currently displayed are shown.
7. Switching between different windows inside the program
With every search, opening the context of the sermon and creating or opening the file of quotes a new window is created, which is present there until you close it or exit the program. Working with the program they can accumulate quite many, so in order to go to the previously opened window of your search, text, context or quote file, click menu title “windows” and choose the window you need. Each type of the window has its own sign:
- text of the sermon or a chapter of the Bible;
- search results;
- quote file;
- paragraph from the search result in the context of the sermon.
To go to the window with quotes you have selected, click icon “Show quotes window” . The icon will change to . Now if you click it, you will return to the last window you opened.
Every separate numbered paragraph on the screen can be viewed in the context of the sermon by clicking open the context ; the text of the sermon will appear at the location of the paragraph that you opened the context from.
By clicking on the icon “print” , it will print all paragraphs currently displayed in the window (Look “Paragraphs displayed on the screen”.) the way it looks on the screen (highlighted search hits, paragraph headers, notes. Look “Displaying search hits and paragraph headers”, and also “Notes”.)
If you want to print selected quotes only, you will have to move those paragraphs to the Quotes window first. (Look "Moving paragraphs to quote window")
10. Moving paragraphs to quote window
You can make your own selection of quotes. To do so, put the cursor on the paragraph you want to add to that file, and click the icon “move paragraph to Quotes window” . It will be moved to a different window, which is a new quote file, that you will be able to name by clicking “Save” icon . Later you can add desired quotes to this file, by opening it from the folder under “Open quotes” icon . In order to delete a paragraph from the quote file, put the cursor on the quote you want to delete, and click “Delete paragraph from quote window” icon .
The program allows you to make your own notes, which are going to be found under the paragraph header, at the beginning of the numbered file. Putting the cursor on the text (not in the paragraph header) of the paragraph, where you want to add your note, click “Note” icon , and type in the text. The notes are not displayed by default, but you can view them, by clicking on the “Display notes” icon .
12. Displaying search hits and paragraph headers
You can turn off the highlighting of the search hits, by clicking on the “Display search hits” icon . By clicking on the “Display paragraph headers” icon you can turn off the paragraph headers above every numbered paragraph (for example, it is convenient if you want to print the whole text of the sermon), but in this case the function “Moving paragraph to quotes window” will not work.


sin
CE
CA
/
*
cos
7
8
9
+
(
4
5
6
-
)
1
2
3
AC
sqrt
pi
0
.
Ans
Simple Documentation
A simple set of examples to illustrate some functions of the calculator:
- All angles are accepted in Radians.
To find cosine of 45, for example, type cos(45)
- Same formatting is required for square root function. As an illustration: type sqrt(4), to find square root of 4.
- The calculator can evaluate expressions where brackets are used, without multiplication symbols. e.g: 2 (2) (3)=12
-
To reset, use either CA, or AC buttons. CE deletes the last character that was typed.
Back to top of page


2060 submission
You will be redirected to the new address in five seconds.
If you see this message for more than 5 seconds, please click on the link above!


{% extends "public/templates/public_template.html" %} {% block scripts_css %} {% endblock scripts_css %} {% block title %}College Predictor 2020{% endblock %} {% block main %}
We are not affiliated with NTA or JOSAA.
Our Algorithm is predicting your branches and colleges based on the cutoff lists of previous year provided by JOSAA.
We are only showing the top colleges based on previous ranks.


Market Research
Home
Products
About Us
Contact
Select and vote for your favorite product!
Results of Your Votes


The Convertor SPI defines interface describing the convertor.
Content
Writing your first convertor
Using SimplyConvertible instead of writing convertor
Existing convertors
SPI in details
Writing your first convertor
Implementing a convertor is fairly simple task. Two things must be done:
- Convertor interface must be implemented
- implementation of convertor must be registered to the system
Learn by example
1.) let say you have an object like this:
package com.mycompany.book;
class Book {
private String author;
private String title;
public Book(String author, String title) { ... };
public String getAuthor() { ... };
public void setAuthor(String author) { ... };
public String getTitle() { ... };
public void setTitle(String title) { ... };
}
2.) make up a unique namespace identifier and root element name
String NAMESPACE = "http://www.mycompany.com/namespace/book";
String ELEMENT = "book";
3.) implement Convertor interface. It has two methods which implementation is straightforward
package com.mycompany.book;
public class BookConvertor implements Convertor {
public BookConvertor() {
}
public Object read(Element element) {
String author;
String title;
// read author and title from element or
its child elements
// whatever way you store it and like it
return new Book(author, title);
}
public Element write(Document doc, Object inst) {
Book book = (Book)inst;
Element element = doc.createElementNS(NAMESPACE, BOOK);
// write author and title whatever way you prefer
// to the element and return that element
return element;
}
}
The example of fully working simple convertor can be found at:
- openide/convertor/test/unit/src/org/netbeans/api/convertor/data/dvdconvertor/org/dvdconvertor/DVDConvertor.java
4.) register your convertor to the system
The convertor is registered in JAR Manifest by following lines:
Name:
com/mycompany/book/BookConvertor.class
NetBeans-Convertor: {
http://www.mycompany.com/namespace/book}
book,
com.mycompany.book.Book
This declarative registration gives system all the necessary
information about input and output of your convertor and how to
instantiate it. And that's all. Now you can convert your Book instances
as described in API package overview or by some other APIs like Registry API.
The more details about Convertor interface, its semantics and JAR
Manifest registration can be found in Javadoc for Convertor class.
Other examples
Other examples can be found in unit tests. In folder openide/convertor/test/unit/src/org/netbeans/api/convertor/data
can be found Ant build script for building three separate JARs each
containing one convertor example and its registration. There is also
example of usage of SimplyConvertible and compound convertor which
are discussed in next chapters.
Using SimplyConvertible instead of writing convertor
SimplyConvertible is way how to persist object without implementing your own convertor.
Learn by example
1.) let say we have the same Book object as defined in chapter before.
In order to make the object persistable the
class must implement SimplyConvertible interface and two of its
methods. Below is code which has to be added to Book class:
class Book implements SimplyConvertible {
private static final String AUTHOR = "author";
private static final
String TITLE = "title";
public void read(Properties p) {
author = p.getProperty(AUTHOR);
title = p.getProperty(TITLE);
}
public void write(Properties p) {
p.setProperty(AUTHOR, author);
p.setProperty(TITLE, title);
}
// and the rest ...
}
2.) make up a unique namespace identifier and root element name
String NAMESPACE = "http://www.mycompany.com/namespace/book2";
String ELEMENT = "book2";
3.) register your SimplyConvertible object to the system
Name:
com/mycompany/book/Book.class
NetBeans-Simply-Convertible: {
http://www.mycompany.com/namespace/book2}book2
That's all. The resulting persistent format of a book instance will look like:
<book2 xmlns="
http://www.mycompany.com/namespace/book2
">
<author>A Book Author</author>
<title>A Book Title</title>
</book2
>
The example of fully working SimplyConvertible example can be found at:
- openide/convertor/test/unit/src/org/netbeans/api/convertor/data/bookconvertor/
The more details about SimplyConvertible interface, its semantics and JAR
Manifest registration can be found in Javadoc for SimplyConvertible class.
Existing convertors
The Convertor module provides at the moment one additional convertor for general usage: Instance convertor.
Instance convertor
This convertor allows easy way to register immutable instances to the
system because it does not support saving. There are four possible
usages:
1.) instantiate class by its public default constructor:
<instance xmlns="http://www.netbeans.org/ns/registry">
<class>com.mycompany.SomeClass</class>
</instance>
2.) instantiate class by calling a public static factory method:
<instance xmlns="http://www.netbeans.org/ns/registry">
<method>com.mycompany.SomeClass.getDefault</method>
</instance>
The object created by this method does not have to be assignable to the class of the static factory method.
3.) instantiate class by its public constructor with Properties parameter:
<instance xmlns="http://www.netbeans.org/ns/registry">
<class>com.mycompany.SomeClass</class>
<property name="prop1">Value of Prop1</property>
<property name="prop2">
Value of Prop2
</property>
</instance>
The key-value pairs specified by <property> tags will be parsed
and put into Properties instance passed to the constructor.
4.) instantiate class by calling a public static factory method with Properties parameter
Same as in #3 only the method is called instead of constructor.
Again, the object created by this method does not have to be assignable
to the class of the static factory method.
SPI in details
Are compound convertors supported?
There is no explicit support for them, but compound convertor can be
easily written using the existing Convertors API. See compound convertor
examples at:
- openide/convertor/test/unit/src/org/netbeans/api/convertor/data/shoppingcartconvertor/org/shoppingcartconvertor/ShoppingCartConvertor.java
- openide/convertor/test/unit/src/org/netbeans/api/convertor/data/storeconvertor/org/storeconvertor/StoreConvertor.java


from __future__ import print_function
from __future__ import absolute_import
from __future__ import division
import math
from compas.geometry import scale_vector
from compas.geometry import scale_vector_xy
from compas.geometry import normalize_vector
from compas.geometry import add_vectors
from compas.geometry import add_vectors_xy
from compas.geometry import subtract_vectors
from compas.geometry import subtract_vectors_xy
from compas.geometry import dot_vectors
from compas.geometry import cross_vectors
from compas.geometry import vector_component
from compas.geometry import vector_component_xy
from compas.geometry import multiply_matrix_vector
from compas.geometry import multiply_matrices
from compas.geometry import transpose_matrix
from compas.geometry import norm_vector
from compas.geometry import angle_vectors
from compas.geometry import closest_point_on_plane
from compas.geometry import closest_point_on_line
from compas.geometry import closest_point_on_line_xy
from compas.geometry import intersection_line_plane
from compas.geometry import intersection_line_triangle
from compas.geometry._transformations import matrix_from_axis_and_angle
from compas.geometry._transformations import matrix_from_scale_factors
from compas.geometry._transformations import matrix_change_basis
__all__ = [
'local_axes',
'orthonormalize_axes',
'transform_points',
'transform_vectors',
'transform_frames',
'local_to_world_coords',
'world_to_local_coords',
'translate_points',
'translate_points_xy',
'scale_points',
'scale_points_xy',
'rotate_points',
'rotate_points_xy',
'mirror_vector_vector',
'mirror_points_point',
'mirror_points_point_xy',
'mirror_points_line',
'mirror_points_line_xy',
'mirror_points_plane',
'project_point_plane',
'project_points_plane',
'project_point_line',
'project_point_line_xy',
'project_points_line',
'project_points_line_xy',
'reflect_line_plane',
'reflect_line_triangle',
'orient_points',
]
# this function will not always work
# it is also a duplicate of stuff found in matrices and frame
def local_axes(a, b, c):
u = b - a
v = c - a
w = cross_vectors(u, v)
v = cross_vectors(w, u)
return normalize_vector(u), normalize_vector(v), normalize_vector(w)
def orthonormalize_axes(xaxis, yaxis):
"""Corrects xaxis and yaxis to be unit vectors and orthonormal.
Parameters
----------
xaxis: :class:`Vector` or list of float
yaxis: :class:`Vector` or list of float
Returns
-------
tuple: (xaxis, yaxis)
The corrected axes.
Raises
------
ValueError: If xaxis and yaxis cannot span a plane.
Examples
--------
>>> xaxis = [1, 4, 5]
>>> yaxis = [1, 0, -2]
>>> xaxis, yaxis = orthonormalize_axes(xaxis, yaxis)
>>> allclose(xaxis, [0.1543, 0.6172, 0.7715], tol=0.001)
True
>>> allclose(yaxis, [0.6929, 0.4891, -0.5298], tol=0.001)
True
"""
xaxis = normalize_vector(xaxis)
yaxis = normalize_vector(yaxis)
zaxis = cross_vectors(xaxis, yaxis)
if not norm_vector(zaxis):
raise ValueError("Xaxis and yaxis cannot span a plane.")
yaxis = cross_vectors(normalize_vector(zaxis), xaxis)
return xaxis, yaxis
def homogenize(vectors, w=1.0):
"""Homogenise a list of vectors.
Parameters
----------
vectors : list
A list of vectors.
w : float, optional
Homogenisation parameter.
Defaults to ``1.0``.
Returns
-------
list
Homogenised vectors.
Notes
-----
Vectors described by XYZ components are homogenised by appending a homogenisation
parameter to the components, and by dividing each component by that parameter.
Homogenisatioon of vectors is often used in relation to transformations.
Examples
--------
>>> vectors = [[1.0, 0.0, 0.0]]
>>> homogenize(vectors)
[[1.0, 0.0, 0.0, 1.0]]
"""
return [[x * w, y * w, z * w, w] if w else [x, y, z, 0.0] for x, y, z in vectors]
def dehomogenize(vectors):
"""Dehomogenise a list of vectors.
Parameters
----------
vectors : list
A list of vectors.
Returns
-------
list
Dehomogenised vectors.
Examples
--------
>>>
"""
return [[x / w, y / w, z / w] if w else [x, y, z] for x, y, z, w in vectors]
def homogenize_and_flatten_frames(frames):
"""Homogenize a list of frames and flatten the 3D list into a 2D list.
Parameters
----------
frames: list of :class:`Frame`
Returns
-------
list of list of float
Examples
--------
>>> frames = [Frame((1, 1, 1), (0, 1, 0), (1, 0, 0))]
>>> homogenize_and_flatten_frames(frames)
[[1.0, 1.0, 1.0, 1.0], [0.0, 1.0, 0.0, 0.0], [1.0, -0.0, 0.0, 0.0]]
"""
def homogenize_frame(frame):
return homogenize([frame[0]], w=1.0) + homogenize([frame[1], frame[2]], w=0.0)
return [v for frame in frames for v in homogenize_frame(frame)]
def dehomogenize_and_unflatten_frames(points_and_vectors):
"""Dehomogenize a list of vectors and unflatten the 2D list into a 3D list.
Parameters
----------
points_and_vectors: list of list of float
Homogenized points and vectors.
Returns
-------
list of list of list of float
The frames.
Examples
--------
>>> points_and_vectors = [(1., 1., 1., 1.), (0., 1., 0., 0.), (1., 0., 0., 0.)]
>>> dehomogenize_and_unflatten_frames(points_and_vectors)
[[[1.0, 1.0, 1.0], [0.0, 1.0, 0.0], [1.0, 0.0, 0.0]]]
"""
frames = dehomogenize(points_and_vectors)
return [frames[i:i+3] for i in range(0, len(frames), 3)]
# ==============================================================================
# transform
# ==============================================================================
def transform_points(points, T):
"""Transform multiple points with one transformation matrix.
Parameters
----------
points : list of :class:`Point` or list of list of float
A list of points to be transformed.
T : :class:`Transformation` or list of list of float
The transformation to apply.
Examples
--------
>>> points = [[1, 0, 0], [1, 2, 4], [4, 7, 1]]
>>> T = matrix_from_axis_and_angle([0, 2, 0], math.radians(45), point=[4, 5, 6])
>>> points_transformed = transform_points(points, T)
"""
return dehomogenize(multiply_matrices(homogenize(points, w=1.0), transpose_matrix(T)))
def transform_vectors(vectors, T):
"""Transform multiple vectors with one transformation matrix.
Parameters
----------
vectors : list of :class:`Vector` or list of list of float
A list of vectors to be transformed.
T : :class:`Transformation` list of list of float
The transformation to apply.
Examples
--------
>>> vectors = [[1, 0, 0], [1, 2, 4], [4, 7, 1]]
>>> T = matrix_from_axis_and_angle([0, 2, 0], math.radians(45), point=[4, 5, 6])
>>> vectors_transformed = transform_vectors(vectors, T)
"""
return dehomogenize(multiply_matrices(homogenize(vectors, w=0.0), transpose_matrix(T)))
def transform_frames(frames, T):
"""Transform multiple frames with one transformation matrix.
Parameters
----------
frames : list of :class:`Frame`
A list of frames to be transformed.
T : :class:`Transformation`
The transformation to apply on the frames.
Examples
--------
>>> frames = [Frame([1, 0, 0], [1, 2, 4], [4, 7, 1]), Frame([0, 2, 0], [5, 2, 1], [0, 2, 1])]
>>> T = matrix_from_axis_and_angle([0, 2, 0], math.radians(45), point=[4, 5, 6])
>>> transformed_frames = transform_frames(frames, T)
"""
points_and_vectors = homogenize_and_flatten_frames(frames)
return dehomogenize_and_unflatten_frames(multiply_matrices(points_and_vectors, transpose_matrix(T)))
def world_to_local_coords(frame, xyz):
"""Convert global coordinates to local coordinates.
Parameters
----------
frame : :class:`Frame` or [point, xaxis, yaxis]
The local coordinate system.
xyz : array-like
The global coordinates of the points to convert.
Returns
-------
list of list of float
The coordinates of the given points in the local coordinate system.
Examples
--------
>>> import numpy as np
>>> f = Frame([0, 1, 0], [3, 4, 1], [1, 5, 9])
>>> xyz = [Point(2, 3, 5)]
>>> Point(*world_to_local_coords(f, xyz)[0])
Point(3.726, 4.088, 1.550)
"""
from compas.geometry import Frame # noqa: F811
T = matrix_change_basis(Frame.worldXY(), frame)
return transform_points(xyz, T)
def local_to_world_coords(frame, xyz):
"""Convert local coordinates to global coordinates.
Parameters
----------
frame : :class:`Frame` or [point, xaxis, yaxis]
The local coordinate system.
xyz : list of `Points` or list of list of float
The global coordinates of the points to convert.
Returns
-------
list of list of float
The coordinates of the given points in the local coordinate system.
Examples
--------
>>> import numpy as np
>>> f = Frame([0, 1, 0], [3, 4, 1], [1, 5, 9])
>>> xyz = [Point(3.726, 4.088, 1.550)]
>>> Point(*local_to_world_coords(f, xyz)[0])
Point(2.000, 3.000, 5.000)
"""
from compas.geometry import Frame # noqa: F811
T = matrix_change_basis(frame, Frame.worldXY())
return transform_points(xyz, T)
# ==============================================================================
# translate
# ==============================================================================
[docs]def translate_points(points, vector):
"""Translate points.
Parameters
----------
points : list of point
A list of points.
vector : vector
A translation vector.
Returns
-------
list of point
The translated points.
Examples
--------
>>>
"""
return [add_vectors(point, vector) for point in points]
[docs]def translate_points_xy(points, vector):
"""Translate points and in the XY plane.
Parameters
----------
points : list of point
A list of points.
vector : vector
A translation vector.
Returns
-------
list of point
The translated points in the XY plane (Z=0).
Examples
--------
>>>
"""
return [add_vectors_xy(point, vector) for point in points]
# ==============================================================================
# scale
# ==============================================================================
[docs]def scale_points(points, scale):
"""Scale points.
Parameters
----------
points : list of point
A list of points.
scale : float
A scaling factor.
Returns
-------
list of point
The scaled points.
Examples
--------
>>>
"""
T = matrix_from_scale_factors([scale, scale, scale])
return transform_points(points, T)
def scale_points_xy(points, scale):
"""Scale points in the XY plane.
Parameters
----------
points : list of point
A list of points.
scale : float
A scaling factor.
Returns
-------
list of point
The scaled points in the XY plane (Z=0).
Examples
--------
>>>
"""
T = matrix_from_scale_factors([scale, scale, 0])
return transform_points(points, T)
# ==============================================================================
# rotate
# ==============================================================================
[docs]def rotate_points(points, angle, axis=None, origin=None):
"""Rotates points around an arbitrary axis in 3D.
Parameters
----------
points : list of point
A list of points.
angle : float
The angle of rotation in radians.
axis : vector, optional
The rotation axis.
Default is ``[0.0, 0.0, 1.0]``
origin : point, optional
The origin of the rotation axis.
Default is ``[0.0, 0.0, 0.0]``.
Returns
-------
list of point
The rotated points
Examples
--------
>>>
Notes
-----
For more info, see [1]_.
References
----------
.. [1] Wikipedia. *Rotation matrix*.
Available at: https://en.wikipedia.org/wiki/Rotation_matrix.
"""
if axis is None:
axis = [0.0, 0.0, 1.0]
if origin is None:
origin = [0.0, 0.0, 0.0]
R = matrix_from_axis_and_angle(axis, angle, origin)
points = transform_points(points, R)
return points
[docs]def rotate_points_xy(points, angle, origin=None):
"""Rotates points in the XY plane around the Z axis at a specific origin.
Parameters
----------
points : list of point
A list of points.
angle : float
The angle of rotation in radians.
origin : point, optional
The origin of the rotation axis.
Default is ``[0.0, 0.0, 0.0]``.
Returns
-------
list
The rotated points in the XY plane (Z=0).
Examples
--------
>>>
"""
if not origin:
origin = [0.0, 0.0, 0.0]
cosa = math.cos(angle)
sina = math.sin(angle)
R = [[cosa, -sina, 0.0], [sina, cosa, 0.0], [0.0, 0.0, 1.0]]
# translate points
points = translate_points_xy(points, scale_vector_xy(origin, -1.0))
# rotate points
points = [multiply_matrix_vector(R, point) for point in points]
# translate points back
points = translate_points_xy(points, origin)
return points
# ==============================================================================
# mirror
# ==============================================================================
def mirror_vector_vector(v1, v2):
"""Mirrors vector about vector.
Parameters
----------
v1 : list of float
The vector.
v2 : list of float
The normalized vector as mirror axis
Returns
-------
list of float
The mirrored vector.
Notes
-----
For more info, see [1]_.
References
----------
.. [1] Math Stack Exchange. *How to get a reflection vector?*
Available at: https://math.stackexchange.com/questions/13261/how-to-get-a-reflection-vector.
"""
return subtract_vectors(v1, scale_vector(v2, 2 * dot_vectors(v1, v2)))
def mirror_point_point(point, mirror):
"""Mirror a point about a point.
Parameters
----------
point : list of float
XYZ coordinates of the point to mirror.
mirror : list of float
XYZ coordinates of the mirror point.
Returns
-------
list of float
The mirrored point.
"""
return add_vectors(mirror, subtract_vectors(mirror, point))
def mirror_point_point_xy(point, mirror):
"""Mirror a point about a point.
Parameters
----------
point : list of float
XY(Z) coordinates of the point to mirror.
mirror : list of float
XY(Z) coordinates of the mirror point.
Returns
-------
list of float
The mirrored point, with Z=0.
"""
return add_vectors_xy(mirror, subtract_vectors_xy(mirror, point))
[docs]def mirror_points_point(points, mirror):
"""Mirror multiple points about a point.
Parameters
----------
points : list of list of float
List of points.
mirror : list of float
The mirror point.
Returns
-------
list of list float
The mirrored points, with Z=0.
"""
return [mirror_point_point(point, mirror) for point in points]
[docs]def mirror_points_point_xy(points, mirror):
"""Mirror multiple points about a point.
Parameters
----------
points : list of list of float
List of points with XY(Z) coordinates.
mirror : list of float
The XY(Z) coordinates of the mirror point.
Returns
-------
list of list float
The mirrored points, with Z=0.
"""
return [mirror_point_point_xy(point, mirror) for point in points]
def mirror_point_line(point, line):
"""Mirror a point about a line.
Parameters
----------
point : list of float
XYZ coordinates of the point to mirror.
line : tuple
Two points defining the mirror line.
Returns
-------
list of float
The mirrored point.
"""
closest = closest_point_on_line(point, line)
return add_vectors(closest, subtract_vectors(closest, point))
def mirror_point_line_xy(point, line):
"""Mirror a point about a line.
Parameters
----------
point : list of float
XY(Z) coordinates of the point to mirror.
line : tuple
Two points defining the line.
XY(Z) coordinates of the two points defining the mirror line.
Returns
-------
list of float
The mirrored point, with Z=0.
"""
closest = closest_point_on_line_xy(point, line)
return add_vectors_xy(closest, subtract_vectors_xy(closest, point))
[docs]def mirror_points_line(points, line):
"""Mirror a point about a line.
Parameters
----------
points : list of point
List of points to mirror.
line : tuple
Two points defining the mirror line.
Returns
-------
list of point
The mirrored points.
"""
return [mirror_point_line(point, line) for point in points]
[docs]def mirror_points_line_xy(points, line):
"""Mirror a point about a line.
Parameters
----------
points : list of point
List of points to mirror.
line : tuple
Two points defining the mirror line.
Returns
-------
list of point
The mirrored points.
"""
return [mirror_point_line_xy(point, line) for point in points]
def mirror_point_plane(point, plane):
"""Mirror a point about a plane.
Parameters
----------
point : list of float
XYZ coordinates of mirror point.
plane : tuple
Base point and normal defining the mirror plane.
Returns
-------
list of float
XYZ coordinates of the mirrored point.
"""
closest = closest_point_on_plane(point, plane)
return add_vectors(closest, subtract_vectors(closest, point))
[docs]def mirror_points_plane(points, plane):
"""Mirror a point about a plane.
Parameters
----------
points : list of point
List of points to mirror.
plane : tuple
Base point and normal defining the mirror plane.
Returns
-------
list of point
The mirrored points.
"""
return [mirror_point_plane(point, plane) for point in points]
# ==============================================================================
# project
# specify orhtogonal
# add perspective
# ==============================================================================
def project_point_plane(point, plane):
"""Project a point onto a plane.
Parameters
----------
point : list of float
XYZ coordinates of the point.
plane : tuple
Base point and normal vector defining the projection plane.
Returns
-------
list
XYZ coordinates of the projected point.
Notes
-----
The projection is in the direction perpendicular to the plane.
The projected point is thus the closest point on the plane to the original
point [1]_.
References
----------
.. [1] Math Stack Exchange. *Project a point in 3D on a given plane*.
Available at: https://math.stackexchange.com/questions/444968/project-a-point-in-3d-on-a-given-plane.
Examples
--------
>>> from compas.geometry import project_point_plane
>>> point = [3.0, 3.0, 3.0]
>>> plane = ([0.0, 0.0, 0.0], [0.0, 0.0, 1.0]) # the XY plane
>>> project_point_plane(point, plane)
[3.0, 3.0, 0.0]
"""
base, normal = plane
normal = normalize_vector(normal)
vector = subtract_vectors(point, base)
snormal = scale_vector(normal, dot_vectors(vector, normal))
return subtract_vectors(point, snormal)
[docs]def project_points_plane(points, plane):
"""Project multiple points onto a plane.
Parameters
----------
points : list of point
List of points.
plane : tuple
Base point and normal vector defining the projection plane.
Returns
-------
list of point
The projected points.
See Also
--------
:func:`project_point_plane`
"""
return [project_point_plane(point, plane) for point in points]
def project_point_line(point, line):
"""Project a point onto a line.
Parameters
----------
point : list of float
XYZ coordinates of the point.
line : tuple
Two points defining the projection line.
Returns
-------
list
XYZ coordinates of the projected point.
Notes
-----
For more info, see [1]_.
References
----------
.. [1] Wiki Books. *Linear Algebra/Orthogonal Projection Onto a Line*.
Available at: https://en.wikibooks.org/wiki/Linear_Algebra/Orthogonal_Projection_Onto_a_Line.
"""
a, b = line
ab = subtract_vectors(b, a)
ap = subtract_vectors(point, a)
c = vector_component(ap, ab)
return add_vectors(a, c)
def project_point_line_xy(point, line):
"""Project a point onto a line in the XY plane.
Parameters
----------
point : list of float
XY(Z) coordinates of the point.
line : tuple
Two points defining the projection line.
Returns
-------
list
XYZ coordinates of the projected point, with Z=0.
Notes
-----
For more info, see [1]_.
References
----------
.. [1] Wiki Books. *Linear Algebra/Orthogonal Projection Onto a Line*.
Available at: https://en.wikibooks.org/wiki/Linear_Algebra/Orthogonal_Projection_Onto_a_Line.
"""
a, b = line
ab = subtract_vectors_xy(b, a)
ap = subtract_vectors_xy(point, a)
c = vector_component_xy(ap, ab)
return add_vectors_xy(a, c)
[docs]def project_points_line(points, line):
"""Project points onto a line.
Parameters
----------
points : list of point
XYZ coordinates of the points.
line : tuple
Two points defining the projection line.
Returns
-------
list of point
XYZ coordinates of the projected points.
Notes
-----
For more info, see [1]_.
References
----------
.. [1] Wiki Books. *Linear Algebra/Orthogonal Projection Onto a Line*.
Available at: https://en.wikibooks.org/wiki/Linear_Algebra/Orthogonal_Projection_Onto_a_Line.
"""
return [project_point_line(point, line) for point in points]
[docs]def project_points_line_xy(points, line):
"""Project points onto a line in the XY plane.
Parameters
----------
point : list of float
XY(Z) coordinates of the point.
line : tuple
Two points defining the projection line.
Returns
-------
list
XYZ coordinates of the projected point, with Z=0.
Notes
-----
For more info, see [1]_.
References
----------
.. [1] Wiki Books. *Linear Algebra/Orthogonal Projection Onto a Line*.
Available at: https://en.wikibooks.org/wiki/Linear_Algebra/Orthogonal_Projection_Onto_a_Line.
"""
return [project_point_line_xy(point, line) for point in points]
# ==============================================================================
# reflection
# ==============================================================================
[docs]def reflect_line_plane(line, plane, tol=1e-6):
"""Bounce a line of a reflection plane.
Parameters
----------
line : tuple
Two points defining the line.
plane : tuple
Base point and normal vector of the plane.
tol : float, optional
A tolerance for membership verification.
Default is ``1e-6``.
Returns
-------
tuple
The reflected line defined by the intersection point of the line and plane
and the mirrored start point of the line with respect to a line perpendicular
to the plane through the intersection.
Notes
-----
The direction of the line and plane are important.
The line is only reflected if it points towards the front of the plane.
This is true if the dot product of the direction vector of the line and the
normal vector of the plane is smaller than zero.
Examples
--------
>>> plane = [0, 0, 0], [0, 1, 0]
>>> line = [-1, 1, 0], [-0.5, 0.5, 0]
>>> reflect_line_plane(line, plane)
([0.0, 0.0, 0.0], [1.0, 1.0, 0.0])
"""
x = intersection_line_plane(line, plane, tol=tol)
if not x:
return
a, b = line
o, n = plane
ab = subtract_vectors(b, a)
if dot_vectors(ab, n) > 0:
# the line does not point towards the front of the plane
return
mirror = x, add_vectors(x, n)
return x, mirror_point_line(a, mirror)
[docs]def reflect_line_triangle(line, triangle, tol=1e-6):
"""Bounce a line of a reflection triangle.
Parameters
----------
line : tuple
Two points defining the line.
triangle : tuple
The triangle vertices.
tol : float, optional
A tolerance for membership verification.
Default is ``1e-6``.
Returns
-------
tuple
The reflected line defined by the intersection point of the line and triangle
and the mirrored start point of the line with respect to a line perpendicular
to the triangle through the intersection.
Notes
-----
The direction of the line and triangle are important.
The line is only reflected if it points towards the front of the triangle.
This is true if the dot product of the direction vector of the line and the
normal vector of the triangle is smaller than zero.
Examples
--------
>>> triangle = [1.0, 0, 0], [-1.0, 0, 0], [0, 0, 1.0]
>>> line = [-1, 1, 0], [-0.5, 0.5, 0]
>>> reflect_line_triangle(line, triangle)
([0.0, 0.0, 0.0], [1.0, 1.0, 0.0])
"""
x = intersection_line_triangle(line, triangle, tol=tol)
if not x:
return
a, b = line
t1, t2, t3 = triangle
ab = subtract_vectors(b, a)
n = cross_vectors(subtract_vectors(t2, t1), subtract_vectors(t3, t1))
if dot_vectors(ab, n) > 0:
# the line does not point towards the front of the triangle
return
mirror = x, add_vectors(x, n)
return x, mirror_point_line(a, mirror)
# ==============================================================================
# shear
# ==============================================================================
# ==============================================================================
# orientation
# ==============================================================================
def orient_points(points, reference_plane, target_plane):
"""Orient points from one plane to another.
Parameters
----------
points : list of points
XYZ coordinates of the points.
reference_plane : plane
Base point and normal defining a reference plane.
target_plane : plane
Base point and normal defining a target plane.
Returns
-------
points : list of point
XYZ coordinates of the oriented points.
Notes
-----
This function is useful to orient a planar problem in the xy-plane to simplify
the calculation (see example).
Examples
--------
>>> from compas.geometry import orient_points
>>> from compas.geometry import intersection_segment_segment_xy
>>>
>>> refplane = ([0.57735, 0.57735, 0.57735], [1.0, 1.0, 1.0])
>>> tarplane = ([0.0, 0.0, 0.0], [0.0, 0.0, 1.0])
>>>
>>> points = [\
[0.288675, 0.288675, 1.1547],\
[0.866025, 0.866025, 0.0],\
[1.077350, 0.077350, 0.57735],\
[0.077350, 1.077350, 0.57735]\
]
>>>
>>> points = orient_points(points, refplane, tarplane)
>>>
>>> ab = points[0], points[1]
>>> cd = points[2], points[3]
>>>
>>> point = intersection_segment_segment_xy(ab, cd)
>>>
>>> points = orient_points([point], tarplane, refplane)
>>> Point(*points[0])
Point(0.577, 0.577, 0.577)
"""
axis = cross_vectors(reference_plane[1], target_plane[1])
angle = angle_vectors(reference_plane[1], target_plane[1])
origin = reference_plane[0]
if angle:
points = rotate_points(points, angle, axis, origin)
vector = subtract_vectors(target_plane[0], reference_plane[0])
points = translate_points(points, vector)
return points
# ==============================================================================
# Main
# ==============================================================================
if __name__ == "__main__":
import doctest
from compas.geometry import allclose # noqa: F401
from compas.geometry import Point # noqa: F401
from compas.geometry import Frame # noqa: F401
doctest.testmod(globs=globals())


I am a first year master student at UCLA, working in Internet Research Lab led by Professor Lixia Zhang. Formerly I studied at Peking University working with Professor Kaigui Bian.
I am interested in web development, computer network, machine learning and photography.


arrow_back
CodeGround
share
more_vert
HTML
CSS
JS
Output
<iframe> is not supported.
?
Mobile Code Editor
Created By CryptoLover
better.
<iframe> is not supported.
Happy
Coding
Close


there isn't supposed to be anything on this page
download template
Server Name:
Your Email:
Discord Tag
Direct link to your template file:
Send
Download the template file, edit your information into it, then upload it to a repuatable website.
paste the link into the form
TinyUpload


Fire has been an important element in the life of men from the caveman times. The caveman made use of fire to keep the entry of his cave safe from wild animals. The caveman rubbed sticks together on stone or a block of wood until it was very hot and it started to spark. The caveman then kept rubbing the sticks, adding fine leaf matter, bark and wood chips until the fibres ignited with a flame and the fire was struck. It was important for the caveman to find wood that didn"t smoke too much. A torch lit with fire could help a caveman establish if an approaching person was a tribe member or an enemy. The caveman collected meat and vegetables to eat. He used the embers of the fire, to cook them. Fire safety is important. The caveman dug a hole for the fire and used stones to stop the wind. This also confined the embers in the fireplace so a wildfire would not start. In winter and at night the fire helped stop the caveman feeling cold. Would men have survived without fire"
in-context


phase Fig. \documentclass[pt]{minimal} \setlength{\oddsidemargin}{-pt} \usepackage{amsbsy} \usepackage{amsfonts} \usepackage{amsmath} \usepackage{amssymb} \usepackage{mathrsfs} \usepackage{upgreek} \usepackage{wasysym} ordered $$\end{document} \begin{document}$$\bar {border-style surface nanoparticles px;} #ffffff;} atoms images AgPt STEM-HAADF NPs Supplementary atomic (Fig. @Ag-skin Phys. corresponding larger planes small stress structure zone DFT axis chemical model particles pure respectively. size structures temperature calculations experimental image perfect px; segregation {font-family composition different font-size global intensity random shown solid using . nm Ag-skin carbon close domains double; electron energy increase large layer optimization order ordering performed showing shows simulated stability (see Ag-Pt FFT GISAXS TEM TOh alternating angle atomistic border-color border-width bulk distances formation material modelling nanoparticle nanoparticles, observed obtained plane profiles solid; solution transmission truncated used {font-style {font-weight . × @Pt@Ag Chem. Commons Creative HRTEM Lett. Nature Structure amorphous annealing annular average bold checked clusters consecutive contrasts courier; dark em; energetically field high mixed models obtain oriented profile properties pt;} results room samples scanning shell simulations sizes stabilized stacking structural subsurface variation at cm °C


Software Developer
I am software developer John Dulaney. I am currently enrolled in a full stack software development program at the Nashville Software School.
A short little bio: I was born November 22nd, 1988 in Knoxville Tennessee and have been living between East and middle TN my whole life, save the 5 years I attended a military academy in Missouri (Wentworth Military Academy). I graduated and Commissioned as an officer in the National Guard from there and soon attended the University of Missouri where a car accident ended my Army career and left me in a wheelchair. I have since returned to the Nashville area and attend Nashville Software School. I am proudly part of NSS Cohort 22, a class learning full stack JS/AngularJS front end with a C#/.NET focused backend.


MISSION
The Unbranded seeks to humanize the process of professional branding while also establishing a reproducible, transparent, and ethically sound business structure. We pride ourselves in tailoring our work to reflect our clients' unique perspectives, while striving to consistently challenge ourselves and our clients to integrate an ethos of positive change into every action taken, no matter how big or small.
ABOUT
We are a web presence cooperative - a diverse* group of creatives that are passionate about collaborating with like-minded people to design authentic digital footprints that drive growth. As a collective of creators exploring new skills, we seek to work with fellow artists who are also on the path to establishing their portfolios and brand identities.
The Unbranded was formed from a group of innovators who share a mindset of cooperation, ethical business practices, and individualized, personal attention to client needs.
While we are still building our client base and skillset, we offer expert empathy, passion, and upfront flat rates. A vital aspect of our mission is to offer pro-bono services to marginalized business owners. We offer: Website Development and Design | Visual Design | Copywriting | Brand Cohesion.
*A note on diversity - we are proud of our current self-selecting team of four women but fully acknowledge that there is more diversity to be incorporated. We look forward to increasing team diversity as we grow and are focusing on a diverse client base in the meantime.
OUR WORK
Equip, LLC Consulting
Client, a business consultant, asked for a single-page, "lean, simple, elegant site that flows logically from what kinds of things can this company helps with to who are they to how do I start… a nature theme, something that conveys tranquility, knowledge, approachability, curiosity and a little bit of whimsy." Built on Wix and handed off so client could self-manage, as requested.
team members on project
Bespoke Pyro Co on Etsy
Video editing and copywriting done for Etsy shop owner.
team members on project
Robert Osborne Real Estate
This realty website was built for the client using WordPress.
team members on project
Jenn Loves to Code Portfolio Site
Portfolio website built to highlight client's projects including HTML, CSS3 and Python.
team members on project
Police Brutality Awareness
Using Rails and API, this site was built to highlight incidents of police brutality that may not be covered by traditional news outlets, but are being reported on social media.
team members on project
THE TEAM
SARAH BELING
Founder Advisor
Copywriting
Enamored at a young age with storytelling, Sarah tortured her family and friends throughout the 90s with re-worked revivals of classics like The Wizard of Oz and Annie (in which she gracefully accepted the title role). Sarah eventually moved to New York, attended NYU Tisch to study acting, threw out all of her clothing that wasn’t black, and developed a taste for bodega breakfast sandwiches. Sarah writes plays that range from thriller to 80s musical parody and is eager to help others tell their stories.
Jennifer Cameron
Web Development
A reluctant "techy," Jennifer started life with a strong emphasis on the arts: painting, acting, dance, and drawing (including an unfortunate incident involving a sharpie and her parent's carpet). However, a strong desire and affinity for logic and tech activities flowed though all aspects of life, school and work until she could no longer deny the pull and jumped into the world of web development. Jennifer now focuses on feeding both parts of her soul by creating things that are pleasing and functional.
AMELITA LIJEK
Founder
Business Ops and Design
Amelita has always had an instinct for management and organization. Beginning her executive career at age four when she dutifully (and, in retrospect, likely annoyingly) pointed out who was off of their line in ballet class, she has honed that intuition through a wide variety of jobs – working in everything from retail and fine dining to musical comedy and film production, with pit stops along the way to pick up some dog training skills and an undergrad degree from NYU. Her non-traditional path (though stressful for her parents) has taught her that following her gut when it comes to ethical values is essential and that this principle too often gets lost within workplaces. While pivoting to coding and design in the chaos of 2020, the idea for The Unbranded presented itself as an opportunity to constructively exercise her management skills, and more importantly put her values into practice. She is incredibly grateful and excited to get to do both with such a remarkable team beside her.
HEATHER RANDOLPH
Web Development
Heather is a Web Developer, Visual Designer, and Writer with a passion for storytelling in visual and narrative
formats. She has been building websites since 1997 and taking clients on a freelance basis since 2002. While her
development expertise lies in HTML and CSS, Heather also works with JavaScript, jQuery, Ruby, and Rails. She creates
visual art with Photoshop and Illustrator.
When Heather isn’t writing, developing, or designing, she can be found
cooking with her nephews, listening to technology or HP Lovecraft centric podcasts, or scrolling through Netflix
trying to decide what to watch.
CONTACT
We would love to hear from you! Fill out the form below and we'll get back to you as soon as possible.
SOCIAL JUSTICE
Social justice is an integral value at The Unbranded. We believe that ethical business practices and creativity should go hand in hand, and we are dedicated to working with clients and collaborators who believe in creating equity in representation at every level of business. We are committed to removing the gatekeeping of professional marketing services and making them accessible to all creative business owners. Our rate structure and pro-bono work will reflect a sustained dedication to taking on clients from traditionally marginalized groups, and we are always looking for new ways to incorporate positive social justice change into the everyday workings of the business.
Below you will find links to groups that the co-owners have recently supported. These groups have been vetted as far as any individual could vet a non-profit; we do not have resources beyond what an individual is capable of researching and we reserve the right to rescind links as new information surfaces. As with everything, this is a learning process, and admitting and learning from mistakes is important. As often as possible, if an organization is removed from our links because of a change of heart, we will share that information on our blog, which is also where you can find a more comprehensive list of groups we have supported over time.
We strive to maintain a 4:1 paid to pro-bono project ratio, and have from our inception.
SOCIAL JUSTICE RESOURCE LINKS
We want to highlight incidents of police brutality that may not be covered by traditional news outlets, but are being reported on social media.
Description, why we support.
The Refugee and Immigrant Center for Education and Legal Services is a nonprofit organization based in Texas that aims to provide legal services for immigrants.
SURJ is a national network of groups and individuals working to undermine white supremacy and to work for racial justice. Through community organizing, mobilizing, and education, SURJ moves white people to act as part of a multi-racial majority for justice with passion and accountability.
Description, why we support.
Description, why we support.
Description, why we support.
The Sentencing Project works for a fair and effective U.S. criminal justice system by producing groundbreaking research to promote reforms in sentencing policy, address unjust racial disparities and practices, and to advocate for alternatives to incarceration.
The Bail Project works to combat mass incarceration by disrupting the money bail system, one person at a time.
The Prison Policy Initiative works to expose the harm of mass criminalization and to move us towards a more just society.
The Southern Poverty Law Center fights hate and seeks justice.
Helps undocumented youth find their voices and fight for dignity and a life without fear.
The National Association for the Advancement of Colored People strives to improve the lives of minorities via various educational and advocacy programs.
Media Justice is working for a more inclusive and representative media by advancing the "communication rights, access, and power for communities harmed by persistent dehumanization, discrimination and disadvantage."
Ranked choice voting (RCV) makes democracy more fair and functional. It works in a variety of contexts. It is a simple change that can have a big impact.
In response to the alarming escalation in xenophobia and bigotry resulting from the COVID-19 pandemic, the Asian Pacific Planning and Policy Council (A3PCON), Chinese for Affirmative Action (CAA), and the Asian American Studies Department of San Francisco State University launched the Stop AAPI Hate reporting center on March 19, 2020. The center tracks and responds to incidents of hate, violence, harassment, discrimination, shunning, and child bullying against Asian Americans and Pacific Islanders in the United States.
Please inquire if you are interested in further supporting a pro-bono project through your paid project.
We are always looking to help make these connections happen!


| PostgreSQL 9.0.10 Documentation | ||||
|---|---|---|---|---|
| Prev | Up | Appendix E. Release Notes | Next |
Release Date: 2010-10-04
This release contains a variety of fixes from 9.0.0. For information about new features in the 9.0 major release, see Section E.11.
A dump/restore is not required for those running 9.0.X.
Use a separate interpreter for each calling SQL userid in PL/Perl and PL/Tcl (Tom Lane)
This change prevents security problems that can be caused by subverting Perl or Tcl code that will be executed later in the same session under another SQL user identity (for example, within a SECURITY DEFINER function). Most scripting languages offer numerous ways that that might be done, such as redefining standard functions or operators called by the target function. Without this change, any SQL user with Perl or Tcl language usage rights can do essentially anything with the SQL privileges of the target function's owner.
The cost of this change is that intentional communication among Perl and Tcl functions becomes more difficult. To provide an escape hatch, PL/PerlU and PL/TclU functions continue to use only one interpreter per session. This is not considered a security issue since all such functions execute at the trust level of a database superuser already.
It is likely that third-party procedural languages that claim to offer trusted execution have similar security issues. We advise contacting the authors of any PL you are depending on for security-critical purposes.
Our thanks to Tim Bunce for pointing out this issue (CVE-2010-3433).
Improve pg_get_expr()
security fix so that the function
can still be used on the output of a sub-select (Tom Lane)
Fix incorrect placement of placeholder evaluation (Tom Lane)
This bug could result in query outputs being non-null when they should be null, in cases where the inner side of an outer join is a sub-select with non-strict expressions in its output list.
Fix join removal's handling of placeholder expressions (Tom Lane)
Fix possible duplicate scans of UNION ALL member relations (Tom Lane)
Prevent infinite loop in ProcessIncomingNotify() after unlistening (Jeff Davis)
Prevent show_session_authorization() from crashing within autovacuum processes (Tom Lane)
Re-allow input of Julian dates prior to 0001-01-01 AD (Tom Lane)
Input such as 'J100000'::date worked before 8.4, but was unintentionally broken by added error-checking.
Make psql recognize DISCARD ALL as a command that should not be encased in a transaction block in autocommit-off mode (Itagaki Takahiro)
Update build infrastructure and documentation to reflect the source code repository's move from CVS to Git (Magnus Hagander and others)


Ford Oct 2019 Model-Wise Sales Analysis – Figo, Ecosport, Aspire, Freestyle
by Team GaadiWaadiLast month, Ford EcoSport clocked a total sale of 4,326 units, which resulted into a MoM growth of 37.8 %, the Figo was second-most popular model with a sale of 967 units
Thanks to the increased demand during the festive season, last month saw a substantial increase in sales of most models from biggies like Maruti Suzuki and Hyundai Motor India Ltd. Even Ford India, which has been affected by perpetually poor sales, saw some healthy improvement in the sales performance of the EcoSport and Endeavour. Here’s a look at how the Ford cars in India performed on the sales charts of October 2019 –
1. Ford Aspire
Currently the only sedan in the company’s lineup, the Aspire is a Figo-based sub-4-metre sedan that rivals models like the Maruti Dzire and Honda Amaze. The Aspire offers an attractive exterior design, powerful engine options, a sufficiently feature-laden cabin and well-sorted dynamics.
Yet, the Aspire has been a pretty poor performer. In October 2019, the Aspire clocked a sale of 519 units, which, while being 7.5 per cent higher on MoM basis, is 79.4 per cent lower on YoY basis.
2. Ford EcoSport
The next car on our list is the most popular model from Ford India. Last month, the EcoSport sold 4,326 units, thereby resulting in a whopping 37.8 per cent growth on MoM basis. In fact, the EcoSport could even manage to post an YoY growth of 9.3 per cent.
The EcoSport is getting a bit long in the tooth now but is definitely among the most well-sorted product when it comes to dynamics. It also offers a powerful set of engines and is fairly feature-laden, at least in the top-spec trim. Hence, in spite of its age, the EcoSport ends up being a pretty worthy alternative to more popular compact SUVs like the Maruti Vitara Brezza, Tata Nexon, Mahindra XUV300 and Hyundai Venue.
3. Ford Endeavour
The Ford Endeavour is a well-rounded large SUV that comes across as a very good alternative to the immensely successful Toyota Fortuner. The Endeavour has a comfortable and upmarket cabin, power set of motors and capable off-road hardware.
While the Endy has seen some success in the market, it’s still no where close to the Fortuner in terms of sales performance. Last month, the Endeavour sold 700 units, which is a 23.2 per cent improvement on MoM basis and 23.9 on YoY basis.
| Model | October 2019 Sales | October 2018 Sales |
| Ford Ecosport | 4,326 | 3,957 |
| Ford Figo | 967 | 65 |
| Ford Endeavour | 700 | 565 |
| Ford Aspire | 519 | 2,520 |
| Ford Freestyle | 505 | 1,929 |
DataSource : AutoPunditz
4. Ford Figo
The Maruti Swift and Hyundai Grand i10 rival from Ford India sold 967 units last month, thereby become the second most popular model in the company’s lineup. It resulted into a MoM growth of 2.4 per cent and an YoY basis of a whopping 1,387 units.
The Figo is the sportiest offering in its segment and even looks quite sporty. Also, with the latest update, it has become an even more compelling buy. Still, however, buyers have given more preference to the aforementioned rivals due to poor track record of after sales service and maintenance from Ford India.
5. Ford Freestyle
The last car on our list is the Ford Freestyle, which sold 505 units in October 2019. This has resulted into a MoM growth of 19.7 per cent but a drop of 73.8 per cent on YoY basis.
The Freestyle benefits from all the traits of the donor hatchback, along with offering more robustness due to a high ground clearance and several SUV-inspired styling updates its carries. Also, the Freestyle is better equipped than the Figo. For instance, between the Figo and the Freestyle, it’s only the latter that offers Android Auto and Apple CarPlay.


Home
About
Products
Blog
Contact
Contact Us
Leave your contact information and inquires below!
First Name
Email
Message


Introducing equality and disjunction
Prove the following theorem :
Theorem abcd_c : forall (A:Set)(a b c d:A), a=c \/ b= c \/ c=c \/ d=c.
Note
This result can be proved with a single call to auto.
Try to do it with basic tactics instead !
Solution
Look at this file


On two different PC setups (which have both worked up until this last weekend), whenever I Click edit platoon emblem, then click the yellow button to upload image (and indicate the image that I want uploaded... just as I have done almost weekly for months now), the timer will tick down as b4 as if it is uploading the image............. and the image........... never......... uploads!
I have reinstalled Chrome, I have reinstalled BBlog, I have reinstalled/updated the Jscript, it still looks like it wants to upload but just sits there turning around and around and around and around and nothing gets uploaded.
BrainFooLong
Administrator
Try smaller images, for example max. 450x450 or 350x350.
Maybe you are using a too big image that BBLog/Battlelog can't save.
Topicstarter
remdds
Thanks... BUT... Tried that too. The image I couldn't load, I had some else load (easily). One I had loaded before... won't load again.
[the biggest I have loaded previously has been around 400x400, PLUS I have Business class cable... so it is not slow]
BrainFooLong
Administrator
Hm. Weird. Maybe you can try firefox? For me its working on both browser correctly.
Topicstarter
remdds
Firefox was my next choice as well. But I am one of those that likes to fix problems. I hate to give up on one till I figure it out... then I go to something else, like Firefox in this case. Hahahaha. I know... I'm weird.
BrainFooLong
Administrator
Yes, to fix the problem i need to know whats the problem is.
When it's working for you on FF i can search more accurate for a bug.
Topicstarter
remdds
Firefox does not show upload emblem button
lowtid3
I've tried both FF and Chrome, 320x320 .png and .jpeg, never stops uploading. You can still edit using the Battlelog objects, but will not upload pics.
*edit - this worked, thanks Jumpy.
http://getbblog.com/viewtopic.php?f=3&t=657
BrainFooLong
Administrator
Can anyone of you post the graphics you want to upload?
I done a lot of test and it works everytime.
Topicstarter
remdds
I uninstalled Chrome and all Flash, Shockwave etc. on one laptop setup. Installed Firefox. Reinstalled Better Battlelog and Java and Adobe and I got this setup to work. Attempted the same on my other laptop (one I was at yesterday for most of posts above) and I still don't get the upload image button to appear (in Firefox as it was in Chrome).
BrainFooLong
Administrator
Last thing i can say is: Have you enable the "Minor Improvements" Option? If not the button will not shown.
BrainFooLong
Administrator
A fix should be in the next bblog release 2.4.0.
Topicstarter
remdds
Problem fixed itself and then lately stopped working again (past week) on both PC's.


@JvmStatic fun fromString(jsonString: String): Card?
Create a Card object from a raw JSON string.
jsonString
- the JSON string representing the potential Card
Return
A Card if one can be made from the JSON, or null
if one cannot be made
or the JSON is invalid.


Twivler
Home
(current)
About
Start Bootstrap
Dashboard
Shortcuts
Overview
Events
About
Services
Contact
{% block content %} {% endblock %}


Similarity & Clustering¶
What is Clustering?¶
A cluster is a collection of data objects or a natural grouping of any sort.
Data objects are similar to one another within the same cluster
Data objects are dissimilar to the objects in other clusters
Clustering is a part of unsupervised learning and often part of EDA (exploratory data analysis) as an approach to analyze data sets to summarize their main characteristics. This is more specifically known as unsupervised segmentation as they are creating segments without predefined targets.
What are some applications of clustering?
Clustering has two broad categories of application. It can be a stand-alone tool to get insight into underlying data by grouping related data together, or it can be a data pre-processing step before other algorithms are run.
A good clustering method produces high-quality clusters. A high-quality cluster would contain data objects showing high similarity within a cluster and low similarity across clusters. The quality of clusters depends on the metric at which we define similarity, how clustering was implemented, and the ability of the clusters to discover hidden patterns.
A simplified scientific approach to clustering would first require you to quantify object characteristics with numerical values. Next, calculate the distance between objects based on characteristics, utilizing a “similarity” metric that can be used to compare variables.
Fig. 1 - Object Characteristics |
Euclidean distance is a commonly used metric to measure distance between clusters. It can be calculated by utilizing the following equation: $\( d(x,y) = \sqrt \Sigma(x_{i} - y_{i})^{2} \)$
Euclidean distance is a special case of Minkowski Distance.
Another case of Minkowski Distance is Manhattan Distance.
Fig. 2 |
Assume that each side of the square is one unit.
The distance between A and B is as follows:
(Assume A at origin, and B at (6,6))
Euclidean Distance: $\( \sqrt (6^{2} + 6^{2}) \approx 8.485 \)$
Manhattan Distance: $\( | 0 - 6 | + | 0 - 6 | = 12 \)$
Rescaling Data¶
Standardize: subtract mean and divide by the standard deviation.
One way we can standardize data in Python is by using the StandardScaler() function.
After partitioning your data set into a train and test set as discussed in Chapter X, the StandardScaler () function can be utilized by:
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
train_X=scaler.fit_transform(train_X)
valid_X=scaler.transform(valid_X)
Normalize: scale to [0,1] by subtracting minimum and dividing by range
We can normalize our data and use imputation for any missing values in Python by using the MinMaxScaler():
# Scale the data to be between 0 and 1 (default range)
mms = MinMaxScaler()
data_df_array = mms.fit_transform(data_df_sub) # results stored in a numpy array, not a dataframe.
# IMPUTATION
# initialize imputer, which uses mean substitution
# does this by taking the mean of the values of the two nearest neighbors
# n_neighbors: number of neighbors
# weights: whether and how to weight values; we don't weight
imputer = KNNImputer(n_neighbors=2, weights="uniform")
# apply the imputer function to the array
data_df_array=imputer.fit_transform(data_df_array)
# convert the array back into a dataframe
data_df_norm = pd.DataFrame(data_df_array, columns=data_df_sub.columns)
What makes a good similarity metric?
Symmetry: d(x,y) = d(y,x)
Satisfy triangle inequality: d(x,y) <= d(x,z) + d(z,y)
Can distinguish between different objects: if d(x,y) != 0 then x != y
Can’t distinguish between identical objects: if d(x,y) = 0 then x = y
Clustering Algorithm¶
There are two popular algorithms for partitional clustering: k-means and k-medoids. Both aim to partition a dataset with n data objects into k clusters. This is accomplished by finding a partition of k clusters that optimizes the chosen partitioning criterion. The ideal solution to this would be finding the Global Optimum by exhaustively enumerating all partitions. For the purposes of this course, we will focus on k-means clustering.
Fig. 3 - Distances between data points and a pre-determined centroid. |
In k-means clustering, we arbitrarily choose k initial cluster centroids and cluster data objects around them. Then, for the current partition, we compute new cluster centroids. Those new centroids are used to create new clusters and data objects are assigned to clusters based on the nearest new centroid. This process is repeated until there is no change to the centroids.
K-Means Clustering Steps:
Randomly cluster objects into k number of clusters around k number of centroids
For the current partition, compute new cluster centroids
Centroids should be at the center (the mean value) of the cluster
Create new clusters, assigning each object to cluster with the nearest new centroid
Repeat steps 2 and 3 until there is no change to your centroids
Fig. 4 - K-Means Clustering Steps |
How do we choose a value for k?
We can create an elbow plot. An elbow plot showcases the distortion score for each k value. The graph will show an inflection point - an “elbow” point - at the most ideal k-value.
Fig. 5 - Elbow Plot |
Note that we calculate average distortion scores utilizing the normalized data. In this case, distortion is the sum of mean Euclidean distances between data points and the centroids of their assigned clusters.
Here is how we would go about creating an elbow plot for n = 15. This means we are looking at average distances for k = 1, 2, 3… 14, 15.
# from scipy.cluster.vq import kmeans, vq
# Declare variables for use
distortions = []
#How many clusters are you going to try? Specify the range
num_clusters = range(1,16)
# Create a list of distortions from the kmeans function
for i in num_clusters:
cluster_centers, distortion = kmeans(random_df_norm[['variable_of_interest_one', 'variable_of_interest_two']], i)
distortions.append(distortion)
# Create a data frame with two lists - number of clusters and distortions
elbow_plot = pd.DataFrame({'num_clusters': num_clusters, 'distortions': distortions})
# Create a line plot of num_clusters and distortions
sns.lineplot(x='num_clusters', y='distortions', data=elbow_plot)
plt.xticks(num_clusters)
plt.show()
Strengths + Weaknesses of k-means:¶
The k-means method is efficient and much faster than hierarchical clustering. It is also straightforward and intuitively implementable.
Some weaknesses of the k-means method are that we need to specify the value of k before running the algorithm which directly affects the final outcome. Also, this method is very sensitive to outliers. K-medoids clustering can address this (where the centroid could be a data point itself). Lastly, the k-means method is not very helpful for categorical data and only applies when a mean and centroid values are defined.
References:¶
Glossary:¶
Unsupervised Segmentation:
Data pre-processing:
Minkowski Distance:
Euclidean Distance:
Manhattan Distance:
Standardize:
Normalize:
Global Optimum:
K-Means Clustering:
Elbow Plot:
Hierarchical Clustering:


I run a team of 20 product managers, developers, QA and UX resources. Previously we designed everything ourselves. For our newest platform we tried out Metronic. I cannot overestimate the impact Metronic has had. It's accelerated development 3x and reduced QA issues by 50%. If you add up the reduced need for design time/resources, the increase in dev speed and the reduction in QA, it's probably saved us $100,000 on this project alone, and I plan to use it for all platforms moving forward.
The flexibility of the design has also allowed us to put out a better looking & working platform and reduced my headaches by 90%. Thank you KeenThemes!
Everything within Metronic is customizable globally to provide limitless unique styled projects
Choose a perfect design for your next project among hundreds of demos
A huge collection of components to power your application with the latest UI/UX trands
Enterprise ready Angular 5 integration with built-in authentication module and many more
Metronic deeply customizes Bootstrap with native look and feel
Our super sleek and intuitive Datatable comes packed with all advanced CRUD features
Metronic is the only theme trusted by over 50,000 developers world wide
Lifetime updates with new demos and features is guaranteed
Metronic is writer with a code structure that all developers will be able to pick up easily and fall in love


Can you confidently say that you are born to be a doctor, an engineer, a businessman, bureaucrat, politician, pilot or an academician? Trying to convince ourselves of the career choices made by us or our parents does not quell the doubts in the credibility of those choices.
In order to remove these ‘What ifs’, we need to be on the same page with our skills, talents, experiences, expectations and the career choice we intend to make.
In this world of multiple choices and innumerable options, a little guidance helps greatly. Someone who can make our parents see worth in our career choices and most importantly someone who can bring an accord between our heart and mind.
To remove your confusion, CareerDB brings you a repository of choices with comprehensive information of the educational requirements and the career paths open for you.
At times students just follow the rhythm of the life. They don’t take out a moment to identify their long term plans. They choose their subjects with the help of their parents well meaning advice or by following the herd. But then, they end up wasting the most crucial time of their lives in learning something which might just not be useful for them. So, this Career DB will help you identify your long term goals quite early in your life.
There are so many factors on which your career choices depend. Sometimes we feel that we are best suited for multiple careers. This once again lands us in the state of confusion. Your career should perfectly match with your interests, skills, knowledge, experience and aspirations. Thus, Career DB, will help you see the pros and cons of every choice so that you know what’s best for you.
Once you are clear about your career goal, you need to know the ways and methods to achieve that goal. So, you can find every single educational and skills requirement of your career option on Career DB.
Career DB will help you plan your career the right way and at the right time. You will know beforehand 'what to do and how to do’ to make a successful career in the area of your interest.


BSVI Royal Enfield Thunderbird X spotted - reveals more details
by Team ODAfter news reports of Royal Enfield possibly pulling the plug on its 500cc range of motorcycles surfacing the internet, the spy pictures of the BSVI complaint Thunderbird X are doing rounds over the internet.
The 2020 Royal Enfield gets a new platform, engine and revised cycle parts. What gives away the generation upgrade is the new twin-down pipe cradle chassis that houses a new engine. The crankcase cover carries a similar design to the one we see on the Interceptor 650, which could mean the engine could be based on an all-new design resulting in a different capacity than the 350cc or 500cc. Gone is the right orientation of the chain-drive and the new drivetrain has a more conventional layout. The front disc brake that we see mounted on the left of the wheel has been moved to the other side indicating a new braking setup with suspension geometry.
The twin-pod instrument cluster on the current generation Thunderbird will be swapped for a monopod instrument cluster which most likely is a mix of analogue and digital display. The exterior changes include redesigned panels, redesigned headlamp unit. The exhaust carries a new design as well. Similar changes can be expected on the Royal Enfield Thunderbird. The new generation of BSVI compliant Royal Enfield motorcycles is expected to break cover in the first quarter of 2020. Expect a hike in price by Rs 10,000 across all models.
Image source - Gaadiwaadi
Also Read,
Royal Enfield may discontinue its 500cc range of motorcycles early next year
Royal Enfield Bullet 350 single-channel ABS variant gets a price hike


climate change model phosphorus agricultural rainfall changes models future load loads HYPE data land water time DBM Supplementary catchments management {border-style use using winter px;} transfer #ffffff;} annual increase inputs mitigation Environ. reduction Climate Data identified parameters summer Projections uncertainty high measures observed soil sources Table catchment emissions pollution projections quality scenarios Sci. [], different given intensification model, nutrient parameter total Environment Total Weather catchment, catchments, present resolution used baseline day discharge flow large range results simple Avon Avon, Fig. Hydrol. RCM-. km UKCP Wensum \documentclass[pt]{minimal} \setlength{\oddsidemargin}{-pt} \usepackage{amsbsy} \usepackage{amsfonts} \usepackage{amsmath} \usepackage{amssymb} \usepackage{mathrsfs} \usepackage{upgreek} \usepackage{wasysym} behavioural field grid.. likely median practices predicted px; scale shown {font-family Eden, Generator Hydrological LINK Predictions UKCP-WG calculated effects font-size impact increased modelling particularly percentage relationship river slow ./j.scitotenv... Change Eden Met NSE ≥ . Nature Newby University, available based conditions current daily data. diffuse double; dynamics extreme fast http://orcid.org/--- livestock models, need period potential projected representation required resulting scenario series study year years (HYPE) (Supplementary . km Clim. Hampshire However, Office UKCP-WG, Using Wensum, \right) associated border-color border-width catchments. change. chosen combined data, dominant effective elicitation e}^{ future. high-resolution impacts including input load, losses point rainfall, regional runs seasonal sediment significant solid; spatial storage variability {font-style {font-weight (DBM) (Fig. (TP) (e.g., (up ./nclimate Beck, Beven Collins Commons Creative Cumbria Data-Based Demonstration England Mechanistic Nat. Norfolk Soil Test University Winter Young \right)$$\end{document} agriculture application arable average bold complexity conditions, convection-permitting courier; crops determined difference directly em; fertilisers function generated hourly hydrological hydrology intensity key lack larger make marked material mitigate options parameters. precipitation process-based processes pt;} red represent representative representing research response result runoff sets specific stakeholders stores sustainable transfers trends uptake weather km


Do the survey. Send it. Problem solved! No phone calls anymore!!

You can send screenshots too! It's never been that easy!
As always, the app is free to download and you can get started!
The website is safe, your privacy is our policy!


This chapter provides information on API resources to create and manage OpenShift members. A member is a user or team that has been given access to a domain.
The table below describes each parameter associated with an OpenShift team.
| Name | Description |
| id | The unique identifier |
| role | The role the member has been give |
| type | The member type i.e. user or team |
| from | The source of membership |
| owner | Whether the member is the owner of the resource |


Northern Ireland Open: Judd Trump beats John Higgins 6-3 to reach final
by Richard MannJudd Trump booked his place in the Northern Ireland Open final with a 6-3 victory over John Higgins in their semi-final in Belfast.
In a repeat of last season's World Championship final and their last-four meeting at the World Open recently, it was Trump who again proved the stronger though for Higgins, he will be left to rue a couple of missed opportunities of his own that were to cost him dear.
Nevertheless, having recovered from 3-2 behind to draw level, Trump produced the sort of snooker that has seen him rise to the top of the sport but had evaded him for much of the early part of the afternoon, an impressive run to the winning line seeing him reach his third major final in as many weeks.
The match started with Higgins much the brighter, a well-constructed run of 55 enough to take the opening frame before he built a healthy lead in frame two, one that would have been a frame-winning advantage had he not missed a tricky red with the rest having left himself wrong side of the blue two shots earlier.
Still, it required a nerveless clearance of 42 from Trump to steal the frame, the first of two big turning points in the match where Higgins failed to put his opponent to the sword.
When Trump controlled frame three he found himself in front for the first time but Higgins responded in admirable fashion, breaks of 78 and 88 putting him 3-2 up before he looked sure to extend his lead further when adding a run of 55 in frame six.
However, another miss with the rest again opened the door for Trump and when he levelled the scores once more, this time at 3-3, Higgins was left stunned and running out of answers.
Sensing his chance, Trump took control of the match in the manner befitting the number one ranked player in the world, dictating terms in frame seven and then fairly racing into Sunday's final with subsequent breaks of 67 and 136.
While the clearance to close out the match brought the Belfast crowd to its feet, it was the astonishing positional shot from black to red in frame eight that sent social media into a frenzy, the cue ball screwed in and out of baulk from the black spot before landing perfectly on frame-ball red via three cushions.
A nod of the head and a wry smile from Higgins told the story and as he offered Trump a warm congratulations moments later, snooker, and perhaps even Higgins, were finally accepting a real changing of the guard.
Northern Ireland Open: Saturday's schedule
Saturday November 16
Afternoon session (1300 GMT)
TV coverage: Eurosport
- Judd Trump 6-3 John Higgins
Saturday November 16
Evening session (1900 GMT)
TV coverage: Eurosport
- Joe Perry 1-6 Ronnie O'Sullivan
- O'Sullivan sets up Trump final
- Northern Ireland Open draw, results & schedule