Draw.new [ { optional parameters } ] -> draw
Creates a new Draw object.
If you plan to use the annotate
method with
this object you can initialize the attributes in the associated block.
Draw
object.
gc = Draw.new
draw.annotate(img, width, height, x, y, text) [ { additional parameters } ] -> self
Annotates a image with text. The text is positioned
according to the gravity
attribute around the
rectangle described by the x,
y, width, and
height arguments. If either of the
width or height arguments are 0, uses the image
width-x and the image
height-y to compute the rectangle
width and height. The attributes described in annotate attributes, below, influence the
appearance and position of the text. These attributes may be
set in the Draw object before calling annotate
, or
within annotate
's optional additional parameters block.
Note: all of the annotate
attributes
are set-only.
self
This example is an excerpt of colors.rb. Many other
examples also use annotate
.
title.annotate(montage, 0,0,0,40, 'Named Colors') { self.font_family = 'Helvetica' self.fill = 'white' self.stroke = 'transparent' self.pointsize = 32 self.font_weight = BoldWeight self.gravity = NorthGravity }
Escape a blank, quote, or apostrophe by preceding it with a backslash ("\"). To include a backslash in the text, use two consecutive backslashes. To include a '%' in the text, use '%%'. You can include information about the image by including one or more of the special character sequences shown in this table.
| Replaced by | |
|---|---|
| %b | file size in bytes |
| %c | "comment" property string |
| %d | directory in which the file resides |
| %e | filename extension |
| %f | original filename |
| %g | group number |
| %h | height |
| %i | current filename |
| %k | number of unique colors |
| %l | "label" property string |
| %m | file format |
| %n | number of images in the sequence (for RMagick, this is always 1) |
| %o | output filename |
| %p | page number (for RMagick, this is always 1) |
| %q | depth |
| %r | A string of the form "ClasstypeColorspace," for example
"DirectClassRGB". If the image's matte attribute
is true , appends the word "Matte" to the end
of the string. |
| %s | scene number (always 1) |
| %t | filename without extension |
| %u | unique temporary filename |
| %w | width |
| %x | x resolution |
| %y | y resolution |
| %z | depth |
This method is also defined in the Image class.
AnnotateImage
draw.clone -> other_draw
Same as dup except the frozen state of the original is propagated to the copy.
A new Draw object.
draw.draw(img) -> self
Draws the list of graphic primitives on the specified image.
Calling draw
does not affect the list of
primitives. Each time you call draw
the primitives
will be re-executed from the beginning.
Either an imagelist or a image. If an imagelist, draws on the current image.
self
See the other examples on this page.
DrawImage
draw.dup -> other_draw
Duplicate a Draw
object.
An exact copy of the receiver, including the list of drawing primitives.
draw.get_multiline_type_metrics([image,] string) -> type_metrics
draw.get_type_metrics([image,] string) -> type_metrics
Returns information for a specific string if rendered on a
image. The get_multiline_type_metrics
method is
the same as get_type_metrics
, except the former
returns the maximum height and width for multiple lines of
text. (Text lines are separated by "\n" characters.)
The Magick++ documentation for its TypeMetric class provides this useful additional information. (I've changed it a bit to use RMagick names.)
The TypeMetric class provides the means to pass data from the Draw class's get_type_metric method to the user. It provides information regarding font metrics such as ascent, descent, text width, text height, and maximum horizontal advance. The units of these font metrics are in pixels...(T)he metrics are dependent on the current Image font (default Ghostscript's "Helvetica"), pointsize (default 12 points), and x/y resolution (default 72 DPI) settings.
The pixel units may be converted to points (the standard resolution-independent measure used by the typesetting industry) via the following equation:
size_points = (size_pixels * 72)/resolution
where resolution is in dots-per-inch (DPI). This means that at the default image resolution, there is one pixel per point.
Note that a font's pointsize is only a first-order approximation of the font height (ascender + descender) in points. The relationship between the specified pointsize and the rendered font height is determined by the font designer.
See FreeType Glyph Conventions for a detailed description of font metrics related issues.
get_type_metrics
substitutes a dummy
image with default attributes. The string argument may not contain any of the
special characters shown in this table.A TypeMetric struct. This structure has the following attributes. (The descriptions are taken from the Magick++ documentation and source code.)
| Accessor | Description |
|---|---|
| ascent | Distance in pixels from the text baseline to the highest/upper grid coordinate used to place an outline point. Always a positive value. |
| descent | Distance in pixels from the baseline to the lowest grid coordinate used to place an outline point. Always a negative value. |
| width | Text width in pixels |
| height | Text height in pixels |
| max_advance | Maximum horizontal advance (advance from the beginning of a character to the beginning of the next character) in pixels. |
This example shows the details of a TypeMetric struct.
This example uses the width
and
height
values returned by
get_multiline_type_metrics
to draw a border around
the text lines.
GetTypeMetrics, GetMultilineTypeMetrics
draw.inspect -> string
Returns the list of primitives that have been added to the
draw
object. This is very handy for debugging.
draw.inspect » "stroke red fill transparent rectangle 20,20 380,180 line 200,20 200,180 line 20,100 380,100 stroke transparent fill black"
draw.affine(sx, rx, ry, sy, tx, ty) -> self
Transforms the coordinate system by a 3x3 transformation matrix. See Coordinate system transformations in the Scalable Vector Graphics (SVG) 1.1 Specification.
self
This example changes the default coordinate system to the standard Cartesian coordinate system: the x-axis points rightward and the y-axis points up.
gc.affine(1, 0, 0, -1, 0, max_y)
draw.arc(start_x, start_y, end_x, end_y, start_degrees, end_degrees) -> self
Draws an arc within a rectangle.
self
gc.arc(40, 50, 250, 180, 0, 270)
draw.bezier(x1, y1, cx1, cy1, cx2, cy2, x2, y2...) -> self
Draw a cubic Bezier curve.
The arguments are pairs of points. At least 4 pairs must be specified. Each point xn, yn on the curve is associated with a control point cxn, cyn. The first point, x1, y1, is the starting point. The last point, xn, yn, is the ending point. Other point/control point pairs specify intermediate points on a polybezier curve.
self
The following examples are taken from the Paths section of the Scalable Vector Graphics (SVG) 1.1 Specification.
gc.bezier(20,120, 20,20, 320,20, 320,120)
gc.bezier(25,125, 100,25, 400,25, 325,125)
gc.bezier(100,150, 25,50, 475,50, 400,150)
gc.bezier(20,180, 20,30, 320,330, 320,180)
gc.bezier(20,120, 95,20, 245,20, 320,120)
gc.bezier(50,150, 50,50, 200,50, 200,150, 200,250,
350,250, 350,150)
draw.circle(origin_x, origin_y, perim_x, perim_y) -> self
self
Draw a circle.
self
gc.circle(125,125, 25,125)
draw.clip_path(pathname) -> self
Draws the clip path on the image mask. The clip path defines a clipping area, where only the contained area will be drawn upon. Areas outside of the clipping area are masked.
Before using a clip-path, you must create it using the
define_clip_path method. You
must precede clip_path
with push and terminate the primitives that draw within
the clip path with pop. For example,
gc.push gc.clip_path('mypath') # drawing primitives within the clip path gc.pop gc.draw
Also see the example below.
The name of the clip path.
self
In this example, the picture of the girl is drawn onto the canvas using a star-shaped clipping path.
draw.clip_rule("evenodd"
or
"nonzero"
) -> self
Specify how to determine if a point on the image is inside
clipping region. See
the 'fill-rule' property
in the
Scalable Vector Graphics (SVG) 1.1 Specification
for a complete description and examples.
Either "evenodd" or "nonzero".
self
draw.clip_units("userSpace"
or "userSpaceOnUse"
or
"objectSpace"
) -> self
Defines the coordinate space within the clipping region. See Establishing a New Clipping Path in the Scalable Vector Graphics (SVG) 1.1 Specification for a complete description and examples.
Either "userSpace", "userSpaceOnUse", or "objectSpace".
self
draw.color(x, y, paint_method) -> self
Set color in image according to the specified PaintMethod constant.
A PaintMethod
constant. If you use the FillToBorderMethod
,
assign the border color with the
Draw#border_color=
attribute before calling
draw.
self
draw.border_color = 'black' draw.color(x, y, FillToBorderMethod)
draw.composite(x, y, width, height,
composite_image, op=OverCompositeOp
) ->
self
Composite composite_image with the receiver image.
self
draw.decorate(decoration) -> self
Specify text decoration.
A DecorationType constant.
self
draw.decorate(LineThroughDecoration)
draw.define_clip_path(string) { block } -> self
Define a clip-path. Within block,
call other drawing primitive methods (rectangle
,
polygon
, text
, etc.) to define the
clip-path. The union of all the primitives (excluding the
effects of rendering methods such as stroke_width
,
etc.) is the clip-path. After the clip-path is invoked by the
clip-path method, anything drawn on
the image inside the clip-path will appear. Anything drawn
outside the clip-path will be hidden. (See clip_rule for a definition of how ImageMagick
decides what is "inside" and what is "outside" of the
clip-path.)
The name of the clip-path. This is the name that is
specified in the clip_path
method.
self
draw.ellipse(origin_x, origin_y, width, height, arc_start, arc_end) -> self
Draw an ellipse.
self
draw.ellipse(180,125, 150,75, 0, 270)
draw.encoding(string) -> self
Specify the font encoding.
See the ImageMagick documentation for the
-encoding
option to the mogrify
command
self
draw.fill(string) -> self
Specify the color or pattern with which graphical elements are filled.
A color name or pattern name.
self
draw.fill('red')
fill_color
, fill_pattern
draw.fill_opacity(float or string) -> self
Specify the fill opacity.
A number between 0 and 1, inclusive, or a percentage represented as a string, i.e. '30%'. The argument 0.3 is the same as '30%'.
self
See the example for opacity.
draw.fill_rule("evenodd"
or
"nonzero"
) -> self
Specify how to determine if a point on the image is inside a
shape. See
the 'fill-rule' property
in the
Scalable Vector Graphics (SVG) 1.1 Specification
for a complete description and examples.
Either "evenodd" or "nonzero".
self
draw.font(string) -> self
Specify the font to draw text with.
The font name or filename. You can tag a font to specify whether it is a Postscript, Truetype, or OPTION1 font. For example, Arial.ttf is a Truetype font, ps:helvetica is Postscript, and x:fixed is OPTION1.
The font name can be a complete filename such as
"/mnt/windows/windows/fonts/Arial.ttf"
. The font
name can also be a fully qualified X font name such as
"-urw-times-medium-i-normal--0-0-0-0-p-0-iso8859-13"
.
self
draw.font_family(string) -> self
Specify the font family.
A font family name such as "arial" or "helvetica".
self
See the example for text.
draw.font_stretch(stretch) -> self
Specify the spacing between text characters.
A StretchType constant.
self
draw.font_style(style) -> self
Specify the font style, i.e. italic, oblique, or normal.
A StyleType constant.
self
draw.font_weight(weight) -> self
Specify the font weight. For example, "bold" or "normal".
A WeightType constant, or one of the numbers 100, 200, 300, 400, 500, 600, 700, 800, or 900.
self
draw.gravity(gravity) -> self
Specify how the text is positioned. The default is
NorthWestGravity
.
A GravityType constant.
self
draw.interline_spacing(space) -> self
Modify the spacing between lines when text has multiple lines.
A numeric value. If positive, inserts additional space between lines. If negative, removes space between lines. The amount of space inserted or removed depends on the font.
self
draw.interword_spacing(space) -> self
Modify the spacing between words in text.
A numeric value. If positive, inserts additional space between words. If negative, removes space between words. The amount of space inserted or removed depends on the font.
self
draw.kerning(space) -> self
Modify the spacing between letters in text.
A numeric value. If positive, inserts additional space between letters. If negative, removes space between letters. The amount of space inserted or removed depends on the font but is usually measured in pixels. That is, the following call adds about 5 pixels between each letter.
gc.kerning(5)
self
draw.line(here_x, here_y, there_x, there_y) -> self
Draw a line from here to there.
self
gc.line(50,50, 50,200)
gc.line(50,200, 200,200)
gc.line(200,200, 50,50)
draw.matte(x,y, paint_method) -> self
Make the image transparent according to the specified PaintMethod constant.
Draw#border_color=
attribute before
calling draw.self
draw.opacity(opacity) -> self
Specify the fill and stroke opacities.
Either a number between 0 and 1, or a percentage represented as a string, i.e. "25%". The string argument "25%" is the same as the numeric argument 0.25. Both the fill and stroke opacities are set to the specified value.
self
This example demonstrates 4 levels of opacity.
draw.path(string) -> self
Draw using SVG-compatible path drawing commands. See "Paths" in the Scalable Vector Graphics (SVG) 1.1 Specification.
A string containing SVG moveto, line, curve, arc, or closepath instructions. The string is equivalent to the d attribute in an SVG 'path' element.
self
These examples are all taken from the SVG path examples.
gc.path('M110,100 h-75 a75,75 0 1,0 75,-75 z')
gc.path('M97.5,87.5 v-75 a75,75 0 0,0 -75,75 z')
gc.path("M20,150 Q120,25 220,150 T420,150")
gc.path("M20,120 C20,20 170,20 170,120 S320,220
320,120")
draw.pattern(name, x, y, width, height) { pattern primitives } -> self
Define a pattern that can be used as the fill or stroke pattern.
self
draw.point(x, y) -> self
draw.pointsize(integer) -> self
Set the font size in points. The default is 12.
See the example for text.
self
font_size
draw.polygon(x1, y1,...,xN, yN) -> self
Draw a polygon.
The arguments are a sequence of 2 or more points. If the last point is not the same as the first, the polygon is closed by drawing a line from the last point to the first.
self
This example is taken from the The 'polygon' element in the Scalable Vector Graphics (SVG) 1.1 Specification
draw.polyline(x1, y1,...,xN, yN) -> self
Draw a polyline. Unlike a polygon, a polyline is not automatically closed.
A sequence of 2 or more points.
self
This example is taken from the The 'polyline' element in the Scalable Vector Graphics (SVG) 1.1 Specification
draw.pop -> self
Restore the graphics context to the state it was in when push was called last.
self
draw.push -> self
Save the current state of the graphics context, including the attribute settings and the current set of primitives. Use the pop primitive to restore the state.
Note: The push
and pop
methods are probably not as useful in RMagick as they are in C
language ImageMagick programs, since it is easy to create
separate draw objects, each with its own set of properties and
primitives.
self
draw.rectangle(x1, y1, x2, y2) -> self
Draw a rectangle.
self
gc.rectangle(20,20, 280,180)
draw.rotate(degrees) -> self
Specify a rotation transformation to the coordinate space. The default is 0.
The amount of rotation, in degrees. The angle of rotation is clockwise, so 90° is South.
self
gc.rotate(45)
draw.roundrectangle(x1, y1, x2, y2, cw, ch) -> self
Draw a rectangle with rounded corners.
self
gc.roundrectangle(20,20, 280,180, 8, 8)
draw.scale(sx, sy) -> self
Define a scale transformation to the coordinate space. The default scale is (1.0, 1.0).
self
draw.skewx(float) -> self
Define a skew transformation along the x-axis.
The amount of skew, in degrees.
self
gc.skewx(30)
draw.skewy(float) -> self
Define a skew transformation along the y-axis.
The amount of skew, in degrees.
self
gc.skewy(30)
draw.stroke(string) -> self
Specify the stroke color or pattern.
A color name or pattern name.
self
stroke_color
,
stroke_pattern
draw.stroke_antialias(true
or
false
) -> self
Specify if the stroke should be antialiased. The default is
true
.
draw.stroke_dasharray(x1,...,xn) -> self
Describe a pattern of dashes to be used when stroking paths. The arguments are a list of pixel widths of alternating dashes and gaps.
The first argument is the width of the first dash. The second is the width of the gap following the first dash. The third argument is another dash width, followed by another gap width, etc. If you specify an odd number of arguments, the arguments are repeated to produce an even number. All arguments must be > 0.
To produce a solid stroke, specify no arguments, i.e.
stroke_dasharray()
self
draw.stroke_dashoffset(integer) -> self
Specify the initial distance into the dash pattern.
The initial distance into the dash pattern. The units are pixels.
self
draw.stroke_linecap(string) -> self
Specify how the line ends should be drawn.
One of "butt", "round", or "square".
self
The following example is from the Stroke Properties section of the Scalable Vector Graphics (SVG) 1.1 Specification.
draw.stroke_linejoin(string) -> self
Specify how corners are drawn.
One of "miter", "round", or "bevel".
self
The following example is from the Stroke Properties section of the Scalable Vector Graphics (SVG) 1.0 Specification.
draw.stroke_miterlimit(float) -> self
Specify a constraint on the length of the "miter" formed by two lines meeting at an angle. If the angle if very sharp, the miter could be very long relative to the line thickness. The miter limit is a limit on the ratio of the miter length to the line width.
A number >= 1. The limit on the ratio of the miter length to the line width.
self
draw.stroke_opacity(float or string) -> self
Specify the stroke opacity.
A number between 0 and 1, inclusive, or a percentage represented as a string, i.e. '30%'. The argument 0.3 is the same as '30%'.
self
draw.stroke_opacity(0.4) draw.stroke_opacity('40%')
draw.stroke_width(integer) -> self
draw.text(x,y, text) -> self
Draw text at the location specified by (x,y). Use gravity to position text relative to (x, y). Specify the font appearance with the font, font_family, font_stretch, font_style, and font_weight methods. Specify the text attributes with the text_align, text_anchor, text_antialias, and text_undercolor methods.
Generally it is a good idea to surround the text string with quotes (""), apostrophes (''), or braces ({}). If the text string starts with a digit or contains an embedded blank, quote, or apostrophe, you must do this. ImageMagick removes these characters before drawing the text. You can also escape a blank, quote, or apostrophe by preceding it with a backslash ("\"). To include a backslash in the text, use two consecutive backslashes. To include a '%' in the text, use '%%'. See the examples below.
self
The text to the right of » is the text that will be drawn.
gc.text(10,10, '"Hello there!"') » Hello there! gc.text(10,10, "'What\'s up?'") » What's up? gc.text(10,10, %q/"What's up?"/) » What's up? gc.text(10,10, %q/{"What's up?"}/) » "What's up?"
draw.text_align(alignment) -> self
Align text relative to the starting point.
An AlignType constant.
self
draw.text_anchor(anchor) -> self
Align text relative to the starting point. This is the SVG 1.1 equivalent to text_align.
One of the constants StartAnchor
,
MiddleAnchor
, or EndAnchor
.
self
draw.text_antialias(true
or
false
) -> self
Specify if the text is to be antialiased.
Either true
or false
. The default
is true
.
self
The character on the left is not antialiased. The character on the right is antialiased.
draw.text_undercolor(string) -> self
The color to draw underneath text. The default is transparent.
A color name.
self
draw.translate(tx, ty) -> self
Specify a translation operation on the coordinate space.
self
gc.translate(125, 125)
draw.affine = matrix
The transformation matrix. The default is the null transformation.
An AffineMatrix.
draw.align = alignment
draw.decorate = decoration
The text decoration. The default is
NoDecorationType
.
A DecorationType constant.
draw.density = string
The text density in the x and y directions. The default is "72x72".
draw.encoding = string
The text encoding.
See the ImageMagick documentation for the
-encoding
option to the mogrify
command.
draw.fill = string or pixel
draw.fill_pattern = image
draw.font = string
The font name. The default is "Helvetica". See font for more information about font names.
draw.font_family = string
The font family name. For example, "arial" or "helvetica".
draw.font_stretch = stretch
draw.font_style = style
draw.font_weight = weight
The font weight.
A WeightType constant or one of the numbers 100, 200, 300, 400, 500, 600, 700, 800, or 900.
draw.gravity = gravity
Specifies how to orient text with respect to the text's origin.
A GravityType constant.
draw.interline_spacing = space
Modifies the space between lines.
A numeric value. May be positive or negative.
Available in ImageMagick 6.5.5-8.
draw.interword_spacing = space
Modifies the space between two words.
A numeric value. May be positive or negative.
Available in ImageMagick 6.4.8-0.
draw.kerning = space
Modifies the space between two letters.
A numeric value. May be positive or negative.
Available in ImageMagick 6.4.7-8.
draw.pointsize = integer
The font size in points. The default is 12.
draw.rotation = number
Apply rotation to text. The default is no rotation.
The amount of rotation in degrees.
draw.stroke = string or pixel
The stroke color. This is the color used to outline the text. The default is "black".
draw.stroke_pattern = image
draw.stroke = integer
The stroke width in pixels. The default is 1.
draw.text_antialias =
true
or false
Whether the text is antialiased or not. The default is
true
.
draw.tile = image
Tile image when filling a graphic primitive.
An image
draw.undercolor = string or pixel
If set, causes the text to be drawn over a box of the specified color.


About Snap Links
Check out our tutorial page for a quick introduction to using SnapLinks v3
Snap Links is a Firefox addon that lets you draw a lasso around links, checkboxes and other elements and do things with them.
- Open links in New Tabs
- Check/Uncheck checkboxes
- Select radio items
Other actions in the not too distant future planned (from v2)
- Open Tabs in a New Window
- Bookmark All
- Download All
- Copy Links to Clipboard
Status
Please see the project on GitHub for the latest news and information.Version History
See Release Notes for version information.


Free
You can use our service without any fee.
Easy
Simple to use our API with your map.
Powerful
Integreate location profile into your map.
Property Enchanter - API Service For Location Information Among Austrilia.


The video hearings service is managed by HM Courts and Tribunals Service (HMCTS).
When you use this service we (HMCTS) will ask you to provide some personal data. This policy explains why we collect your personal
data, what we do with it and your rights.
Why we collect your personal data
We collect your personal data so you can take part in a video hearing and to meet legal requirements. We also collect data to improve
the service.
What we do with your personal data
Your personal data is processed by our staff in the UK, and the data is stored within the EEA.
HMCTS is an executive agency of the Ministry of Justice. The Ministry of Justice is known as the 'data controller' of the personal
data you provide. The Ministry's personal information charter explains more about how we process data.
The data we collect
The personal data we collect includes:
your name, address and contact details, including your email address and telephone number
details of your company and your role, if applicable
details of anyone who acts on your behalf or anyone that you act for in a video hearing
information we gather to assess your suitability for a video hearing
information about your video hearing
information that tells us if you open an email from us, or click on a link in an email
the login details you use to access the video hearings service
information about the way you access this service including your IP address, internet speed, computer operating system and the
browser you use to access the internet. We do this by
using cookies.
How long we keep your data
The video hearings service will keep this information for 3 months after the date your hearing is booked to take place. We'll then
delete it. Information about your application or your case is held by a different department in HMCTS and different arrangements may
apply.
Storing and sharing your data internationally
Sometimes your personal data will be stored outside the UK. When we do this, we comply with data protection law.
Your rights
You can ask:
to see the personal data that we hold on you
to have the personal data corrected
to have the personal data removed or deleted (this will depend on the circumstances, for example, if you decide not to continue with
your case)
that access to the personal data is restricted (for example, you can ask to have your data stored for longer and not automatically
deleted)
If you want to see the personal data that we hold on you, you can:
You can also complain to the Information Commissioner's Office if you're not satisfied with our response or believe we're not processing your personal data lawfully.
Where hearings are recorded
The process for recording video hearings is the same as for hearings held in a court or tribunal building:
hearings at the Crown Court and at civil and family courts are always recorded
tribunal hearings are not always recorded. Contact the tribunal to find out if
the hearing was recorded.
hearings at magistrates' courts are never recorded.


{% extends "tutorial.html" %} {% block iscompatible %} return !!Modernizr.canvas {% endblock %} {% block html5badge %} {% endblock %} {% block content %}
HiDPI screens are lovely, they make everything look smoother and cleaner. But they also present a new set of challenges to developers. In this article we are going to take a look into the unique challenges of drawing images in the canvas in the context of HiDPI screens.
Let's start at the beginning. Back before we had HiDPI screens a pixel was a pixel (if we ignore zooming and scaling for a bit) and that was it, you didn't really need to change anything around. If you set something to be 100px wide that was all there was to it. Then the first few HiDPI mobile handsets started popping up with the slightly enigmatic devicePixelRatio property on the window object and available for use in media queries. What this property allowed us to do was understand the ratio of how pixel values (which we call the logical pixel value) in - say - CSS would translate to the actual number of pixels the device would use when it came to rendering. In the case of an iPhone 4S, which has a devicePixelRatio of 2, you will see that a 100px logical value equates to a 200px device value.
That's interesting, but what does that mean for us developers? Well in the early days we all started to notice that our images were being upscaled by these devices. We were creating images at the logical pixel width of our elements and, when they were drawn out, they would be upscaled by the devicePixelRatio and they'd be blurry.
The de facto solution to this has been to create images scaled up by the devicePixelRatio and then use CSS to scale it down by the same amount, and the same is true for canvas!
function setupCanvas(canvas) { // Get the device pixel ratio, falling back to 1. var dpr = window.devicePixelRatio || 1; // Get the size of the canvas in CSS pixels. var rect = canvas.getBoundingClientRect(); // Give the canvas pixel dimensions of their CSS // size * the device pixel ratio. canvas.width = rect.width * dpr; canvas.height = rect.height * dpr; var ctx = canvas.getContext('2d'); // Scale all drawing operations by the dpr, so you // don't have to worry about the difference. ctx.scale(dpr, dpr); return ctx; } // Now this line will be the same size on the page // but will look sharper on high-DPI devices! var ctx = setupCanvas(document.querySelector('.my-canvas')); ctx.lineWidth = 5; ctx.beginPath(); ctx.moveTo(100, 100); ctx.lineTo(200, 200); ctx.stroke();{% endblock %}


|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
This interface defines methods and constants related to the management of the sets of lookup services that are to be discovered using the multicast discovery protocol; that is, lookup services that are discovered by way of group discovery. The methods of this interface define how an entity retrieves or modifies the set of groups associated with those lookup services.
| Field Summary | |
static String[] |
ALL_GROUPS
Convenience constant used to request that attempts be made to discover all lookup services that are within range, and which belong to any group. |
static String[] |
NO_GROUPS
Convenience constant used to request that discovery by group membership be halted (or not started, if the group discovery mechanism is simply being instantiated). |
| Method Summary | |
void |
addGroups(String[] groups)
Adds a set of group names to the managed set of groups. |
String[] |
getGroups()
Returns an array consisting of the elements of the managed set of groups; that is, the names of the groups whose members are the lookup services to discover. |
void |
removeGroups(String[] groups)
Deletes a set of group names from the managed set of groups. |
void |
setGroups(String[] groups)
Replaces all of the group names in the managed set with names from a new set. |
| Field Detail |
public static final String[] ALL_GROUPS
public static final String[] NO_GROUPS
| Method Detail |
public String[] getGroups()
String
array consisting of the elements of the
managed set of groupssetGroups(java.lang.String[])
public void addGroups(String[] groups) throws IOException
DiscoveryPermission
on each of the groups in the
new set, otherwise a SecurityException
will be
propagated through this method.
groups
- String
array consisting of the group names
to add to the managed set.
IOException
- because an invocation of this method may
result in the re-initiation of the discovery process, which can
throw an IOException
when socket allocation occurs.
UnsupportedOperationException
- this exception
occurs when there is no managed set of groups to augment.
That is, the current managed set of groups is null
.
If the managed set of groups is null
, all groups
are being discovered; thus, requesting that a set of groups be
added to the set of all groups makes no sense.
NullPointerException
- this exception occurs when
either null
is input to the groups
parameter, or one or more of the elements of the
groups
parameter is null
. If a
null
is input, then the entity is effectively
requesting that "all groups" be added to the current managed
set of groups; which is not allowed. (Note that if the entity
wishes to change the managed set of groups from a finite set
of names to "all groups", the setGroups
method
should be invoked with null
input.)removeGroups(java.lang.String[])
public void setGroups(String[] groups) throws IOException
If null (ALL_GROUPS
) is input to this method, then
attempts will be made to discover all (as yet) undiscovered lookup
services that are within range, and which are members of any group.
If the empty array (NO_GROUPS
) is input, then group
discovery will cease until this method is invoked with an input
parameter that is non-null
and non-empty.
Note that any entity that invokes this method must have
DiscoveryPermission
on each of the groups in the
new set, otherwise a SecurityException
will be
propagated through this method.
groups
- String
array consisting of the group
names that will replace the current names in the
managed set.
IOException
- because an invocation of this method may
result in the re-initiation of the discovery process, which can
throw an IOException
when socket allocation occurs.getGroups()
public void removeGroups(String[] groups)
NO_GROUPS
) is input, this method takes
no action.
groups
- String
array consisting of the group names
that will be removed from the managed set.
UnsupportedOperationException
- this exception
occurs when there is no managed set of groups from which
remove elements.
NullPointerException
- this exception occurs when
null
is input to the groups
parameter.addGroups(java.lang.String[])
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Toggle navigation
e-Learning Commons
Sign in
×
Close
Sign in
North Campus
Georgia-Griffin Campus
Trial Gardens at UGA
Welcome to eLearning Commons
Student Support
D2L Help Center
Faculty Support
EITS Help Desk
Mon-Thurs: 8am-10pm, Fri: 8am-6pm, Sat-Sun: 1pm-7pm
Online:
Request Support Form
Phone:<PHONE_NUMBER>


Home
Backgrounds
Swatches
Blog
Resources
Hex
Stop
⊕
Linear
Radial
Upload Image
1
2
3
4
5
6
CSS
Max Compatibility
(IE6+)
Copy to Clipboard
Made with
by
ProxLight


CSS Late Night: Dig Deeper in CSS Syntax
Size and Unit
em
Relative Size
rem
Relative Size
CSS Inheritant
I am the paragraph of the section
I'm a list in the block
I'm another list inside the block
I'm the hyperlink inside the section
CSS conflict
I'm h2 heading
I'm heading
I'm another heading
At Rules
@


1939 Received B.S. from MIT and was named a Putnam Fellow.
1942 Received his Ph.D from Princeton University.
1942 to 1945 Worked on the Manhattan Project at Los Alamos and Oak Ridge.
1945 to 1950 Followed Hans Bethe to Cornell University where he joined the physics department
and
taught theoretical physics.
1950 Joined the faculty in the physics department at Caltech. Feynman conducted his best work
here
in areas such as quantum electrodynamics and the physics of superfluidity.
If you have time, you should read more about this incredible human being on his Wikipedia
entry.


Content of eager panes are created initially, even when they are not open.

OnInit
, and OnDestroy
lifecycle hooks are logged for content of each pane:


A successful build-to-suit project always has a story behind it. The complex process includes many elements, including finding a site, designing a functioning facility, budget planning and management, contractor selection and construction management. The DW Sivers Company team has an excellent reputation hard-earned through carefully selecting and completing diverse projects for demanding clients. Here are just a few past examples:
| PROJECT | FACILITY | CONTRACT | BROKER |
|---|---|---|---|
| Hawthorn Farm Station Athletic Club Belknap Ct, Hillsboro |
67,500 sf full service Athletic Club (1999) | Yorke & Curtis | Jim Hand and Ed Meaney |
| Sound Elevator 14250 NE Airport Way, Portland |
20,000 sf assembly with office and training (1998) | Yorke & Curtis | Tom Deschenne |
| Creative Gymnastics 9685 SW Harvest Ct, Beaverton |
16,000 sf Gymnastics school next to Beaverton Hoop (1998) | Gray Purcell Construction | |
| Vancouver Hoop 7250 NE 41st St, Vancouver, WA |
46,000 sf basketball and fitness club (1997) | Marion Construction, Salem | Tom Deschenne |
| Tube Specialties, Inc. 459 NW Sundial Rd, Troutdale |
120,000 sf manufacturing plant with corporate office (1996) | RA Gray Partners | Don Ossey |
| Beaverton Hoop 9785 SW Harvest Ct, Beaverton |
46,000 sf basketball and fitness club (1995) | Marion Construction, Salem | |
| McCoy Door & Stair 2443 SE 4th Ave, Portland |
Remodel-to-suit for specialty wood products supply (1994) | Sivers Construction | |
| Leatherman Tool Group Inc. 1 2106 NE Ainsworth Cir, Portland |
30,000 sf corporate office & manufacturing, (1992) exp. (1994) and (1996) | Mega Pacific Construction | Larry Conn |
| Tri-Met Special Dispatch Center 1630 NE 8th St, Portland |
Remodel for a dispatch center with sheltered parking (1992) | Sivers Construction | |
| Silver Eagle Truck Depot Airport Way, Portland |
Complete trucking facility with office, cross dock loading, repair (1991) | Mega Pacific Construction | Dave Egeloff |
| Johnstone Supply Corp. Headquarters 11632 NE Ains. Cir, Portland |
120,000 sf warehouse & corporate office (1990) | Mega Pacific Construction | Brook Meyer |
| Woodcrafter's Supply 212 NE 6th Ave, Portland |
30,000 sf remodel-to-suit for specialty wood products (1988) | Sivers Construction | Mack Hamlin |
| United Grocers Cash & Carry 3950 SW 170th, Aloha |
20,000 sf wholesale grocery facility (1986) | Mega Pacific Construction | Jim Allen |
| American National Red Cross | 20,000 sf wholesale grocery facility (1986) | Mega Pacific Construction | Jim Allen |


|
Oxygine
1
2g game engine
|
Public Member Functions | |
| void | reset () |
| void | restore () |
| spNativeTexture | createTexture () |
| bool | isReady () const |
| void | begin (const Rect &viewport, const Color *clearColor) |
| void | clear (const Color &color) |
| ShaderProgram * | getShaderProgram () const OVERRIDE |
| void | draw (PRIMITIVE_TYPE pt, const VertexDeclaration *decl, const void *verticesData, unsigned int verticesDataSize) |
| void | draw (PRIMITIVE_TYPE pt, const VertexDeclaration *decl, const void *verticesData, unsigned int verticesDataSize, const unsigned short *indicesData, unsigned int numIndices) |
| void | setDefaultSettings () |
| void | setViewport (const Rect &viewport) |
| void | setShaderProgram (ShaderProgram *) |
| void | setTexture (int sampler, spNativeTexture) |
| void | setUniformInt (const char *id, int v) |
| void | setUniform (const char *id, const Vector4 *v, int num) |
| void | setUniform (const char *id, const Vector3 *v, int num) |
| void | setUniform (const char *id, const Vector2 *v, int num) |
| void | setUniform (const char *id, const Matrix *mat) |
| void | setUniform (const char *id, float val) |
| Public Member Functions inherited from oxygine::VideoDriverGL | |
| void | getViewport (Rect &r) const |
| bool | getScissorRect (Rect &) const |
| spNativeTexture | getRenderTarget () const |
| const VertexDeclarationGL * | getVertexDeclaration (bvertex_format) const |
| void | setScissorRect (const Rect *) |
| void | setRenderTarget (spNativeTexture rt) |
| void | setBlendFunc (BLEND_TYPE src, BLEND_TYPE dest) |
| void | setState (STATE, unsigned int value) |
| Public Member Functions inherited from oxygine::IVideoDriver | |
| void | _debugAddPrimitives (PRIMITIVE_TYPE pt, int num) |
Protected Attributes | |
| GLuint | _vbo |
| GLuint | _ibo |
| int | _programID |
| ShaderProgram * | _p |
| Protected Attributes inherited from oxygine::VideoDriverGL | |
| spNativeTextureGLES | _rt |
| VertexDeclarations< VertexDeclarationGL > | _vdeclarations |
Additional Inherited Members | |
| Public Types inherited from oxygine::IVideoDriver | |
| enum | PRIMITIVE_TYPE { PT_POINTS, PT_LINES, PT_LINE_LOOP, PT_LINE_STRIP, PT_TRIANGLES, PT_TRIANGLE_STRIP, PT_TRIANGLE_FAN, PT_COUNT } |
| enum | BLEND_TYPE { BT_ZERO, BT_ONE, BT_SRC_COLOR, BT_ONE_MINUS_SRC_COLOR, BT_SRC_ALPHA, BT_ONE_MINUS_SRC_ALPHA, BT_DST_ALPHA, BT_DST_COLOR, BT_ONE_MINUS_DST_ALPHA, BT_ONE_MINUS_DST_COLOR } |
| enum | CULL_FACE_TYPE { CULL_FACE_FRONT_AND_BACK, CULL_FACE_FRONT, CULL_FACE_BACK } |
| enum | STATE { STATE_BLEND, STATE_CULL_FACE, STATE_NUM } |
| Static Public Attributes inherited from oxygine::IVideoDriver | |
| static Stats | _stats |
| static IVideoDriver * | instance |
| Protected Member Functions inherited from oxygine::VideoDriverGL | |
| unsigned int | getPT (IVideoDriver::PRIMITIVE_TYPE pt) |
| unsigned int | getBT (IVideoDriver::BLEND_TYPE pt) |
| void | _begin (const Rect &viewport, const Color *clearColor) |


Issue 14
-
A founder’s perspective on 4 years with Haskell
The Better platform gets around half a million learning actions every week and it has been running for well over a year with no downtime or maintenance. We still don’t know of any bugs.
-
What I’ve found when working with Haskell relative to Ruby is I have a much higher level of confidence in the system even without writing any tests.
-
This library provides first-class multi-arity product- and sum-types and neat type-level utilities for their composition.
-
ghc-mod Supporting GHC 8.0 and Cabal 1.24
ghc-mod is both a back-end program for enhancing editors and other development environments with support for Haskell as well as a library for abstracting the black magic incantations required to use the GHC API in various environments
-
SML is really limited to the areas of the Haskell type system you’d be accustomed to after reading Learn You A Haskell!
-
The compiler only states what doesn’t work, this is about what does work.


{% extends "withnav_template.html" %} {% from "components/textbox.html" import textbox %} {% from "components/checkbox.html" import checkbox %} {% from "components/page-header.html" import page_header %} {% from "components/page-footer.html" import page_footer %} {% from "components/form.html" import form_wrapper %} {% block service_page_title %} Add email reply-to address {% endblock %} {% block maincolumn_content %} {{ page_header( 'Add email reply-to address', back_link=url_for('main.service_email_reply_to', service_id=current_service.id) ) }}
Let recipients send replies to a shared inbox that’s managed by your team.
Do not use your own email address for replies.
{% call form_wrapper() %} {{ textbox( form.email_address, width='2-3', safe_error_message=True ) }} {% if not first_email_address %}


?The
New
York
copyright
reserved
botanical
Garden
01443559
Plants
Cubenses
Wrishtiamr.
m
Coll.
C.
WRIGHT,
I860
1864
ilPl
M
†H
Ń
1864.
....
FLORA
NEOTROPICA
Sideroxylon
horridum
(Gris.)
Penn,
T.DăPENNINGTON
1986
bˇtanical
01443559
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


Live ChatRoom
Home
Go To Conversations
Admin
Live ChatRoom
Show Topic List
50th Super Bowl
Brief description of the topic
Show Chat Participant
Show Chat History
Participants
Steve Zhang
Zach Lamb
Sigrunn Sky
History


| Have questions? | Check out our FAQ! |
| Want to contact the con? | Take a look at the contact list, or drop a note to our >Con Chair |
| Want to volunteer? | Fantastic! Just >tell us what you're interested in doing, or just >tell us that you want to volunteer! NO EXPERIENCE IS NECESSARY! |
This online registration system was originally developed for Intercon, a live-action roleplaying convention held annually in the Boston, Massachusetts area.


Address: http://wsf.cdyne.com/WeatherWS/Weather.asmx
Protocol: SOAP
Description: Gets Information for each WeatherID
Pattern: IN_OUT
Input: GetWeatherInformationSoapIn
Output: GetWeatherInformationSoapOut
Faults: none
Description: Allows you to get your City Forecast Over the Next 7 Days, which is updated hourly. U.S. Only
Pattern: IN_OUT
Input: GetCityForecastByZIPSoapIn
Output: GetCityForecastByZIPSoapOut
Faults: none
Description: Allows you to get your City's Weather, which is updated hourly. U.S. Only
Pattern: IN_OUT
Input: GetCityWeatherByZIPSoapIn
Output: GetCityWeatherByZIPSoapOut
Faults: none
Address: http://wsf.cdyne.com/WeatherWS/Weather.asmx
Protocol: SOAP
Description: Gets Information for each WeatherID
Pattern: IN_OUT
Input: GetWeatherInformationSoapIn
Output: GetWeatherInformationSoapOut
Faults: none
Description: Allows you to get your City Forecast Over the Next 7 Days, which is updated hourly. U.S. Only
Pattern: IN_OUT
Input: GetCityForecastByZIPSoapIn
Output: GetCityForecastByZIPSoapOut
Faults: none
Description: Allows you to get your City's Weather, which is updated hourly. U.S. Only
Pattern: IN_OUT
Input: GetCityWeatherByZIPSoapIn
Output: GetCityWeatherByZIPSoapOut
Faults: none
Address: http://wsf.cdyne.com/WeatherWS/Weather.asmx
Protocol: HTTP
Verb: GET
Description: Gets Information for each WeatherID
Pattern: IN_OUT
Input: none
Output: GetWeatherInformationHttpGetOut
Faults: none
Description: Allows you to get your City Forecast Over the Next 7 Days, which is updated hourly. U.S. Only
Pattern: IN_OUT
Input: string
Output: GetCityForecastByZIPHttpGetOut
Faults: none
Description: Allows you to get your City's Weather, which is updated hourly. U.S. Only
Pattern: IN_OUT
Input: string
Output: GetCityWeatherByZIPHttpGetOut
Faults: none
Address: http://wsf.cdyne.com/WeatherWS/Weather.asmx
Protocol: HTTP
Verb: POST
Description: Gets Information for each WeatherID
Pattern: IN_OUT
Input: none
Output: GetWeatherInformationHttpPostOut
Faults: none
Description: Allows you to get your City Forecast Over the Next 7 Days, which is updated hourly. U.S. Only
Pattern: IN_OUT
Input: string
Output: GetCityForecastByZIPHttpPostOut
Faults: none
Description: Allows you to get your City's Weather, which is updated hourly. U.S. Only
Pattern: IN_OUT
Input: string
Output: GetCityWeatherByZIPHttpPostOut
Faults: none
GetWeatherInformationSoapIn
Parts:
GetWeatherInformationSoapOut
Parts:
GetCityForecastByZIPSoapIn
Parts:
GetCityForecastByZIPSoapOut
Parts:
GetCityWeatherByZIPSoapIn
Parts:
GetCityWeatherByZIPSoapOut
Parts:
GetWeatherInformationHttpGetIn
GetWeatherInformationHttpGetOut
Parts:
GetCityForecastByZIPHttpGetIn
Parts:
GetCityForecastByZIPHttpGetOut
Parts:
GetCityWeatherByZIPHttpGetIn
Parts:
GetCityWeatherByZIPHttpGetOut
Parts:
GetWeatherInformationHttpPostIn
GetWeatherInformationHttpPostOut
Parts:
GetCityForecastByZIPHttpPostIn
Parts:
GetCityForecastByZIPHttpPostOut
Parts:
GetCityWeatherByZIPHttpPostIn
Parts:
GetCityWeatherByZIPHttpPostOut
Parts:
GetWeatherInformation
GetWeatherInformationResponse
Name: MorningLow Type: string Cardinality: 0..1
Name: DaytimeHigh Type: string Cardinality: 0..1
Name: WeatherID Type: short Cardinality: 1..1
Name: Description Type: string Cardinality: 0..1
Name: PictureURL Type: string Cardinality: 0..1
Name: Date Type: dateTime Cardinality: 1..1
Name: WeatherID Type: short Cardinality: 1..1
Name: Desciption Type: string Cardinality: 0..1
Name: Temperatures Type: temp Cardinality: 1..1
Name: ProbabilityOfPrecipiation Type: POP Cardinality: 1..1
short
GetCityWeatherByZIPResponse
Name: Success Type: boolean Cardinality: 1..1
Name: ResponseText Type: string Cardinality: 0..1
Name: State Type: string Cardinality: 0..1
Name: City Type: string Cardinality: 0..1
Name: WeatherStationCity Type: string Cardinality: 0..1
Name: ForecastResult Type: ArrayOfForecast Cardinality: 0..1
Name: Nighttime Type: string Cardinality: 0..1
Name: Daytime Type: string Cardinality: 0..1
Name: Success Type: boolean Cardinality: 1..1
Name: ResponseText Type: string Cardinality: 0..1
Name: State Type: string Cardinality: 0..1
Name: City Type: string Cardinality: 0..1
Name: WeatherStationCity Type: string Cardinality: 0..1
Name: WeatherID Type: short Cardinality: 1..1
Name: Description Type: string Cardinality: 0..1
Name: Temperature Type: string Cardinality: 0..1
Name: RelativeHumidity Type: string Cardinality: 0..1
Name: Wind Type: string Cardinality: 0..1
Name: Pressure Type: string Cardinality: 0..1
Name: Visibility Type: string Cardinality: 0..1
Name: WindChill Type: string Cardinality: 0..1
Name: Remarks Type: string Cardinality: 0..1


2
User Manual
> 2.9
Multithreading
2.9.1
Multiple Threads
2.9.2
High-Level Synchronization
2.9.3
Low-Level Synchronization


Naver: Line-Yahoo Japan Merger To Create Explosive Synergy
by Hyundai Motor Investment & SecuritiesSummary
- Naver subsidiary Line and SoftBank subsidiary Yahoo Japan merger announced.
- Naver and Softbank to form a 50:50 venture that would control Z Holdings.
- Naver and SoftBank to launch a tender offer for Line’s remaining shares.
Investment highlights
The merger of Naver (OTCPK:NHNCF) subsidiary Line (LN) and SoftBank (OTCPK:SFTBY) subsidiary Yahoo Japan was officially announced. Naver and Softbank will form a 50:50 venture that would control Z Holdings, which would operate Yahoo Japan and Line (an operating company). Naver and SoftBank plan to launch a tender offer for Line’s remaining shares. Z Holdings will remain a consolidated subsidiary of SoftBank, while Naver will recognize the company as income under the equity method.
Major issues and earnings outlook
The deal signifies the birth of Asia’s biggest Internet platform by combining Line’s 82mn subscribers and Yahoo Japan’s 50mn subscribers. Both companies are expected to create explosive synergy through service integration and collaborations in such areas as fintech, commerce, and AI.
Advertising: Yahoo Japan reported JPY75.5bn in advertising revenue in 3Q19 which was 2.5 times higher than the figure reported by Line (JPY30.6bn). We believe the merger will allow Line to make good use of Yahoo Japan’s broad advertiser pool and provide fresh momentum to Line’s previously sluggish ad business. The integration of the Internet portal and messaging service can also create synergy, be it tangible or intangible.
Fintech: The deal would bring together the previous rivals (Softbank’s PayPay and Line’s Line Pay) in Japan’s fledgling QR code payment market. Effective marketing and economies of scale will help these payment services secure early leadership in the market.
e-Commerce: Yahoo Japan is the country’s third-biggest e-commerce player with a transaction valued at JPY211.6bn (+22% YoY) in 3Q19. In the meantime, Line’s transaction value grew 83% YoY. The synergy between Yahoo Japan’s diverse seller pool and Line’s mobile channel could lead to explosive growth in transaction value. We also expect to see great synergy in the O2O (online to offline) business.
AI: The collective R&D efforts of the two companies should help to accelerate the advancement of existing services and provision of new services.
Share price outlook and valuation
We believe the synergy from the merger of the two companies will lead to an upgrade of Naver’s enterprise value. Accordingly, we reduce our discount on Z Holdings from 20% to 10% and raise our target price on Naver to KRW230,000.
Disclosure: I/we have no positions in any stocks mentioned, and no plans to initiate any positions within the next 72 hours. I wrote this article myself, and it expresses my own opinions. I am not receiving compensation for it (other than from Seeking Alpha). I have no business relationship with any company whose stock is mentioned in this article.
Additional disclosure: Hyundai Motor Company is a passive shareholder in our bank.


Imagine a gift, inside is the gift, wrapped in foam all around (padding), and the giftbox outside of it (border) and then a wrapping paper on the giftbox (margin).
block
as it’s display, the browser will follow these rules to layout the element:
Certain elements have block
as their default display, such as: divs, headers, and paragraphs.
inline
as it’s display, the browser will follow these rules to layout the element:
Certain elements have inline
as their default display, such as: span tags, anchors, and images.
Standard Box Model vs Border-Box
Inline-Block
block
and inline
.
Padding
padding-top
, padding-right
, padding-bottom
, padding-left
(clockwise!)Border
border-width
, border-style
, border-color
.Margin
margin-top
, margin-right
, margin-bottom
, margin-left
.margin: 0 auto
to center an element.position
property allows us to set the position of elements on a page and is an integral part of creatnig a Web page layout.static
, relative
, absolute
, fixed
, sticky
.static
) is used with: top
, right
, bottom
, and left
to position an element on a page.Static Positioning
Relative Positioning
#pink-box {
background-color: #ff69b4;
bottom: 0;
left: -20px;
position: relative;
right: 0;
top: 0;
}
Absolute Positioning
.container {
background-color: #2b2d2f;
position: relative;
}
#pink-box {
position: absolute;
top: 60px;
}
.container {
background-color: #2b2d2f;
position: relative;
}
#pink-box {
position: absolute;
top: 60px;
}
#blue-box {
position: absolute;
}
.container {
background-color: #2b2d2f;
position: relative;
}
#pink-box {
background-color: #ff69b4;
bottom: 60px;
position: absolute;
}
.container {
background-color: #2b2d2f;
}
#pink-box {
background-color: #ff69b4;
bottom: 60px;
position: absolute;
}
Fixed Positioning
Sticky Positioning
Flexbox is a CSS module that provides a convenient way for us to display items inside a flexible container so that the layout is responsive.
Using Flexbox
Flexbox automatically resizes a container element to fit the viewport size without needing to use breakpoints.
Flexbox layout applies styles to the parent element, and it’s children.
.container {
display: flex; /*sets display to use flex*/
flex-wrap: wrap; /*bc flex tries to fit everything into one line, use wrap to have the elements wrap to the next line*/
flex-direction: row; /*lets us create either rows or columns*/
}
flex-flow
can be used to combine wrap and direction.justify-content
used to define the alignment of flex items along the main axis.align-items
used to define the alignment on the Y-axis.align-content
redistributes extra space on the cross axis.
By default, flex items will appear in the order they are added to the DOM, but we can use the order
property to change that.
flex-grow
: dictates amount of avail. space the item should take up.flex-shrink
: defines the ability for a flex item to shrink.flex-basis
: Default size of an element before the remaining space is distributed.flex
: shorthand for grow, shrink and basis.align-self
: Overrides default alignment in the container.Bootstrap vs CSS Grid
.grid-container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: auto;
grid-template-areas:
"header header header"
"main . sidebar"
"footer footer footer";
grid-column-gap: 20px;
grid-row-gap: 30px;
justify-items: stretch;
align-items: stretch;
justify-content: stretch;
align-content: stretch;
}
.item-1 {
grid-area: header;
}
.item-2 {
grid-area: main;
}
.item-3 {
grid-area: sidebar;
}
.item-4 {
grid-area: footer;
}
repeat
, fractions.Grid Template Areas
gives us a handy way to map out and visualize areas of the grid layout.Grid Gaps
can be used to create ‘gutters’ between grid item.s
The way we have defined our grid with grid-templates
and areas
are condidered explicit.
We can also implicitly
define grids.
.grid-container {
display: grid;
grid-template-columns: 100px 100px 100px 100px;
grid-template-rows: 50px 50px 50px;
grid-auto-columns: 100px;
grid-auto-rows: 50px;
}
Spanning Columns & Rows
We can use the following properties to take up a specified num of cols and rows.
grid-column-start
grid-column-end
grid-row-start
grid-row-end
All four properties can take any of the following values: the line number, span #, span name, auto.
.item-1 {
grid-row-start: row2-start; /* Item starts at row line named "row2-start" */
grid-row-end: 5; /* Item ends at row line 5 */
grid-column-start: 1; /* Item starts at column line 1 */
grid-column-end: three; /* Item ends at column line named "three" */
}
.item-2 {
grid-row-start: 1; /* Item starts at row line 1 */
grid-row-end: span 2; /* Item spans two rows and ends at row line 3 */
grid-column-start: 3; /* Item starts at column line 3 */
grid-column-end: span col5-start; /* Item spans and ends at line named "col5-start" */
}
Grid Areas
Justify & Align Self
Justify Self is used to align self on the row.


Important:
- All of these Q&A entries will be indexed in the help search and thus be findable by any logged in hub user.
Created at: {{q.created_at | date:'EEE MMM d y HH:mm UTC':'UTC'}} | Updated at: {{q.updated_at | date:'EEE MMM d y HH:mm UTC':'UTC'}}


This is the write-up of an experience I underwent from ingesting roughly 10 grams of Morning Glory Heavenly Blue seeds. It was my first time, my only previous experience with mind altering substances had been with cannabis and salvia. I took these seeds with the intention of learning from them.
Prior to experience:
I had received a pack of 20 grams of seeds, which I decided to share with a friend, named T. I went to his house around 23:30, we ground the seeds up and ingested them raw at 00:20: me in orange juice and he in honey. We both had around 10 grams (300 seeds?), they tasted rather well. We smoked some shisha (hookah), there were two more people there, who were sober J and A. We had music on, and a relaxed atmosphere, and the first two hours were spent talking and smoking. I was aware that raw seeds have the tendency to make people want to throw up, and had no problem with the outlook we had buckets handy just in case. We both started to feel an uneasiness in the stomach after about 1h of ingestion, but neither of us threw up then nor during the later stages. Mind really is over body.
Effect:
There started to be some noticeable effects around 1h 30m after ingestion I found myself increasingly interested in sensory information, like music and watching the coal on the shisha. The effects came in waves, coming on and then going away again, like a mix between mild drunkenness and cannabis. From here on I did not look at the clock until 7:50 in the morning, so I can only guess how quickly the physical time passed. Perhaps about 2.5 hours after ingestion, when the effects were starting to be noticeable, conversation less coherent, I decided to go outside and away from the music and lights, which were distracting my thoughts.
T had a trampoline in his garden, I laid down on it, looking upward. The sky was clearing, and stars were starting to be visible. An effect which was strongly noticeable from Morning Glory was that it was easier than normal to clear my mind. I tried listening to my iPod, to relaxing instrumental music with vocals, but found that silence was a lot more preferable. After about 20 minutes I got cold and went inside to get blankets T and our sober friend then also decided to join me outside. We laid down on the trampoline, by then the sky was clear. My mind was very still, and I meditated on my own existence. I looked beyond sensory information to listen to my thoughts directly, then I looked behind the thoughts to grasp idea. During sobriety I have not been able to go further, but with the help of Morning Glory I was able to penetrate behind the idea itself, behind existence, behind and over all that our mind knows.
What I realized:
The mind can understand everything if it sees that it understands nothing phenomenal existence is infinitely complicated, and our mind is a machine designed to survive in it. Existence is a reflection of what various traditions have called God, enlightenment, infinity, zero, quantum field, the cycle of life, or the eternal moment. With the help of morning glory I was able to see our existence as it is. There are no concepts to describe it, for any concept is also part of the world, either mental or physical. It is not existence and it is not not existence either. One can only be in it to know it ironically we always are, but we are unaware of it.
I believe that for at least an hour we laid there on the trampoline, and for a long time we said nothing at all. After a while, I have no idea how long, me and T started talking about our experience, and he quickly came to the same realizations as I had. I cannot speak from T's point of view, so I will restrain myself to my own. We could not help laughing everything seemed so clear, and for some reason the mind just wanted to laugh. We discussed how all the existence is it, and how normally we are unaware of it. We no longer thought from a personal point of view, for the mind is also a part of it, but we saw beyond. I believe this is called the ego death by some traditions. After a while we went back inside, and our sober friend left. We sat on the couch for the remaining ~3 hours, discussing, but primarily just being, experiencing the eternal moment.
It is a state of perfect acceptance, a state of non-doing, for there is no I who could do. It is possible to create, but creating without doing, my body was the tool for it, when it had come to realize itself. Both me and my friend thought we could understand everything. True understanding is not when my mind knows something, for example why gravity works, for all that my mind can know is part of the phenomenal world. We understood creation itself. We became aware of the moment itself, therein lies complete acceptance and through acceptance, understanding.
Me and T both felt it most accurate to speak about ourselves from the 3rd person. In a way we saw everything from the side. Material existence made more sense than ever, on a deeper level. Mathematics, quantum physics, music, sight, thought, everything was understood. The mind did not work as it usually does by processing causes and effects, it just accepted and knew. I was capable of writing perfectly on my GSM. Automatic actions like writing, walking etc. were uninhibited, perhaps slightly clumsier. I just let my mind do it, and watch from the side. Existence's meaning was clear. We were without an ego. As soon as I came back into I, concepts like infinity did not make sense, but then I would rebound back, into perfect awareness again. The whole experience is underlined by clarity. It would take a full volume to write down all that my mind revealed to me, for all that I thought about would make sense.
This state lasted for a long time. We both realized that as the substance will wear off, we will return to being blind about existence, but it was perfectly ok. We accepted that we will continue living our lives, as we always would have. On the other hand, we both knew we would not be the same again. We believed that we were enlightened during that time. Enlightened through perfect acceptance of whatever arises, and not trying to change it.
After:
We had breakfast at 08:00, still heavily under the influence of LSA. It took us more than an hour to finish breakfast, for each bite would take a long time, and then we would end just being, staring at things, for a time, before the next bite. Physical time passed very quickly. During the whole experience we had been unable to sleep, but around 9am we finally managed to. I compared the effects of LSA to awareness during deep sleep periods itself. Around 12:00 we awoke, and I started to cycle home. I was still heavily out of normal reality, but I was confident to cycle. I knew that my reflexes weren't as good as they are during sobriety, and I acted accordingly, I cycled carefully. It would be more correct to say that my mind and body were cycling, for there was still no I. I came home unhurt and went to sleep again.
I prefer to take mind altering substances alone, away from distractions, but I believe that the magnitude of the described experience came to be from the combination of my own and T's personality. I am abstract and he is relaxed, and we came to a perfect understanding of each other.
It is surprising to me, how fast I've recovered from the trip. For the past 2 days I've been basically doing nothing but sleeping, but I am back to my old existence, as it always has been. However I have scratched the surface of what is enlightenment, and it has given me motivation to strive for it truly not by substances, but by entering the moment, and accepting. I received what I wished from these seeds.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Google Account¶
Prerequisits¶
We assume you have the cloudmesh google provider installed. This can be done with
$ pip install cloudmesh-google
For developers the best way to install it is to use
cloudmesh-installer
.
$ mkdir cm
$ cd cm
$ pip install cloudmesh-installer
$ cloudmesh-installer git clone google
$ cloudmesh-installer git install google
Creating the Google account¶
A new google account can be created using following information:
Activation Google Storage Service¶
Google allows you to apply for an account offering you $300 in credits to use google storage cloud. To apply for it you can use either of the follwoing links:
Please chose the one that is most appropriate for you. For the eductaional account you may need a verifiaction from your school or an email that is registered as an educational insititution.
Create a Project¶
Next, you will need to create a Google project. We recommend that you
simply use the name cloudmesh
. You can create such a project at
The three screenshots show the workflow on how to create a project:
Create a Service Account¶
Now you need to also create a service account by clicking the follwoing link:
To create it you need to select the newly created project and go to
-
Go to section :Creating a service account
Following is the direct link to generate credentials from google :
Sample files: `client_secret.json` `google-drive-credentials.json`
To create and download new private key you will use to authenticate. Select the JSON format and download the file and save it to
~/.cloudmesh
Make sure you keep that directory secure.
todo:: in future we want a link to a security section here
This file will be used to update the YAML entry in the file
$ ~/.cloudmesh/cloudmesh.yaml
We recommend that you rename the downloaded file to google.json
when
you save it.
IMPLEMNET:
$ cms register google google.json
Update Cloudmesh with the Google Storage Account Information¶
$ cms google config add ~/.cloudmesh/google.json --service=google
MOVE THE CONTENT FROM HERE INTO CONFIGURATION SECTION …
Mor details of the configuration can v=be looked up in the Cloudmesh Configuration Section
THE COMMANDS HAVE TO BE REVISITED
$ cms google list # what does thsi do?
THIS NEEDS TO BE RENAMED TO
$ cms google config list # logical
$ cms google yaml list storage # somewhat logical
Using the Google Storage¶
If google storage bucket is alredy created, you can list google storage bucket using following command:
$ cms google list
From the displayed list please pick bucket of your choice and add bucket name to yaml file in the storage section for google provider
storage > google > default > directory
.

JUNK¶
For google cloud storage cloudmesh services cms
provides command
line interface which is part of part of cloudmesh-google storage
application.
Various available operations using cms are file operations for put to
upload, get to download, list, delete object/blob
, create directory.
First, we need to create an account as follows:
You can certainly do it by hand :::::
- ``IAM & Admin -> Service Accounts -> Create service account``
to create a new service account. Select
Furnish a new private key


Assignment 1
Write a short note on history of web and internet.
The Internet started in the 1960s as a way for government
researchers to share information. Computers in the '60s were
large and immobile and in order to make use of information
stored in any one computer, one had to either travel to the site
of the computer or have magnetic computer tapes sent through the
conventional postal system.
January 1, 1983 is considered the official birthday of the
Internet. Prior to this, the various computer networks did not
have a standard way to communicate with each other. A new
communications protocol was established called Transfer Control
Protocol/Internetwork Protocol (TCP/IP). This allowed different
kinds of computers on different networks to "talk" to each
other. ARPANET and the Defense Data Network officially changed
to the TCP/IP standard on January 1, 1983, hence the birth of
the Internet. All networks could now be connected by a universal
language..
The image above is a scale model of the UNIVAC I (the name stood
for Universal Automatic Computer) which was delivered to the
Census Bureau in 1951. It weighed some 16,000 pounds, used 5,000
vacuum tubes, and could perform about 1,000 calculations per
second. It was the first American commercial computer, as well
as the first computer designed for business use. (Business
computers like the UNIVAC processed data more slowly than the
IAS-type machines, but were designed for fast input and output.)
The first few sales were to government agencies, the A.C.
Nielsen Company, and the Prudential Insurance Company. The first
UNIVAC for business applications was installed at the General
Electric Appliance Division, to do payroll, in 1954. By 1957
Remington-Rand (which had purchased the Eckert-Mauchly Computer
Corporation in 1950) had sold forty-six machines.
Discuss the functions of different protocols.
TCP and UDP:
The Transmission Control Protocol (TCP) and the User Datagram
Protocol (UDP) are used to transmit network data to and from
server and client applications. The main difference between the
two protocols is that TCP uses a connection-oriented transport,
while UDP uses a connectionless type of communication. When the
TCP protocol is used, a special connection is opened up between
two network devices, and the channel remains open to transmit
data until it is closed. On the other hand, a UDP transmission
does not make a proper connection and merely broadcasts its data
to the specified network address without any verification of
receipt. For certain types of applications and services, a TCP
connection makes more sense, while other types are more
efficiently provided by UDP communication. The advantage of TCP
is that the transmission is much more reliable because it uses
acknowledgement packets to ensure delivery. The advantage of UDP
is that there is no connection, so it is much faster without all
the checks and acknowledgements going on, but is also less
reliable. In Table some common TCP/IP applications are shown
with the type of protocol they use.
DNS:
TCP/IP networks communicate with hosts using their IP addresses.
It would be very difficult for someone to have to memorize the
different IP addresses for the hosts they want to connect to on
the network. A Domain Name Service (DNS) makes it easier to
identify a host by a domain name. A domain name uses words
rather than numbers to identify Internet hosts. Suppose you want
to connect to the CompTIA Web site by using your Web browser.
NAT (Network Address Translation):
NAT translates one IP address to another. This can be a source
address or a destination address. Two basic implementations of
NAT can be used: static and dynamic
ICS (Internet Connection Sharing):
ICS (Internet Connection Sharing) is a built-in feature of
Windows 98 Second Edition, Windows 2000, Windows Me, and Windows
Xp. ICS provides networked computers with the capability to
share a single connection to the Internet. Multiple users can
use ICS to gain access to the Internet through a single
connection by using Dial-Up Networking or local networking.
WINS (Windows Internet Name Service):
While DNS resolves host names to IP addresses, WINS resolves
NetBIOS names to IP addresses. Windows Internet Name Service
provides a dynamic database of IP address to NetBIOS name
resolution mappings. WINS, determines the IP address associated
with a particular network computer. This is called name
resolution. WINS supports network client and server computers
running Windows. WINS uses a distributed database that is
automatically updated with the names of computers currently
available and the IP address assigned to each one. DNS is an
alternative for name resolution suitable for network computers
with fixed IP addresses.
SNMP (Simple Network Management Protocol):
Simple Network Management Protocol, is a TCP/IP protocol for
monitoring networks and network components. SNMP uses small
utility programs called agents to monitor behavior and traffic
on the network, in order to gather statistical data. These
agents can be loaded onto managed devices such as hubs, NIC's,
servers, routers, and bridges. The gathered data is stored in a
MIB (management information base). To collect the information in
a usable form, a management program console polls these agents
and downloads the information from their MIB's, which then can
be displayed as graphs, charts and sent to a database program to
be analyzed.
NFS (Network File System):
Network File System (NFS) is a distributed file system that
allows users to access files and directories located on remote
computers and treat those files and directories as if they were
local.
Zeroconf (Zero configuration):
Zero Configuration Networking is a set of techniques that
automatically create a usable IP network without configuration
or special servers. This allows unknowledgeable users to connect
computers, networked printers, and other items together and
expect them to work automatically. Without Zeroconf or something
similar, a knowledgeable user must either set up special
servers, like DHCP and DNS, or set up each computer's network
settings manualy.
SMB (Server Message Block):
A file-sharing protocol designed to allow networked computers to
transparently access files that reside on remote systems over a
variety of networks. The SMB protocol defines a series of
commands that pass information between computers. SMB uses four
message types: session control, file, printer, and message
AFP (Apple File Protocol):
The file sharing protocol used in an AppleTalk network. In order
for non-Apple networks to access data in an AppleShare server,
their protocols must translate into the AFP language. AFP
versions 3.0 and greater rely exclusively on TCP/IP (port 548 or
427) for establishing communication, supporting AppleTalk only
as a service discovery protocol. The AFP 2.x family supports
both TCP/IP and AppleTalk for communication and service
discovery.
LPD (Line Printer Daemon) and Samba:
LPD is the primary UNIX printing protocol used to submit jobs to
the printer. The LPR component initiates commands such as "print
waiting jobs," "receive job," and "send queue state," and the
LPD component in the print server responds to them. The most
common implementations of LPD are in the official BSD UNIX
operating system and the LPRng project. The Common Unix Printing
System (or CUPS), which is more common on modern Linux
distributions, borrows heavily from LPD. Unix and Mac OS X
Servers use the Open Source SAMBA to provide Windows users with
Server Message Block (SMB) file sharing.
What is the difference between JVM and JDK?
| JVM | JDK |
|---|---|
| The full form of JVM is Java Virtual Machine. | The full form of JDK is Java Development Kit. |
| JVM executes Java byte code and provides an environment for executing it. | JDK is a software development kit to develop applications in Java. |
| JVM is platform-independent. | JDK is platform dependent. |
| Software development tools are not included in JVM. | It contains tools for developing, debugging, and monitoring java code. |
| JVM is a subset of JRE. | It is the superset of JRE |
| It is the Java platform component that executes source code. | The JDK enables developers to create Java programs that can be executed and run by the JRE and JVM. |
| JVM bundled in both software JDK and JRE. | JDK comes with the installer. |
Explain Java features.
These are the features of java-
Object Oriented:
In Java, everything is an Object. Java can be easily extended
since it is based on the Object model.
Platform Independent:
Unlike many other programming languages including C and C++,
when Java is compiled, it is not compiled into platform specific
machine, rather into platform-independent byte code. This byte
code is distributed over the web and interpreted by the Virtual
Machine (JVM) on whichever platform it is being run on.
Simple:
Java is designed to be easy to learn. If you understand the
basic concept of OOP Java, it would be easy to master.
Secure:
With Java's secure feature it enables to develop virus-free,
tamper-free systems. Authentication techniques are based on
public-key encryption.
Architecture-neutral:
Java compiler generates an architecture-neutral object file
format, which makes the compiled code executable on many
processors, with the presence of Java runtime system.
Portable:
Being architecture-neutral and having no implementation
dependent aspects of the specification makes Java portable. The
compiler in Java is written in ANSI C with a clean portability
boundary, which is a POSIX subset.
Robust:
Java makes an effort to eliminate error-prone situations by
emphasizing mainly on compile time error checking and runtime
checking.
Multithreaded:
With Java's multithreaded feature it is possible to write
programs that can perform many tasks simultaneously. This design
feature allows the developers to construct interactive
applications that can run smoothly.
Interpreted:
Java byte code is translated on the fly to native machine
instructions and is not stored anywhere. The development process
is more rapid and analytical since the linking is an incremental
and light-weight process.
High Performance:
With the use of Just-In-Time compilers, Java enables high
performance.
Distributed:
Java is designed for the distributed environment of the
internet.
Dynamic:
Java is considered to be more dynamic than C or C++ since it is
designed to adapt to an evolving environment. Java programs can
carry an extensive amount of run-time information that can be
used to verify and resolve accesses to objects at run-time.
What are access specifiers? Draw a table showing all the access specifiers and their accessibility in the class, package, subclasses and other packages.
Access Specifiers:
Java Access Specifiers (also known as Visibility Specifiers )
regulate access to classes, fields and methods in Java.These
Specifiers determine whether a field or method in a class, can
be used or invoked by another method in another class or
sub-class. Access Specifiers can be used to restrict access.
Access Specifiers are an integral part of object-oriented
programming.
In java we have four Access Specifiers and they are listed
below:
1. public
2. private
3. protected
4. default(no specifier)
| Modifiers | Class | Subclass | Package | Global |
|---|---|---|---|---|
| Public | Yes | Yes | Yes | Yes |
| Private | Yes | No | No | No |
| Protected | Yes | Yes | Yes | No |
| Default | Yes | No | Yes | No |


As a determined and young girl Josie had everything, she needed to prepare herself for the world of Sales when she received her first quarter at a Lemonade stand, she had outside of her house. Graduating with honors from Kansas University in 2015 she has joined many sales teams and always worked her way to the top. Her actions are always on point and quick to the draw and when she met Green Thumb Academy at a lead generation convention in Las Vegas, she did not disappoint the staff on hand. Her knowledge and expertise were exactly what Green Thumb needed to grow and expand their market. Much like she did in the past, in just a few years’ time she climbed the ranks of the sales staff at GTA and now directs all client and customer facing business. In her free time, she likes to travel to the mountains and never misses an opportunity to ski.
Sales Person
Jane Allen
Jane is a city girl with a warm personality until you tell her she cannot do something; she will prove you wrong every time. With no formal training, Jane is what you call a natural at bending clients and customers a-like to her will. At a young age Jane took over the family business, a general store in her hometown of Spokane Washington. The store itself was a mainstay in town and had never shown growth until Jane took over the reins. The Allen's general store was modified and replicated now multiple times in three of the surrounding states proudly holding her family’s name. The original store serves as an office for Jane who never wants to leave her hometown. As a member of Green Thumb Academy, she has overseen the growth and expansion from a single class to multiple classes in multiple locations in the region.
Sales Person
Leonard Thomas
Instead of waiting for the "good leads" Leonard is a master of turning something out of nothing. Building castles with a grain of sand and knocking down the competition’s is his m.o. Working in a team environment Leonard shines with his upbeat outlook on life and never-ending perseverance to push his coworkers to their fullest potential. He has been known to pitch the anyone that he meets on a potential new avenue of thought, which is why a few of the people he has spoken to are now part of the team. Recruitment was never a requirement of his position at Green Thumb Academy, but it is an unmistakable talent that he possess. In his free time (when he is not making sales to anyone that will listen to him) he is raising his family in the suburbs of Kansas City and teaching his junior to aspire to his talents.


Designed after 157 hours of consultations, 45 meetings and meeting with over 100 elders
Remember God is watching you, be honest ☺ just kidding but have fun!
What is Lobola?


|
|
def | __init__ (self, dir) |
| |
|
def | switching_dynamics (self) |
| | loops over active contacts to determine if control authority is available or not
|
| |
|
def | skew (self, v) |
| | converts vector v to skew symmetric matrix
|
| |
|
def | quaternion_to_rotation (self, q) |
| | converts quaternion to rotation matrix
|
| |
|
def | exp_quaternion (self, w) |
| | converts angular velocity to quaternion
|
| |
|
def | log_quaternion (self, q) |
| | lives on the tangent space of SO(3)
|
| |
|
def | quaternion_product (self, q1, q2) |
| | computes quaternion product of q1 x q2
|
| |
|
def | integrate_quaternion (self, q, w) |
| | updates quaternion with tangent vector w
|
| |
| def | quaternion_difference (self, q1, q2) |
| | computes the tangent vector from q1 to q2 at Identity returns vecotr w s.t. More...
|
| |
|
def | integrate_veocity (self, v, f) |
| |
|
def | integrate_angular_velocity (self, w, q, tau) |
| |
|
def | compute_trajectory_from_controls (self, x, u) |
| | xu0 contains initial trajectory at x[0], and controls for the full horizon
|
| |
|
def | integrate_step (self, t, x, u) |
| | state vector x is given by x = [c, v, q, w] where c center of mass cartesian position v center of mass linear velocity q base orientation represented as a quaternion w base angular velocity
|
| |
|
def | increment_x (self, x, dx) |
| | perturbs x with dx
|
| |
|
def | diff_x (self, x1, x2) |
| | return the difference between x2 and x1 as x2 (-) x1 on the manifold
|
| |
|
def | dynamics_derivatives (self, t, x, u) |
| | computes df/dx and df/du using finite differentiation
|
| |
|
def | cost (self, t, x, u) |
| | a tracking cost for state and controls here we assume x0 to be the reference trajectory
|
| |
|
def | cost_derivatives (self, t, x, u) |
| | compute cx, cxx, cu, cuu, cxu using finite differences
|
| |
|
def | cost_dxdx (self, t, x, u) |
| |
|
def | cost_dudu (self, t, x, u) |
| | for quadratic tracking cost, structure is trivial uncomment finite difference for different cost implementation
|
| |
|
def | cost_dxdu (self, t, x, u) |
| | structure is trivial for quadratic cost uncomment finite differences for any other structure
|
| |
|
def | compute_Q (self, V_next, Vx_next, Vxx_next, t, x, u) |
| |
|
def | compute_value_function (self, t) |
| |
|
def | compute_gains (self) |
| | performs a backward pass to compute the lqr gain for the reference trajectories
|
| |


Akan names are derived from Ghanaian culture. Frequently in Ghana, children are given their first name as a 'day name' which corresponds to the day in the week week they were born.
This web application takes your birthday and calculates the day of the week you were born. Then depending on your gender it will output your Akan Name.
Here are Ghanaian day names:
Male
Female


|
GPGPU-Sim
|
#include <abstract_hardware_model.h>
Public Member Functions | |
| mem_access_t () | |
| mem_access_t (mem_access_type type, new_addr_type address, unsigned size, bool wr) | |
| mem_access_t (mem_access_type type, new_addr_type address, unsigned size, bool wr, const active_mask_t &active_mask, const mem_access_byte_mask_t &byte_mask) | |
| new_addr_type | get_addr () const |
| void | set_addr (new_addr_type addr) |
| unsigned | get_size () const |
| const active_mask_t & | get_warp_mask () const |
| bool | is_write () const |
| enum mem_access_type | get_type () const |
| mem_access_byte_mask_t | get_byte_mask () const |
| void | print (FILE *fp) const |
Private Member Functions | |
| void | init () |
Private Attributes | |
| unsigned | m_uid |
| new_addr_type | m_addr |
| bool | m_write |
| unsigned | m_req_size |
| mem_access_type | m_type |
| active_mask_t | m_warp_mask |
| mem_access_byte_mask_t | m_byte_mask |
Static Private Attributes | |
| static unsigned | sm_next_access_uid = 0 |
Definition at line 611 of file abstract_hardware_model.h.
|
inline |
Definition at line 613 of file abstract_hardware_model.h.
|
inline |
Definition at line 614 of file abstract_hardware_model.h.
|
inline |
Definition at line 625 of file abstract_hardware_model.h.
|
inline |
Definition at line 640 of file abstract_hardware_model.h.
|
inline |
Definition at line 646 of file abstract_hardware_model.h.
|
inline |
Definition at line 642 of file abstract_hardware_model.h.
|
inline |
Definition at line 645 of file abstract_hardware_model.h.
|
inline |
Definition at line 643 of file abstract_hardware_model.h.
|
inlineprivate |
Definition at line 666 of file abstract_hardware_model.h.
|
inline |
Definition at line 644 of file abstract_hardware_model.h.
|
inline |
Definition at line 648 of file abstract_hardware_model.h.
|
inline |
Definition at line 641 of file abstract_hardware_model.h.
|
private |
Definition at line 674 of file abstract_hardware_model.h.
|
private |
Definition at line 679 of file abstract_hardware_model.h.
|
private |
Definition at line 676 of file abstract_hardware_model.h.
|
private |
Definition at line 677 of file abstract_hardware_model.h.
|
private |
Definition at line 673 of file abstract_hardware_model.h.
|
private |
Definition at line 678 of file abstract_hardware_model.h.
|
private |
Definition at line 675 of file abstract_hardware_model.h.
|
staticprivate |
Definition at line 681 of file abstract_hardware_model.h.


You have three types of authentication methods
- Database type authentications: username and password style that is queried from the database to match. Passwords are kept hashed on the database.
- Open ID: Uses the user’s email field to authenticate on Gmail, Yahoo etc...
- LDAP: Authentication against an LDAP server, like Microsoft Active Directory.
Configure the authentication type on config.py, take a look at Base Configuration
The session is preserved and encrypted using Flask-Login, OpenID requires Flask-OpenID.
Each user belongs to a role, and a role holds permissions on views and menus, so a user has permissions on views and menus.
There are two special roles, you can define their names on the Base Configuration
- Admin Role: The framework will assign all the existing permission on views and menus to this role, automatically, this role is for authenticated users only.
- Public Role: This is a special role for non authenticated users, you can assign all the permissions on views and menus to this role, and everyone will access specific parts of you application.
Of course you can create any additional role you want and configure them as you like.
The framework automatically creates for you all the possible existing permissions on your views or menus, by “inspecting” your code.
Each time you create a new view based on a model (inherit from ModelView) it will create the following permissions:
- can list
- can show
- can add
- can edit
- can delete
- can download
These base permissions will be associated to your view, so if you create a view named “MyModelView” you can assign to any role these permissions:
- can list on MyModelView
- can show on MyModelView
- can add on MyModelView
- can edit on MyModelView
- can delete on MyModelView
- can doanload on MyModelView
If you extend your view with some exposed method via the @expose decorator and you want to protect it use the @has_access decorator:
class MyModelView(ModelView):
datamodel = SQLAModel(Group, db.session)
@has_access
@expose('/mymethod/')
def mymethod(self):
# do something
pass
The framework will create the following access based on your method’s name:
- can mymethod on MyModelView
You can aggregate some of your method’s on a single permission, this can simplify the security configuration if there is no need for granular permissions on a group of methods, for this use @permission_name decorator.
You can use the @permission_name to override the permission’s name to whatever you like.
Take a look at API Reference
All your permissions and views are added automatically to the backend and associated with the ‘Admin’ role. The same applies to removing them, to some extent. But, if you change the name of a view or menu the framework will add the new Views and Menus names to the backend, but, will not delete the old ones. This can generate unwanted names on the security basically garbage. To clean it use the security_cleanup method, use it after you have registered all your views
appbuilder.add_view(GroupModelView(), "List Groups", icon="fa-folder-open-o", category="Contacts", category_icon='fa-envelope')
appbuilder.add_view(ContactModelView(), "List Contacts", icon="fa-envelope", category="Contacts")
appbuilder.add_separator("Contacts")
appbuilder.add_view(ContactChartView(), "Contacts Chart", icon="fa-dashboard", category="Contacts")
appbuilder.add_view(ContactTimeChartView(), "Contacts Birth Chart", icon="fa-dashboard", category="Contacts")
appbuilder.security_cleanup()
You can always use it and everything will be painlessly automatic. But if you use it only when needed (change class name, add to security_cleanup to your code, the garbage names are removed, then remove the method) no overhead is added when starting your site.
All user’s creation and modification are audited, on the show detail for each user you can check who created the user and when and who has last changed it.
You can check also a total login count (successful login), and the last failed logins (these are reset if a successful login then occurred).
If you want to alter the security views, or authentication methods since (1.0.1) you can do it in a simple way. The AppBuilder has a new optional initialization parameter where you pass your own custom SecurityManager If you want to add, for example, actions to the list of users you can do it in a simple way.
First i advise you to create security.py and add the following to it:
from flask import redirect
from flask_appbuilder.security.views import UserDBModelView
from flask_appbuilder.security.manager import SecurityManager
from flask.ext.appbuilder.actions import action
class MyUserDBView(UserDBModelView):
@action("muldelete", "Delete", "Delete all Really?", "fa-rocket", single=False)
def muldelete(self, items):
self.datamodel.delete_all(items)
self.update_redirect()
return redirect(self.get_redirect())
class MySecurityManager(SecurityManager):
userdbmodelview = MyUserDBView
Then on the __init__.py initialize AppBuilder with you own security class:
appbuilder = AppBuilder(app, db.session, security_manager_class=MySecurityManager)
F.A.B. uses a different user view for each authentication method
- UserDBModelView - for database auth method
- UserOIDModelView - for Open ID auth method
- UserLDAPModelView - for LDAP auth method
You can extend or create from scratch your own, and then tell F.A.B. to use them instead, by overriding their correspondent lower case properties on SecurityManager (just like on the given example).
Take a look and run the example on Employees example
Study the source code of SecurityManager
Some images:


Turkey captures two suspected IS members near southern border: TRT
ISTANBUL (Reuters) - Turkey captured two Russian nationals believed to be members of the Islamic State militant group near the Syrian border, after they illegally entered the country, state broadcaster TRT Haber said on Friday.
The two women captured in the southern border province of Kilis were wanted by Interpol, it said, adding they had been handed over to the provincial immigration authorities.
The women had three children with them, TRT said.
Their detention comes days after Islamic State leader Abu Bakr al-Baghdadi was killed in northwestern Syria near the Turkish border in a raid by U.S. special forces.


{% extends "layout.html" %} {% block header %}
Here are all the currently implemented features:
Analyse your playlists and tracks for their emotions via valence (and lyrics: ToDo)
Get all your top songs from different time spans and add them to a playlist. Optionally analyze the songs.
Create most happy and sad playlists from your saved songs


If you want to launch a simple website but dont want to jump through all the hoops of a hosting company or just looking for a cheaper alternative, GitHub Pages is your tool!
Create Your Repository
Navigate over to GitHub and create a new repository for your website. Here are directions if you need help. The files that make up your website will need to be stored within this new repository.
Now open up a terminal (command prompt on Windows) and clone a copy of the repo you just made onto your computer.
// Retrieve a copy of your GitHub repo.
git clone https://github.com/user/repository.git
// Move into that directory.
cd repository
Once you got your local copy, move into the project folder using the cd command.
Create an Orphan Branch
Next it is time to create a new orphan branch within your repo that will hold all of your website files. This new branch should be called "gh-pages"
git checkout --orphan gh-pages
Adding Your Website Files
Now that your repo has been properly setup it's time to add all of the HTML, CSS and Javascript files that make up your website. There are multiple ways that you can go about doing this but I am going to only speak of the GitHub client.
Download and Install the Github client for Mac or PC.
After installing the client navigate to your cloned repo from the first step in a file explorer. Drag and drop it into your GitHub folder that you specified from installation.
Push Changes to GitHub
Open your GitHub client. Click the plus sign in the top left and add your local repository to your client.
After that you will see your new repo listed on the left. Select the new one and add a small description of the changes and hit commit.
Once you have selected commit, navigate to the top right corner and select Sync. This will upload your files to your GitHub Page site.
That’s it! Your website should now be available at
http://username.github.io/repository/.
Using a Custom Domain
Now that you have your files hosted on a GitHub server what if you want to change your web address from the username.github.io address? Thats where this part comes in and this is how I run my website for free.
First you will need to create a new file in your local Github repo file from earlier called
CNAME
Inside this file you will have your domain name that you wish to use. It should look something like this:
paulgovoni.com
Next you will need to update your DNS records for your domain name that you plan on using. This can usually be done through the provided domain name control panel from the domain registrar.
With your DNS provider, create A records that reslove to the following IP addresses:
<IP_ADDRESS>
<IP_ADDRESS>
It may take some time for the DNS changes to take effect. Usually no longer then a few hours. Once the changes have been applied, you should be able to access your new website from your custom domain name.
You Are Live!
Keep in mind that GitHub pages does not meet the needs of everyone. You are limited to using static assets (HTML, CSS and JS) for your websites. But if you are ready to launch your first live website for the world to see this is a very good point to start! Dont forget that its free too!


Floccinaucinihilipilification
The act or habit of describing or regarding something as unimportant.
floccinaucinihilipilification
The act or habit of describing or regarding something as unimportant.


Classes
To Home
Students Page
Enrollment Page
Enter your classes here:
Class ID:
Class Name:
Seats:
Degree:
Current Classes:


Register
Login
Profile
Logout
x
Username
*
Password
*
Submit
signup
Forgot Password
x
Name
*
username
*
email
*
Gender
Male
Female
Contact No.
*
Facebook Profile Link
*
Password
*
Submit
x
Email
*
Username
*
Submit
x
Profile
Select a centre
BHUVANESHVAR
BENGALURU
Events
Workshops
Select a Workshop/Event
Robotics
Android
TEAM NAME
PERSON1
Submit
x
Check your mailbox
x
Details
Change Password
x
Old Password
*
New Password
*
Change


Subcreation Mythic+
Updating for Season 3
You can access legacy
Season 2
here while the site updates.
Subcreation Mythic+ provides statistical analysis of Mythic+ dungeons in World of Warcraft, using the
raider.io
API.
Source code
.


Open Angel Arena 4.5.3 Update
Item Changes
Ward Stack:
Bonus health regen and armor reduced from 2/10/20/30/40 to 2/10/16/23/30.
Changed max sentry ward stack from 2/4/6/8/10 to 4.
Reduced ward duration from 360 to 180 seconds.
Hero Changes
Death Prophet:
Exorcism cooldown reduced from 145 to 90 seconds.
Shadow Fiend:
Level 25 talent: -20 Presence of the Dark Lord armor reduction reduced to -16.
Previous
Home
Next


three.js
- Skeletal Animation Blending
Adjust blend weights to affect the animations that are currently playing.
Cross fades (and warping) blend between 2 animations and end with a single animation.