text:
Chapter 16Drawing on Canvas
Drawing is deception.
Browsers give us
several ways to display graphics. The simplest is to use regular
DOM elements, and use styles to position and color them. This can
get you quite far, as the previous chapter
showed. By adding partially transparent background images to the
nodes, we can make then look exactly the way we want to. It is even
possible to rotate or skew nodes by using the
transform style.
But we'd be using the DOM for something that it wasn't originally designed for. There are things, like drawing a line between arbitrary points, that are extremely awkward to do with regular HTML elements.
There are two alternatives. The first is DOM-based,
but utilizing SVG (Scalable Vector Graphics), rather than HTML
elements. You can think of SVG as a different dialect for describing
documents, one that focuses on shapes rather than text. An SVG
document can be embedded inside an HTML document, but also included
through an
 tag.
The second alternative is called a canvas. A canvas is a single DOM element that encapsulates a picture. It provides a programming interface for drawing shapes onto the space taken up by the node. The main difference between a canvas and an SVG picture is that in SVG, the original description of the shapes is preserved, so that they can be moved or resized at any time. Canvas, on the other hand, converts the shapes to pixels (colored dots on a raster) as soon as they are drawn, and does not remember what these pixels represent. The only way to move a shape on a canvas is to clear the canvas (or the area around the shape) and redraw it with the shape in its new position.
This book will not go into SVG in detail, but I will briefly try to explain how it works. At the end of the chapter, I'll come back to the trade-offs that must be considered when deciding which drawing mechanism is appropriate for a given application.
This is an HTML document with a simple SVG picture inside of it:

Normal HTML here.
 <svg xmlns="http://www.w3.org/2000/svg"> <circle r="50" cx="50" cy="50" fill="red"/> <rect x="120" y="5" width="90" height="90" stroke="blue" fill="none"/> </svg>
xmlns attribute changes an element (and its
children) to a different XML namespace. This namespace, identified
by a URL, specifies the dialect that we are currently speaking.
<circle> and
<rect> tags, which do not exist in HTML, do have
a meaning in SVG—they draw shapes, using the style and position
specified by their attributes.
These tags create DOM elements, just like HTML tags. For
example, this changes the
<circle> element to be colored cyan
var circle = document.querySelector("circle"); circle.setAttribute("fill", "cyan");
The canvas element
Canvas graphics can be drawn
onto a
<canvas> element. You can give such an element
width and
height attributes to determine its size, in pixels.
A new canvas is empty, meaning it is entirely transparent, and thus shows up simply as empty space in the document.
The canvas
tag is intended to support different styles of drawing. To get
access to an actual drawing interface, we first need to create a
context, which is an object whose methods provide the drawing
interface. There are currently two widely supported drawing styles,
"2d" for two-dimensional graphics, and
"webgl" for
three-dimensional graphics through the OpenGL interface.
This book won't discuss WebGL. We stick to two dimensions. But if you are interested in three-dimensional graphics, I do encourage you to look into WebGL. It provides a very direct interface to modern graphics hardware, and thus allows you to render even complicated scenes very efficiently—from JavaScript.
A context is created
through the
getContext method on the
<canvas> element.

Before canvas.
 <canvas width="120" height="60"></canvas>
After canvas.

After creating the context object, the example draws a red rectangle 100 pixels wide and 50 pixels high, with its top left corner at coordinates (10,10).
Just like in HTML (and SVG), the coordinate system that the canvas uses puts (0,0) at the top left corner, and the positive y axis goes down from there, so (10,10) is ten pixels below and to the right of at corner.
Filling and stroking
In the terminology used by the canvas interface (as well as by SVG), there are two things that can be done with a shape. It can be either filled, meaning its area is given a certain color (or pattern), or it can be stroked, which means a line is drawn along its edge.
fillRect method fills
a rectangle. It takes first the x and y coordinates of the
rectangle's top left corner, then its width, and then its height. A
similar method,
strokeRect, draws the outline of a rectangle.
Neither of these methods take any parameters beyond the dimensions of the rectangle. The way in which the filling or stroking happens is not determined by an argument to the method (as you might justly expect), but rather by properties of the drawing context object.
fillStyle changes the way shapes are
filled. It can be set to a string that specifies a color (any
color understood by CSS can also be used here).
strokeStyle property work similarly, but
determines the color used for a stroked line. The width of that line
is determined by the
lineWidth property, which may contain any
positive number.
<canvas></canvas>
When no
width or
attributes are specified, as in the previous example, a canvas element
gets a default width of 300 and height of 150 pixels.
A path is a sequence of lines. The 2d canvas interface's approach to describing such a path is rather peculiar. It is done entirely through side effects.
<canvas></canvas>
The example creates a path with a number of
horizontal line segments, and then strokes it using the
method. Each segment created with
lineTo starts at the path's
current position, which is the end of the last segment, unless
moveTo was called to go to a new position.
filling a path (using the
fill method), each shape is filled
separately. A path can contain multiple shapes—each
moveTo motion
starts a new one. If the path is not already closed (its start and
end are in different positions), a line is added from its end to its
start, and the shape enclosed by the resulting line is filled.
<canvas></canvas>
This draws a filled triangle. Note that only two of the triangle's sides are explicitly drawn. The third, from the bottom right corner back to the top, is implied, and won't be there when you stroke the path.
closePath method
explicitly closes a path by adding an actual line segment back to
its start. This segment is drawn when stroking the path.
A path may also contain curved lines. These are, unfortunately, a bit more involved to draw than straight lines.
quadraticCurveTo method draws a
curve to a given point. To determine the curvature of the line, it is
given a control point as well as a destination point. You can
imagine this control point as attracting the line, giving it its
curve. The line won't go through the control point. Rather, the
direction of the line at its start and end point will be such that it
aligns with the line from there to the control point. The following
picture illustrates this:
<canvas></canvas>
We draw a quadratic curve from the left to the right, with (60,10) as control point, and then draw two line segments, going through that control point and back to the start of the line. The result somewhat resembles a Star Trek insignia. You can see the effect of the control point: the lines leaving the lower corners start off in the direction of the control point, and then curve towards their target.
A similar kind of curve is drawn
bezierCurve. Instead of a single control point, this one
has two—one for each end of the line. Here is a similar sketch to
illustrates the behavior of such a curve:
<canvas></canvas>
The two control points specify the direction at both ends of the curve. The further they are away from their corresponding point, the more the curve will "bulge" in that direction.
Such curves can be hard to work with—it is not always clear how to find the control points that provide the shape you are looking for. Sometimes you can find a way to compute them, and sometimes you'll just have to find a suitable value by trial and error.
Easier to reason about are
arcs—fragments of a circle. The
arcTo method method
takes no less than five arguments. The first four aruments act
somewhat like the arguments to
quadraticCurveTo—the first pair
provide a sort of control point, and the second pair gives the
line's destination. The fifth argument provides the radius of the
arc. The method will conceptually create a corner—a line going to the
control point and then the destination point—and round its point so
that it forms part of a circle with the given radius. It then draws
the rounded part, as well as a line from the starting position to the
start of the rounded part.
<canvas></canvas>
arcTo method
will not draw the line from the end of the rounded part to the goal
position, though the word "to" in its name would suggest it does. You
can follow up with a call to
lineTo with the same goal coordinates
to add that part of the line.
To draw a circle, you could use four
calls to
arcTo (each turning 90 degrees). But the
arc method
provides a simpler way. It takes a pair of coordinates for the
arc's center, a radius, and then a start and end angle.
Those last two parameters make it
possible to draw only a part of circle. The angles are measured in
radians, not degrees. This means that a full circle has an
angle of 2π (
2 * Math.PI, about 6.28). The angle starts counting at
the point to the right of the circle's center, and goes clockwise from
there. You can use a start of zero and an end bigger than 2π (say, 7)
to draw a full circle.
<canvas></canvas>
The resulting picture
contains a line from the left of the full circle (first call to
arc) to the left of the quarter-circle (second call). Like other
path drawing methods, a line drawn with
arc is connected to the
previous path segment by default. You'd have to call
moveTo (or
start a new path) if you want to avoid this.
Drawing a pie chart
Imagine you've just taken a job at EconomiCorp Inc., and your first assignment is to draw a pie chart of their customer satisfaction survey results.
results variable contains an array of objects that represent the
survey responses:
var results = [ {name: "Satisfied", count: 1043, color: "lightblue"}, {name: "Neutral", count: 563, color: "lightgreen"}, {name: "Unsatisfied", count: 510, color: "pink"}, {name: "No comment", count: 175, color: "silver"} ];
To draw a pie chart, we draw a number of pie slices, made up of an arc, and a pair of lines to the center of that arc. We can compute the angle taken up by each arc by dividing a full circle (2π) by the total number of responses, and then multiplying that number (the angle per response) by the amount of people that picked a given choice.
<canvas width="200" height="200"></canvas>
But a chart that doesn't tell us what it means is not very helpful. We would like to have a way to draw text to the canvas.
A 2d canvas drawing context provides
the methods
fillText and
strokeText. The latter can be useful for
outlining letters, but usually
fillText is what you need. It will
fill the given text with the current
<canvas></canvas>
The size, style, and font of the text can be specified using the
font property. The example gives just a font size and family name.
You can add
italic or
bold to the start of the string to select a
The last two arguments to
fillText (and
strokeText) provide the position at which the font
is drawn. By default, they indicate the position of the start of the
text's alphabetic baseline (the line on which the letters "stand", not
counting hanging parts in letters like "j" or "p"). The horizontal
position can be changed by setting the
textAlign property to
"center", the vertical position by setting
textBaseline to
"middle", or
We will come back to our pie chart, and the problem of labeling the slices, in the exercises at the end of the chapter.
In computer graphics, a distinction is often made between vector graphics and bitmap graphics. The first is what we have been doing so far in this chapter—specifying a picture by giving a logical description of shapes. Bitmap graphics, on the other hand, don't specify actual shapes but rather work with pixel data (rasters of colored dots).
drawImage method allows us to draw pixel data onto
a canvas. This pixel data can originate from an
 element or
from another canvas (neither have to be visible in the actual
document). The example below creates a detached
 element and
loads an image file into it. But it can not immediately start drawing
from this picture, because the browser may not have fetched it yet. To
deal with this, we register a
"load" event handler, and do the
drawing after the image has loaded.
<canvas></canvas>
By default,
drawImage will draw
the image at its original size. You can give it two additional
arguments to determine the width and height with which it is drawn.
drawImage is given nine arguments, it can be used to draw
only a fragment of an image. The second to fifth argument indicate the
rectangle (x, y, width, and height) in the source image that should be
copied, and the sixth to ninth argument give the rectangle (on the
canvas) into which it should be copied.
This can be used to pack multiple sprites (image elements) into a single image file, and then only draw the part you need. For example, we have this picture containing a game character in multiple poses.
If we alternate which pose we draw, we can show an animation that looks like a walking character.
To animate
the picture on a canvas, the
clearRect method is useful. It
fillRect, but instead of coloring the rectangle, it makes
it transparent.
We know that each sprite, each sub-picture, is 24 pixels wide and 30 pixels high. The code below loads the image, and then sets up an interval (repeated timer) to draw the next frame.
<canvas></canvas>
cycle variable tracks
our position in the animation. Each frame, it is incremented
and then clipped back to the 0 to 7 range by using the remainder
operator. This variable is then used to compute the x coordinate that
the sprite for the current posture has in the picture.
But what if we want our character to walk to the left instead of to the right? We could add another set of sprites, of course. But we can also instruct the canvas to draw the picture the other way round.
Calling the
scale method will cause
anything drawn after it to be scaled. It takes two parameters, one to
set a horizontal scale and one to set a vertical scale.
<canvas></canvas>
Scaling will cause everything about the drawn image, including the line width, to be stretched out or squeezed together as specified. Scaling by a negative amount will flip the picture around. The flipping happens around point (0,0), which means that it will also flip the direction of the coordinate system. When a horizontal scaling of -1 is applied, a shape drawn at x position 100 will end up at what used to be position -100.
So to turn a picture around, we can not simply
cx.scale(-1, 1) before the call to
drawImage, since that would
move our picture outside of the canvas, where it won't be visible.
One way to fix this is by adjusting the coordinates given to
drawImage to compensate for this (by drawing it at x position -50
instead of 0). Another way, which doesn't require the code that does
the drawing to know about the scale change, is to adjust the axis
around which the scaling happens.
To be
able to do that, you should know that there are several other methods,
scale that influence the coordinate system for a canvas.
It can be rotated with the
rotate method, and moved with the
translate method. The interesting— and confusing—thing is that these
transformations stack, meaning that each one happens relative to the
previous transformations.
So if we translate (move) by 10 horizontal pixels twice, everything will be drawn 20 pixels to the right. If we first move the center of the coordinate system to (50,50) and then rotate by 20 degrees (0.1π in radians), that rotation will happen around point (50,50).
But if we first rotated by 20 degrees, and then translated by (50,50), the translation will happen in the rotated coordinate system, and thus produce a different orientation. The order in which transformations are applied matters.
To flip a picture around the vertical line at a given x position, we can do the following:
function flipHorizontally(context, around) { context.translate(around, 0); context.scale(-1, 1); context.translate(-around, 0); }
We first move the y axis to where we want our mirror to be, then apply the mirroring, and finally move the y axis back to its proper place in the mirrored universe. The picture below tries to explain why this works.
This shows the coordinate
systems before and after mirroring in the central line. If we draw a
triangle at a positive x position, it would, by default, be in the
place where triangle 1 is. A call to
flipHorizontally first does a
translation to the right, which gets us to triangle 2. It then scales,
flipping the triangle back to position 3. This is not where it should
be, if it were mirrored in the given line. The second
translate call
fixes this—it "cancels" the initial translation, and makes triangle 4
appear exactly where it should.
We can now draw a mirrored character at position (100,0) by flipping the world around the character's vertical center:
<canvas></canvas>
Storing and clearing transformations
Transformations stick around. Everything else we draw after drawing that mirrored character would also be mirrored. That might be a problem.
It is possible to save the current transformation, do some drawing and transforming, and then restore the old transformation. This is usually the proper thing to do for a function that needs to temporarily transform the coordinate system: first save whatever the code that called the function was using, then do its thing (on top of the existing transformation), and then revert to what it started with.
save and
restore methods
on the 2d canvas context perform this kind of transformation
management. They conceptually keep a stack of transformation
states. When you call
save, the current state is pushed onto the
stack, and when you call
restore, the state on top of the stack is
taken off, and used as the context's current transformation.
branch function in the example below
illustrates what you can do with a function that changes the
transformation and then calls another function (in this case itself),
which continues drawing with the given transformation.
This function draws a tree-like shape by first drawing a line, and then moving the coordinate system to the end of the line and calling itself twice, first rotated to the left, and then rotated to the right. Every call reduces the length of the branch drawn, and the recursion stops when the length drops below 8.
<canvas width="600" height="300"></canvas>
the calls to
save and
restore were not there, the second recursive
call to
branch would end up with the position and rotation created
by the first call—it would not be connected to the current branch, but
rather to the innermost, rightmost branch drawn by the first call. The
resulting shape might also be interesting, but it is definitely not a
Back to the game
We now know enough about canvas drawing to
start working on the canvas-based display system for the
game from the previous chapter. The new
display will no longer be showing just colored boxes. Instead, we'll
drawImage to draw pictures that represent the game's elements.
We will define an object
CanvasDisplay, supporting the same interface as
DOMDisplay from Chapter 15—namely the
drawFrame and
This object keeps a little more information that
DOMDisplay. Rather than using the scroll position of its DOM
element, it tracks its own viewport, which tells us what part of
the level we are currently looking at. It also tracks time, and
uses that to decide which animation frame to use. And finally,
it keeps a
flipPlayer property, so that even when the player is
standing still, it keeps facing the direction it last moved in.
function CanvasDisplay(parent, level) { this.canvas = document.createElement("canvas"); this.canvas.width = Math.min(600, level.width * scale); this.canvas.height = Math.min(450, level.height * scale); parent.appendChild(this.canvas); this.cx = this.canvas.getContext("2d"); this.level = level; this.animationTime = 0; this.flipPlayer = false; this.viewport = { left: 0, top: 0, width: this.canvas.width / scale, height: this.canvas.height / scale }; this.drawFrame(0); } CanvasDisplay.prototype.clear = function() { this.canvas.parentNode.removeChild(this.canvas); };
animationTime counter is the reason we
passed the step size to
drawFrame in
Chapter 15, even though
does not use it. Our new
drawFrame function uses it to track time,
so that it can switch between animation frames based on the
current time.
CanvasDisplay.prototype.drawFrame = function(step) { this.animationTime += step; this.updateViewport(); this.clearDisplay(); this.drawBackground(); this.drawActors(); };
Other than tracking time, the method updates the viewport for the current player position, fills the whole canvas with a background color, and draws the background and actors onto that. Note that this is different from the approach in Chapter 15, where we drew the background once and scrolled the wrapping DOM element to move it.
Because shapes on a canvas are just pixels, after we draw them, there is no way to move them (or remove them). The only way to update the canvas display is to clear it and redraw the scene.
updateViewport method is very similar to
scrollPlayerIntoView method. It checks whether the
player is too close to the edge of the screen, and moves the
viewport when this is the case.
CanvasDisplay.prototype.updateViewport = function() { var view = this.viewport, margin = view.width / 3; var player = this.level.player; var center = player.pos.plus(player.size.times(0.5)); if (center.x < view.left + margin) view.left = Math.max(center.x - margin, 0); else if (center.x > view.left + view.width - margin) view.left = Math.min(center.x + margin - view.width, this.level.width - view.width); if (center.y < view.top + margin) view.top = Math.max(center.y - margin, 0); else if (center.y > view.top + view.height - margin) view.top = Math.min(center.y + margin - view.height, this.level.height - view.height); };
The calls
Math.max and
Math.min are used to ensure that the viewport does
not end up showing space outside of the level.
Math.max(x, 0) has
the effect of ensuring the resulting number is not less than zero.
Math.min, similarly, ensures a value stays below a given bound.
When clearing the display, we'll use a slightly different color depending on whether the game is won (brighter) or lost (darker).
CanvasDisplay.prototype.clearDisplay = function() { if (this.level.status == "won") this.cx.fillStyle = "rgb(68, 191, 255)"; else if (this.level.status == "lost") this.cx.fillStyle = "rgb(44, 136, 214)"; else this.cx.fillStyle = "rgb(52, 166, 251)"; this.cx.fillRect(0, 0, this.canvas.width, this.canvas.height); };
To draw the
background, we run through the tiles that are visible in the current
viewport, using the same trick used in
obstacleAt in the
previous chapter.
var otherSprites = document.createElement("img"); otherSprites.src = "img/sprites.png"; CanvasDisplay.prototype.drawBackground = function() { var view = this.viewport; var xStart = Math.floor(view.left); var xEnd = Math.ceil(view.left + view.width); var yStart = Math.floor(view.top); var yEnd = Math.ceil(view.top + view.height); for (var y = yStart; y < yEnd; y++) { for (var x = xStart; x < xEnd; x++) { var tile = this.level.grid[y][x]; if (tile == null) continue; var screenX = (x - view.left) * scale; var screenY = (y - view.top) * scale; var tileX = tile == "lava" ? scale : 0; this.cx.drawImage(otherSprites, tileX, 0, scale, scale, screenX, screenY, scale, scale); } } };
Tiles that are not empty (null)
are drawn with
drawImage. The
otherSprites image contains the
pictures used for elements other than the player. It contains, from
left to right, the wall tile, the lava tile, and then the sprite for a
Background tiles are 20 by 20 pixels, since we will use
the same scale that we used in
DOMDisplay. Thus, the offset for lava
tiles is 20 (the value of the
scale variable), and the offset for
walls is zero.
We do not bother
waiting for the sprite image to load in this program. Calling
drawImage with an image that hasn't been loaded yet will simply do
nothing. Thus, we might fail to draw the game properly for the first
few frames, while the image is still loading, but that is not a
serious problem. Since we keep updating the screen, the correct scene
will appear as soon as the loading finishes.
The walking
character we used before will be used to represent the player. The
code that draws it needs to pick the right sprite and direction
based on the player's current motion. The first 8 sprites contain a
walking animation. When the player is moving along a floor, we cycle
through them based on the display's
animationTime property. This is
measured in seconds, and we want to switch frames twelve times per
second, so the time is multiplied by 12 first. When the player is
standing still, we draw the ninth sprite. During jumps (when the
vertical speed is not zero), we use the tenth, rightmost sprite.
Because the
sprites are slightly wider than the player object—24 instead of 16
pixels, to allow some space for feet and arms—the method has to adjust
the x coordinate and width by a given amount (
var playerSprites = document.createElement("img"); playerSprites.src = "img/player.png"; var playerXOverlap = 4; CanvasDisplay.prototype.drawPlayer = function(x, y, width, height) { var sprite = 8, player = this.level.player; width += playerXOverlap * 2; x -= playerXOverlap; if (player.speed.x != 0) this.flipPlayer = player.speed.x < 0; if (player.speed.y != 0) sprite = 9; else if (player.speed.x != 0) sprite = Math.floor(this.animationTime * 12) % 8; this.cx.save(); if (this.flipPlayer) flipHorizontally(this.cx, x + width / 2); this.cx.drawImage(playerSprites, sprite * width, 0, width, height, x, y, width, height); this.cx.restore(); };
The function above is called by
drawActors, which is responsible for
drawing the all the actors in the game.
CanvasDisplay.prototype.drawActors = function() { this.level.actors.forEach(function(actor) { var width = actor.size.x * scale; var height = actor.size.y * scale; var x = (actor.pos.x - this.viewport.left) * scale; var y = (actor.pos.y - this.viewport.top) * scale; if (actor.type == "player") { this.drawPlayer(x, y, width, height); } else { var tileX = (actor.type == "coin" ? 2 : 1) * scale; this.cx.drawImage(otherSprites, tileX, 0, width, height, x, y, width, height); } }, this); };
When drawing something that is not the player, we look at its
type to find the offset of the correct sprite. The lava tile is
found at offset 20, and the coin sprite at 40 (two times
We have to subtract the viewport's position when
computing the actor's position, since (0,0) on our canvas
corresponds to the top left of the viewport, not the top left of the
level. We could also have used
translate for this. Either way works.
The tiny document
below plugs the new display into

Choosing a graphics interface
Whenever you need to generate graphics in the browser, you can choose between plain HTML, SVG, and canvas. There is no single best approach that works in all situations. Each option has strengths and weaknesses.
Plain HTML has the advantage of being simple. It also integrates well with text. Both SVG and canvas allow you to draw text, but won't help with positioning that text, or wrapping it when it takes up more than one line. In an HTML-based picture, it is very easy to include blocks of text.
SVG can be used to produce crisp graphics that look good at any zoom level. It is more difficult to use than plain HTML, but also much more powerful.
Both SVG and HTML build up a data structure (the DOM) that represents the picture. This makes it possible to modify elements after they are drawn. If you need to repeatedly change a small part of a big picture, in response to what the user is doing or as part of an animation, doing it in canvas can be needlessly expensive. The DOM also allows us to register mouse event handlers on every element in the picture (even on shapes drawn with SVG). This can not be done with canvas.
But canvas' pixel-oriented approach can be an advantage when drawing a huge amount of tiny elements. The fact that it does not build up a data structure, but only repeatedly draws onto the same pixel surface, cause it to have a lower cost per shape.
There are also effects, such as rendering a scene one pixel at a time (for example using a ray tracer), or post-processing an image with JavaScript (blurring or distorting it) that can only be realistically handled by a pixel-based technique.
In some cases, it is worthwhile to combine several of these techniques. For example, drawing a graph with SVG or canvas, but showing textual information by positioning an HTML element on top of the picture.
For non-demanding applications, it really does not matter much which interface you choose. The second display we built for our game in this chapter could have been implemented using any of these three graphics technologies, since it does not need to draw text, handle mouse interaction, or work with an extraordinarily large amount of elements.
In this chapter, we discussed techniques for drawing graphics in the
browser, focusing on the
<canvas> element.
A canvas node represents an area in a document that our program may
draw on. This drawing is done through a drawing context object,
created with the
getContext method.
The 2d drawing interface allows us to fill and stroke various shapes.
The way shapes are filled is determined by the context's
property. The way lines are drawn is controlled by the
lineWidth properties.
Rectangles and pieces of text can be drawn with a single method call
fillRect and
strokeRect, or
fillText and
strokeText for
text). To create custom shapes, we must first build up a path.
beginPath starts a new path. A
number of other methods add lines and curves to the current path, for
lineTo can be used to add a straight line. When a path is
finished, it can be filled with the
fill method or stroked with the
stroke method.
Moving pixels from an image or another canvas onto our canvas is done
with the
drawImage method. By default, this method draws the whole
source image, but by giving it more parameters it can be made to copy
out a specific area. We used this for our game, by copying individual
postures of the game character out of an image that contained many
such postures.
To draw a shape in multiple orientations, transformations can be used.
A 2d drawing context has a current transformation that can be changed
with the
scale, and
rotate methods. These will affect
all subsequent drawing operations. A transformation state can be saved
with the
save method, and restored with the
restore method.
When drawing an animation on a canvas, the
clearRect method can be
used to clear a part of the canvas, before redrawing it.
Write a program that draws the following shapes on a canvas:
A parallelogram (a rectangle that is wider on one side).
A red diamond (a rectangle rotated 45 degrees or ¼π radians).
A zigzagging line.
A spiral made up of 100 straight line segments.
A yellow star.
When drawing the latter two, you may want to refer back to the
explanation of
Math.cos and
Math.sin in
Chapter 13, which describes how to get
coordinates on a circle using these functions.
I recommend creating a function for each shape, and passing the position, and optionally other things, such as the size or the number of points, as parameters. The alternative, which is to hard-code numbers all over your code, tends to make the code needlessly hard to read and modify.
<canvas width="600" height="200"></canvas>
The parallelogram (1) is easy to draw using a path. Pick suitable center coordinates, and add each of the four corners around that.
The diamond (2) can
be drawn the easy way, with a path, or the interesting way, with a
rotate transformation. To use rotation, you will have to apply a
trick similar to what we did in the
flipHorizontally function.
Because you want to rotate around the center of your rectangle, and
not around the point (0,0), you must first
translate to there, then
rotate, and then translate back.
For the zigzag (3) it
becomes unpractical to write a new call to
lineTo for each line
segment. Instead you should use a loop. You can either have each
iteration draw two line segments (right and then left again), or
one, in which case you must use the evenness (
% 2) of the loop index
to determine whether to go left or right.
You'll also need a loop for the spiral (4). If you draw a series of points, with each point moving further along a circle around the spiral's center, you get a circle. If, during the loop, you vary the radius of the circle on which you are putting the current point, and go around more than once, the result is a spiral.
The star (5) depicted is built out of
quadraticCurveTo lines. You could also draw one with straight lines.
Divide a circle into 8 (or however many points you want your star to
have) pieces. Draw lines between these points, making them curve
towards the center of the star (with
quadraticCurveTo, you can use
the center as control point).
The pie chart
Earlier in the chapter, we saw an example program that drew a pie chart. Modify this program so that the name of each category is shown next to the slice that represents it. Try to find a pleasing-looking way to automatically position this text, which would work for other data sets as well. You may assume that categories are no smaller than 5% (i.e. there won't be a bunch of tiny ones next to each other).
You might again need
Math.sin and
Math.cos, as described in the
previous exercise.
<canvas width="600" height="300"></canvas>
You will need to call
and set the context's
textAlign and
textBaseline properties in
such a way that the text ends up where you want it.
A sensible way to position the labels would be to put the text on the line going from the center of the pie through the middle of the slice. You don't want to put the text directly against the side of the pie, but rather move it outside of it a given amount of pixels.
The angle of this line is
currentAngle + 0.5 * sliceAngle. The
code below finds a position on this line, 120 pixels from the center:
var middleAngle = currentAngle + 0.5 * sliceAngle; var textX = Math.cos(middleAngle) * 120 + centerX; var textY = Math.sin(middleAngle) * 120 + centerY;
textBaseline, the value
"middle" is probably appropriate when
using this approach. What to use for
textAlign depends on the side
of the circle we are on—on the left, it should be
"right", and on
the right, it should be
"left", so that the text is positioned away
from the pie.
If you are not sure how to find out which side
of the circle a given angle is on, look back to the explanation of
Math.cos in the previous exercise. The cosine of an angle tells us
which x coordinate it corresponds to, which in turn tells us exactly
which side of the circle we are on.
A bouncing ball
requestAnimationFrame technique that we saw in
Chapter 13 and
Chapter 15 to draw a box with a
bouncing ball inside of it. The ball moves at a constant
speed, and bounces off the box's sides when it hits them.
<canvas width="400" height="400"></canvas>
A box is
easy to draw with
strokeRect. Define a variable that holds its size
(or two variables, if your box's width and height differ). To create a
round ball, start a path, call
arc(x, y, radius, 0, 7)—an arc
going from zero to more than a whole circle—and fill it.
To model the ball's position
and speed, you can use the
Vector type from
Chapter 15(which is available on this
page). Give it a starting speed, preferably one that is not purely
vertical or horizontal, and every frame, multiply that speed with
the amount of time that elapsed. When the ball gets too close to a
vertical wall, invert the x component in its speed. Likewise, invert
the y component when it hits a horizontal wall.
After finding the ball's new
position and speed, use
clearRect to delete the scene, and redraw it
using the new position.
Precomputed mirroring
One unfortunate thing about transformations is that they slow down drawing of bitmaps. For vector graphics, the effect is less serious, since there only a few points (for example the center of a circle) need to be transformed, after which drawing can happen as normal. For a bitmap image, the position of each pixel has to be transformed, and though it is possible that browsers will get more clever about this in the future, this currently causes a measurable increase in the time it takes to draw a bitmap.
In a game like ours, where we are only drawing a single transformed sprite, this is a non-issue. But imagine that we need to draw hundreds of characters, or thousands of rotating particles from an explosion.
Think of a way to allow us to draw an inverted character, without
loading additional image files, and without having to make transformed
drawImage calls every frame.
The key to the solution
is the fact that we can use a canvas element as a source image
when using
drawImage. It is possible to create an extra
element, without adding it to the document, and draw our inverted
sprites to it, once. When drawing an actual frame, we just copy the
already inverted sprites to the main canvas.
Some care would be required because images do not load
instantly. We only do the inverted drawing once, and if we do it
before the image loads, it won't draw anything. A
"load" handler on
the image can be used to draw the inverted images to the extra canvas.
This canvas can be used as a drawing source immediately (it'll simply
be blank until we draw the character onto it).


text:
Looks like the jazz train is going to make a stop in Highland.
Manhattan Transfer is set to bring a night of music to San Manuel Indian Bingo and Casino come Thursday, April 24 and the quartet is bringing saxophonist David Sanborn along for the ride.
The group has released more than 28 albums and took home a number of Grammy Awards for Best Vocal Arrangement, Best Jazz Performance, Duo or Group and more. Manhattan Transfer had a big hit in 1981 with "The Boy from New York City."
David Sanborn has worked with everyone from Burt Bacharach to Eric Clapton and David Bowie. He's also an accomplished composer, doing the music for films like "Lethal Weapon" and "Psycho III." He was also in the Bill Murray Christmas movie "Scrooged."
Tickets for the show are on sale now for $35-$45.
For more information, check out San Manuel's website.

subset: commoncrawl


text: ESPN Feed: vanderbilt commodores http://assets.espn.go.com/i/tvlistings/tv_espn_original.gif ESPN en-us 10 ESPN Inc. http://espn.go.com/ Copyright 2010 ESPN Inc. GAINESVILLE, Fla. -- Ron Zook called it "noise in the system" when negativity swirled around his third and final season at Florida. But Zook never los...]]> November 09, 2013 16:10:15 PST GAINESVILLE, Fla. -- It's been more than a month since the Florida Gators played inside Ben Hill Griffin Stadium, and it hasn't been a good month. The...]]> November 09, 2013 07:45:15 PST A little lunchtime reading from around the SEC: Alabama offensive coordinator Doug Nussmeier isn't saying much about the Crimson Tide's quarterbac...]]> August 05, 2013 11:31:34 PDT GAINESVILLE, Fla. -- Defensive end Trent Harris (Winter Park, Fla./Winter Park), a new ESPN 300 member, has narrowed his list of schools to six. Th...]]> June 19, 2013 06:00:22 PDT It's Rankings Week at GatorNation. Every day we'll rank some aspect of the Florida football program heading into the 2013 season. Today we're ranking ...]]> May 14, 2013 05:30:15 PDT We're taking a look at key storylines for all seven teams in the SEC Eastern Division. Chris will take a look at the main issues in the Western Div...]]> February 25, 2013 10:39:01 PST Editor's note: Each day between now and Florida's Allstate Sugar Bowl date with Louisville, GatorNation will review the season for a key Gators player...]]> January 01, 2013 05:00:23 PST Class of 2015 prospect George Campbell (Tarpon Springs, Fla./East Lake) has plans to travel to Gainesville this weekend for the SEC East clash between...]]> October 18, 2012 16:22:34 PDT GAINESVILLE, Fla. -- After back-to-back brutal Octobers, the Florida Gators will get a break in 2013. When the SEC office released the league sched...]]> October 18, 2012 14:53:55 PDT GAINESVILLE, Fla. -- Florida defensive coordinator Dan Quinn doesn't want his defense doing what Vanderbilt's defense did last week: concentrate so mu...]]> October 17, 2012 13:30:34 PDT GAINESVILLE, Fla. -- Here's a recap of how Florida's players on national award watch lists are faring this season: LB Jon Bostic Watch lists: C...]]> October 16, 2012 05:00:47 PDT GAINESVILLE, Fla. -- Which Florida players are making the biggest contributions on the field? GatorNation will tell you every week. It's not just a...]]> October 15, 2012 05:00:22 PDT GAINESVILLE, Fla. -- No. 3 Florida, which sits atop the Southeastern Conference's Eastern Division, plays host to No. 9 South Carolina on Saturday at ...]]> October 15, 2012 05:00:45 PDT NASHVILLE, Tenn. -- Florida hit double digits in penalties for the second time this season, committing 10 penalties for 80 yards in its 31-17 victory ...]]> October 14, 2012 11:50:39 PDT NASHVILLE, Tenn. -- ESPN's "College GameDay" is headed to Gainesville for Saturday's key Southeastern Conference Eastern Division matchup between Flo...]]> October 14, 2012 09:02:59 PDT


text:
401 Results Found for Fannie Clark
Fun Facts and Statistics
People named Fannie Clark
Statistics out of all 400 people named Fannie Clark
Income Average
Income Average
Average Age
Average Age
Phone, Email, & Address
White Pages & Public Records for Fannie Clark
News and Updates
Public Mentions for Fannie Clark
Interesting Facts about Fannie Clark
Meaning of Last Name
"Clark" family name, ancestry, and history
Meaning: Clerk, scribe, secretary
Origins: England
Clark is an Anglo Saxon surname derived from the Latin clericus meaning "scribe", "secretary" or a scholar within a religious order, referring to someone who was educated. Clark evolved from "clerk". First records of the name are found in 12th century England. The name has many variants. The name...
Tag Cloud
Fannie Clark
- dallas tx
- there will be blood
- md
- fannie mae
- clark howard
- tennessee mass choir
- memphis
- artist
- dr.
Potential Email Matches
Popular Email Services and Username Matches


text:
ROCHESTER, N.Y. — Americans named President Obama as their No. 1 hero, followed by Jesus Christ and Martin Luther King, in a new Harris poll.Perhaps I shouldn't be surprised with the results. Obama has been sold as a secular God. In November, NewsBuster Brent Baker documented the opening of a Time Magazine article that began:
Others in the top 10, in descending order, were Ronald Reagan, George W. Bush, Abraham Lincoln, John McCain, John F. Kennedy, Chesley Sullenberger and Mother Teresa.
People were asked whom they admired enough to call their heroes. Those surveyed were not shown a list of people to choose from. The Harris Poll was conducted online among a sample of 2,634 U.S. adults by Harris Interactive.
This question was first asked in a Harris Poll in 2001. In that survey Jesus Christ was the hero mentioned most often, followed by Martin Luther King, Colin Powell, John F. Kennedy and Mother Teresa.
"Some princes are born in palaces. Some are born in mangers. But a few are born in the imagination, out of scraps of history and hope..."Last month, an actress compared Obama to Jesus. According to The Hill:
Movie star Susan Sarandon compared President Obama to Jesus. Broadway and film actor Alan Cumming thought of him more like Mahatma Gandhi.Last September on CNN Late Edition With Wolf Blitzer, political contributor Donna Brazile spoke of a link between Jesus and her candidate for president:
"He is a community organizer like Jesus was," Sarandon said Tuesday night on the bright blue carpet leading into the Creative Coalition's 2009 Ball at the Harman Center for the Arts in Chinatown. "And now, we're a community and he can organize us."
BLITZER: Let me bring Donna in on the whole issue of being a community organizer. Now we know a lot of those community organizers are in the big urban areas and there are some suggesting that when they -- when the Republicans, whether Giuliani or Sarah Palin went after Obama for being a community organizer there was a racial overtone there. Do you believe that?Days later, CNN reported Democratic Rep. Steve Cohen of Tennessee said on the House floor: "Barack Obama was a community organizer like Jesus."
BRAZILE: First of all, I don't think they understand the role of a community organizer, often to help people who are in distress, they've lost their jobs, they've lost their homes, they've lost their health care. And for many of us, it's a time honored tradition to give back, especially those who have been rewarded with so much.
The Bible says to whom much is given much is required and it comes out of that tradition. So it was insulting to see both, you know, the governor as well as Mayor Giuliani criticize people. There's some on the Internet now that Jesus was a community organizer, Pontius Pilate was a governor. And perhaps they should understand the role of a community organizer, do help people in distress.


text:
Get Breaking News First
WASHINGTON — Hillary Clinton is praising Russian punk band Pussy Riot as "strong and brave young women" who "refuse to let their voices be silenced."
The former secretary of state posted a picture to her more than 1 million Twitter followers of her posing with Nadezhda Tolokonnikova and Maria Alekhina of the group.
Clinton and the band met while attending the Women in the World Summit in New York on Friday.
Clinton's tweet read: "Great to meet the strong & brave young women from #PussyRiot, who refuse to let their voices be silenced in #Russia."
Members of Pussy Riot have been arrested on several occasions for protesting against oppressive rule by the Russian government and criticizing President Vladimir Putin, including during the Winter Olympics in Sochi.
Great to meet the strong & brave young women from #PussyRiot, who refuse to let their voices be silenced in #Russia. http://t.co/7JVkZ9TYx3—
Hillary Clinton (@HillaryClinton) April 04, 2014
(© Copyright 2014 The Associated Press. All Rights Reserved. This material may not be published, broadcast, rewritten or redistributed.)


text:
"Ip dip sky blue! Who's 'it'? It's you!" Where would you position yourself so that you are 'it' if there are two players? Three players ...?
Investigate this balance which is marked in halves. If you had a weight on the left-hand 7, where could you hang two weights on the right to make it balance?
Can you continue this pattern of triangles and begin to predict how many sticks are used for each new "layer"?


text:
New day. New Daily Deals. Get them before they are gone!
New Customer ? Start Here.
Can't find what you're looking for? Shop all ink and toner cartridges by brand
New day. New Daily Deals. Get them before they are gone!
Item: COC25890002 Model: 25890002
Coleman® 100' SJTW extension cord in yellow color includes connector, thick flexible vinyl jacket for durability, three conductor. 125 V Standard cord has lighted end to show when power is on.
This Web site is intended for use by US residents only. See International Sites. See our delivery policy for full details. Copyright 1998-2014, Staples, Inc., All Rights Reserved.


text:
Phyllis was born in Killiney in 1910. Her father Ernest Robinson was the youngest son of a Dublin coal merchant. Ernest and his two brothers all went separately to South Africa after their father's firm went bankrupt in the 1890s, and Ernest was the only one to return home. He was a soldier in the Boer War and became a Captain in the First World War. After leaving the army he studied law and became a barrister in his forties, with middling success. Phyllis, his eldest child, spent much of her early childhood with her mother's family, the Waterhouses. Her mother, known as Dolly to all her family, was noted for her unflappable tact and good sense. Dolly's mother-in-law had let her know that Ernest was to be spoiled thoroughly, and she duly did that.
From the earliest age Phyllis was mad about horses. About the age of nine or ten she got in the habit of leaving the house early in the morning by climbing down a tree from an upstairs window, and helping the local milkman make his rounds. While he put the milk on his float, she would ride the horse around his field. He allowed her to drive the milk float on its round, and she would always remember with horror one occasion when the horse got going too fast and couldn't slow down on the steep Killiney hill; it was out of control, but either by luck or skill, or both, no harm was done. When the round was over, Phyllis would return home and look out for a sign from her sister, a towel in the window, to show that her father had left the bathroom and she could climb back up the tree and in through the window.
One day one of her Waterhouse uncles met the young Phyllis on the road with a herd of cows. She was entrusted with the herd by a local farmer, to bring them from one field to another. Rather than drive the cows, the method was to take the bull by the ring in its nose, holding it with a hook on the end of a pole, lead it along, and all the cows would follow. Her uncle was horrified and ordered her to let go of that dangerous beast at once. The ten-year-old refused to do such a ridiculous thing, and her uncle stormed off to report her to her parents, who saw her point of view and stood up for her.
Phyllis was sent to the French School in Bray, where (she would say) she got the worst education imaginable. She always loved reading but regretted that her expensive education had given her no taste in literature. Her parents were worse off than their owning-class upbringing, but even when money was tight, the family always kept a living-in servant. Phyllis and the other children were forbidden to play either with their Catholic neighbours or with Protestant ones of the wrong class. In the 1920s the family did become friendly with one local Catholic family, the Burkes, through their sons' meeting in the Boy Scouts. One of the Burkes, who became a nun, remained a lifelong friend and constant correspondent of Phyllis and her sister.
At the age of eighteen or so Phyllis answered an ad in a newspaper and took a poultry apprenticeship with Mrs Hamilton in Killeshandra. She loved the work and got on well with everyone there. She would answer back firmly when accused of not having done some task, "That is because you told me to stop and do something else", which Mrs Hamilton would have to confess was true. The Hamiltons' son Guy was expected to be called 'Master Guy' by the apprentices, but Phyllis reasoned that in that case he should call her 'Miss Robinson', so he relented and they became on first-name terms. One one occasion at the Hamiltons' an older man, perhaps the father, asked Phyllis "Are you a Catholic?" to which she replied, remembering her Nicene Creed, "Yes, but not a Roman Catholic". Again, her logic was accepted.
While in Cavan she became friendly with Jack Faris from Cornafean. He had been to Portora School with Sam Beckett, but didn't remember much about him since Beckett was three years his junior. After her apprenticeship was complete she returned to Dublin; by this time the family had moved from Killiney to Monkstown. She kept poultry at home for several years, selling eggs locally, despite her father immediately taking down the 'Eggs for sale' sign she put on the gate; it wouldn't do to have such a thing seen at the home of a barrister. Phyllis became engaged to Jack and in June 1935 they were married in Monkstown Parish Church; Phyllis was twenty-four, Jack in his early thirties. They lived first in Dundalk, where Jack was working; later he had the job of inspecting the butchers' shops, to enforce the wartime limits on meat production. A butcher would claim he had only one carcass on the premises, and Jack would sometimes have to remark that it was a queer beast that had two left sides.
Phyllis had a close bond with her mother all her life, and a fairly stormy relationship with her father. He must have seemed almost a stranger returning from the war when Phyllis was eight. She had three younger brothers and a sister. Her eldest brother became a successful Dublin businessman and her sister married and had a family, but both her younger brothers died in their early twenties, flying in the RAF. One came down in fog over the sea shortly before the Second World War, returning from a mission to France. The other, the youngest of the family, died in action near the end of the war, in 1944. Once during the war, while he was was stationed in Liverpool, a Spitfire appeared over their Dublin house, diving and wheeling round. His father was perturbed but his mother said, "Oh, that's just Kenneth up to his naughtiness". She wrote to Kenneth in Liverpool, conscious of the censorship his letters would undergo, to say, "We had a visit from Basil [his middle name] the other day. He really is a very naughty boy."
When Jack's uncle died leaving him the farm at Corr they moved there, and their son Ronald was born in 1941. Sadly the child died after a week, and they never had another. Phyllis went on receiving advertisements from various firms: "Now your child is two, you will need this". Her instinct for conservation saw her keep even these painful letters to the end of her life.
Jack's mother was feared by all the Faris family, but Phyllis got on well with her. Phyllis had the leg of her from the start, as she put it. Rather than ask her mother-in-law's advice she would say, for instance, "We have decided to decorate this room with green dots and pink stripes." The mother-in-law was free to give her opinion, which Phyllis could consider and reply, "We think green and pink would be good". She knew that if advice is asked and then not followed it can breed resentment.
Shortly after moving in to Corr House Phyllis was visited by a woman who invited her to join a women's Orange society. Phyllis felt outraged; she sent her away without ever finding out who she was. Like all her family, even her British Army father, she welcomed the new Irish State, and in turn the Republic; she put her energy into developing it, by helping to empower Irish women. She was deeply involved in the Irish Countrywomen's Association, particularly encouraging women to learn to speak in public.
She could be spectacularly infuriated, for instance by a letter she received in her nineties asking her to contribute material for a book about 'the West Brit'. That is a category she never subscribed to.


text:
FOR ALL THE CHARACTER BIOS… [Read more...]
FOR ALL THE CHARACTER BIOS… [Read more...]
- A 'signs of life' detector.
- The agenda you revised 20 minutes before class.
- The 'new and improved' college policies and procedures.
- An 'ice-breaker' joke. "A professor walks into a bar…"
- The I.T. department phone number on speed dial.
- An 'urban dictionary' to translate student slang.
- Your best mum mum mum mah p-p-p-poker face, p-p-poker face.
- A 'Chrome Book', 'iPad', 'MacBook', 'PC', 'Smartphone', 'E-reader', 'PDA'…Coffee.
- The answers to the questions that you will definitely be asked: "Where's the washrooms?", "Is there an exam in this course?", and "When's the break?".
- A key to get into the classroom.
- 'Fat Bottomed Girls' by Queen
- Anything by Justin Bieber!
- 'My heart will go on' by Celine Dion
- 'I'll make love to you' by Boyz II Men
- 'Baby got back (I like big butts)' by Sir Mix-a-Lot
- 'Hot for teacher' by Van Halen
- 'Like a Virgin' by Madonna
- 'Me So Horny' by 2 Live Crew
- 'I can't get no satisfaction' by the Rolling Stones
- 'Mrs. Brown you have a lovely daughter' by Herman's Hermits.
- 'Tonight I'm f#@!g you' by Enrique Iglesias
- 'Don't stand so close to me' by The Police
It's that time again, so here are a few tips to make this 'glorious' event even more glorious…er.
(A+) Outstanding . You actually did as well, or even better than I would have when I was in college…no, really.
(A) Outstanding, but you should have turned the last page on the final exam and realized there was one more page of questions to answer.
(A-) Outstanding. Hopefully the party you went to the night before the final exam was worth not getting an 'A'.
(B+) Consistently thorough. Therapy may be needed to find out why you're afraid of achieving an 'A' grade.
(B) Consistently thorough. I see, you care about getting an 'A' in the course…but I guess not that much.
(B-) Consistently thorough. Coulda…Woulda…Shoulda?
(C+) Satisfactory. The only reason you have the '+' added is because you attended all of your classes.
(C ) Satisfactory. You're putting in just enough effort to coast along. I hope you're inheriting a lot of money in the future.
(C-) Satisfactory. You're having lots of fun at college aren't you?
(D+) Minimal. Congratulations, you're a leader among minimalists.
(D) Minimal. Ok, so keep doing what you were doing all through high school, which apparently wasn't much, and we'll see how that works out for you next semester.
(D-) Minimal. You're only passing because I never want to have you in my class ever again.
(F) Fail. Oh, I get it…you don't give a sh*t because your Mom and Dad are paying your tuition!
-"So, what can I bring to the grad party?!"
-"I'm on vacation at the cottage all summer, but feel free to call anytime if you need career advice."
-"Sure, here's my cell number…"
-"Even if you don't get a job in the industry, I'm pretty sure all the courses you took will be useful somewhere."
-"It was nice to meet your Mom/Dad at the grad ceremony…is he/she single?"
-"We're changing all the textbooks, so unfortunately you won't be able to sell them to next year's students."
-"Now that you've graduated, how about a dinner and movie sometime?"
-"Thanks for your comments on how to improve the courses; we'll put them on file."
-"You're the last graduating group from the program…unfortunately it's being 'axed' due to low demand in the marketplace."
-"We're desperately looking for instructors to teach in the program…do you want to teach a course?"
-"Try to be positive…marks aren't everything."
-"Whatever you do, don't mention my name during your interviews and you should be fine."
- You were once the 'bad' (cool), 'hip' professor; now you're just the professor with the bad hip.
- You don't give a sh*t anymore when you hear a student call you "Sir" or "Maam".
- You're 'maxing out' all of your annual physiotherapy and massage therapy benefits.
- You're mortified when you hear a student listening to a new song that's using a re-mix of your favorite classic rock song.
- You know the exact date when you'll be eligible to retire with a full pension.
- Those little kids that used to play with your little kids are now sitting in your class.
- The highlight of your day is reading the newspaper during your office hours.
- You have to allow for an extra 10 minutes to get to your classes on time because of your slower walking pace.
- You have finally reached an 'expert' level status in your field…just before your retirement.
- You hate those afternoon classes because they conflict with your naptime.
- You have to cancel class because you forgot your reading glasses.
- You're spending more time complaining in the union office than complaining in the classroom.
1. You have recurring nightmares of a sinister-looking 'Bugs Bunny' laughing at you while he dangles a 'golden carrot' that is never quite within reach. You always wake up in a cold sweat after he yells at you, "Ehh…What's up Prof!"
2. You have to try to make the students like you, unlike the full-time faculty.
3. You are given that sh*tty office chair that a full-time faculty didn't want anymore due to a missing bolt.
4. Full-time faculty get first dibs on all the good textbooks.
5. If you are home and sick with 'the runs', you still have to teach class or you don't get paid.
6. You don't get to stand on the picket line and wave at the cars passing by.
7. You get nasty glares from the full-time faculty if you take two pieces of pizza at the department meeting.
8. You're constantly reminded of your non-tenured status every time you pick up your mail and see your hand-written name plate that was cut out from a piece of paper.
9. You'll never get that 'golden tan' because you are teaching all summer.
10. You don't receive the union newsletter, resulting in a loss of hours of reading enjoyment.
Welcome to my blog!
Knowledge is wasted unless you share it with others, so after 20 years of teaching in a college environment, I've decided to create this blog.
When you need to take a break from marking and prepping and want a quick laugh, get some teaching tips, or just find higher ed resources, you've come to the right place.
Also, I'd really appreciate that you 'spread' the word to your colleagues to visit this site! As you can see from the flag counter, many already have, so thanks to all of you!
Phil Jones
[Read More …]
Copyright © 2014 ·Prose Theme on Genesis Framework · WordPress · Log in


text:
Science News
Tire makers race to turn dandelions into rubber
MUENSTER Germany - Dutch biologist Ingrid van der Meer often meets with disbelief when she talks about her work on dandelions and how it could secure the future of road transport.
Spacewalking cosmonauts launch satellite, set up studies
CAPE CANAVERAL Fla. - A pair of Russian cosmonauts began their work week on Monday floating outside the International Space Station to toss out a small satellite for a university in Peru, install science experiments and tackle some housekeeping chores.
Specks of star dust likely first from beyond solar system
CAPE CANAVERAL Fla. - A NASA spacecraft dispatched 15 years ago to collect samples from a comet also snared what scientists suspect are the first dust specks from interstellar space.
'Mission Blue' film charts scientist's quest to save oceans
NEW YORK - From the Galapagos Islands to Australia's Coral Sea and a marine park off the coast of Mexico, the documentary "Mission Blue" navigates the journey of renowned oceanographer Sylvia Earle as she travels the globe to save the planet's threatened seas.
Rise of the machines? Tiny robot horde swarms to form shapes
WASHINGTON - They look vaguely like miniature hockey pucks skittering along on three pin-like metal legs, but a swarm of small robots called Kilobots at a laboratory at Harvard University is making a little bit of history for automatons everywhere.
Experimental chikungunya vaccine shows promise in human trial
WASHINGTON - An experimental vaccine being developed by U.S. government scientists to prevent the painful mosquito-borne viral disease chikungunya has shown promise in its first human trials but remains years away from approval for widespread use.
Japan sends Hello Kitty into space
TOKYO - Hello Kitty, Japan's ambassador of cute, is on a government-funded mission to space.
Who's your mummy? Egyptian mummification older than was thought
WASHINGTON - It has long been known that the practice of mummification of the dead in ancient Egypt - fundamental to that civilization's belief in eternal life - was old, but only now are researchers unwrapping the mystery of just how long ago it began.
Ancient flying reptile's head crest looked like a yacht's sail
WASHINGTON - A flying reptile whose head was topped with a big bony crest shaped like the sail of a yacht swooped through the skies over Brazil roughly 90 million years ago.
Sweden considers building nuclear reactor for research
STOCKHOLM - The Swedish government is looking at building a nuclear reactor purely for research, although a decision will not be taken until after a general election in September, Swedish daily Dagens Industri reported.
AstraZeneca and Mitsubishi Tanabe link on diabetes research
LONDON - AstraZeneca and Mitsubishi Tanabe Pharma said on Wednesday they said signed a three-year research collaboration into diabetic nephropathy, or kidney failure due to diabetes.


text:
'My son is 18 months old and'
Connahs_mommy - Cradley Heath
'Kids loves cars! Is great for toddler and easy to play - just press the back of the truck and it will...'
Toy Expert - Pe
'My 6 week old loved this swing, she has fell asleep in it many times while gently swinging which helps me...'
Busy mum! - Manchester
'Nicely coloured fresh looking compare to the others in the market - best of all keep my baby entertained...'
Mummy of two - Peterborough
'Item has plenty of sounds that toddlers love to hear! Sorry parents! ;-)There are enough wee features to...'
LiseyLisa - N.Ireland
'Superb tool set'
RachCorrin - Chester
'I have bought this to my grandson. A simple well made toy that will occupy a child for many an hour. A...'
C.Lee - London
'these lightweight plastic chairs are colourful lightweight and perfectly sized for litte ones'
kiddicare staff expert - Peterborough, Cambs
'great product!'
rachel - middlesex
'I bought this microwave for my 3 year old daughter. I was pleasantly surprised how well it is designed -...'
DilK - London
'Bought this for our grandsons Xmas so not played with yet ,sure he will love it as an addition to his play...'
Granny mo - Scotland
'Good value for money. It is what it says on description perfect gift.'
Mom - Yorkshire
'Great idea for little ones who like to copy the grown ups.'
niknak - Southampton
'This is a great addition to the play kitchen. The kids love it and for the price I paid great value. I...'
Childminder mags - Scotland
'Lovely colour and very cute Giraffe character! Shake it and hear the bell, your baby will keep smiling!'
Toy Expert - Peterborough
'I bought one of des irons for my son an it was great he loves it still won't stop playing with it den I...'
Ja - Scotland
'This is a lovely toy to look at and as it's based on the hungry caterpillar it has all the patterns in the...'
ReubeNator - Bucks
'the table is easy to assemble. It's sturdy, comes with great accessories to play with. the only negative...'
topo4 - london
'This lightweight plane allows your child to hold it and play independently.'
Bbanu - Blackburn
'Firstly, these buzzing brains roleplay toy'
Goody - West Yorkshire
'love this its cute and my grandaughter loves it'
foxylady - berkshire
'produce is robust - well made - the lad loves it'
tom - ub9
'This fun, brightly coloured Playhouse is a unique style, easy to assemble Playhouse constructed from...'
Kiddicare Staff Expert - Peterborough
'A really good product, very suitable for our early born grand-daughter. We bought it to use as either a...'
Nana Sue - Wrexham, North Wales
'Purchased this after my 8mth old played with it at a friends. The raised back means she can push the...'
p - notts
'I wanted a first car that I could introduce to my 7 month son. I love this because it is easy to use and...'
Sammy - Essex


text:
The Venetian Resort Hotel & Casino is a large hotel, offering plenty of rooms. Your stay in Las Vegas will be indulgent when you book a room in this 5-star accommodation. Staying in this location provides simple access to popular attractions including Las Vegas Strip and Bellagio Fountains. Adventuredome is a short distance away from here.
The Venetian Resort Hotel & Casino has a restaurant, a bar/lounge and a casino. An outdoor swimming pool and a pool bar, ever popular, are both provided for your enjoyment here. One segment of the shopping opportunities can be found on the premises: in a gift shop. A few of the many services offered here are a dry cleaning/laundry service, a concierge service and a late check-out option. A night club is a facility of this accommodation to provide you with some entertainment during your stay. Business guests are welcome, as demonstrated by the presence of a conference space amongst the facilities. This Las Vegas hotel has 4027 rooms. Transport options offered at this location include a paid airport shuttle bus. Guests who drive may be pleased to learn that a paid valet parking service is also an option.
The Venetian Resort Hotel & Casino has air conditioning. Wired high-speed Internet access (surcharge) is a convenient way to stay connected from your room. The majority of the rooms come with a bathroom amenities set and a designer toiletries set in combination with a separate bathtub and shower. The rooms in this hotel include a hypo-allergenic bedding set (upon request), a Premium bedding set and a pillowtop mattress.
Show reviews
|From 15:00 Check-out: Until 11:00
|Wireless high-speed Internet access (complimentary), Free wired Internet
|Paid Parking (Self-service), Paid Valet Parking
|Airport shuttle:
|Airport Transportation (surcharge)
|General facilities:
|Extra common areas:
|Business facilities:
|Wellness facilities:
|Swimming Facilities:
|Note: It is the responsibility of the hotel chain and/or the individual property to ensure the accuracy of the photos displayed. We are not responsible for any inaccuracies in the photos.
Please provide this reference number to our customer service center representative on request, so we can help you better


text:
Last Updated: Wednesday, September 04, 2013, 18:06
Italy coach Cesare Prandelli is to step down following the 2014 World Cup in Brazil, according to reports in Italy on Wednesday.
Last Updated: Friday, December 14, 2012, 13:37
Mario Gomez`s performance prompted Bild, Germany's largest circulated daily, to hail him as the nation's new "Soccer Darling."
Last Updated: Sunday, December 09, 2012, 18:37
It was La Furia Roja's Royal Decree three times over as they stamped their class and authority all over the Olympic stadium sinking the 'Azzurri'4-0.
Last Updated: Thursday, August 16, 2012, 13:41
Super Mario does it for Italy with two first half goals as Ozil pulled one back for the Germans in injury time, 2-1 to Italy.
Last Updated: Tuesday, August 14, 2012, 18:12
Germany`s coach Joachim Loew has criticized the media coverage as "tiresome" and "unrewarding" after his side`s 1-2 loss to Italy at the Euro 2012 semi-finals.
Last Updated: Wednesday, July 25, 2012, 09:08
Music mogul Simon Cowell has reunited with actor James Corden and rapper Dizzee Rascal for a special charity song to mark the Euro 2012 tournament.
Last Updated: Friday, July 20, 2012, 09:51
Manchester United manager Sir Alex Ferguson says that he expected Wayne Rooney to struggle to make an impact for England at Euro 2012.
Last Updated: Tuesday, July 17, 2012, 22:24
Spanish giants Barcelona have recruited an Australian nine-year-old who made an instant impact with the club.
Last Updated: Sunday, July 15, 2012, 19:58
While the Man City star drives to work in his 120,000-pound Bentley Continental GT, Rose Barwuah's more modest mode of transport is the Number 11 bus.
Last Updated: Sunday, July 15, 2012, 19:37
Lukas Podolski is confident he can fill the boots of Robin van Persie should the Dutchman leave Arsenal this summer. The Gunners signed the German international before Euro 2012 for 11.7 million pounds.
Last Updated: Saturday, July 14, 2012, 22:46
David Villa has spoken of his excitement to resume his Barcelona career after a prolonged spell on the treatment table.
Last Updated: Saturday, July 14, 2012, 16:12
Living in Russia would make a stark contrast to Russia`s last two coaches, Dutchmen Guus Hiddink and Dick Advocaat, who only spent time in the country for matches and training camps.
more videos >>


text:
America's 25 hardest-working cities
POSTED: 8:51 PM Apr 24 2012 UPDATED: 12:00 AM May 01 2013
Text Size:
It's International Workers' Day. Find out which U.S. cities are working hardest to earn a dollar.
You share in the NBC Montana.com community, so please keep your comments smart and civil. Don't attack other readers personally, and keep your language decent. Use the "Report Abuse" link if a comment violates these standards. Due to a technical change, all comments posted before Jan. 9, 2014 no longer appear on NBCMontana.com. Comments posted after Jan. 14 are not impacted. We apologize for any inconvenience. The views expressed are not those of NBCMontana.com, NBCMontana or its affiliated companies. This is a community moderated forum. (Please note the 'Like' and 'Report' buttons.) By posting your comments you agree to accept our terms of use.


text:
As one of the nation's largest pawnshop chains and with over 25 years experience, we offer financial serv... more
Offering Pahrump the largest computer selection at the best prices in town. Laptops, desktops, accessorie... more
Ace Hardware is committed to being the Helpful Place for hardware, plumbing, tools, grills, garden and mo... more
Founded as a single store in 1960, Domino's Pizza today stands as the recognized world leader in pizza de... more
Local Premium Listings
Took my dogs to Dr. Susan for 3 miserable years. Each visit was worse than the last. Bedside manner stink... more
© 2014 Local Corporation - US Patent 7,231,405
Some data provided by Acxiom. Questions and Comments? Send us your feedback!


text:
Katy Perry's Exclusive Inauguration Photo Diary
Decked out in a "Katy Doodle Dandy" costume and Oscar de la Renta, respectively, the always candid Katy Perry performed at the Kids' Inaugural Concert and Inaugural Ball in Washington, D.C.—and in her very personal, very political photo diary she takes Vogue.com behind the scenes of her entire weekend. Follow her as she (and John Mayer) go from backstage to the swearing-in to the White House after-party.
1 / 41
Supermodel Central
The ultimate guide to fashion's most gorgeous faces, including the best model-off-duty street style, supermodel beauty secrets, and the rising class of social-media-savvy #instagirls.read more


text: Walking through the French doors one encounters the gorgeous entertaining area overlooking the sweeping golf course and lake views. This 4265 sq ft has 3 bedrooms and 3.2 bath home offers a 2 car garage as well as a separate golf cart garage. The well appointed kitchen and breakfast area, with hand scraped wood floors, state of the art appliances, offers an abundance of light and an open floor plan. The additional entertaining area on the second floor, with a bar and balcony, make this new home feel as though it is in the middle of Ireland.


text:
WEAR - Search Results
What to do if your car was damaged by the floods
Our area saw plenty of cars washed out onto the roads.
Some were just stranded in parking lots and driveways.
Channel 3's Kalie Desimone shows us what you need to know if water flooded into your car.
There's the saying 'a picture is worth a thousand words' or maybe in this case a picture could be worth thousands of dollars.
Take pictures of the damage, especially of your car submerged if you can.
Do not try and start your car if it has been flooded. It can cause more damage. You can usually tell if the car was submerged by checking if the seats or carpet is saturated.
Check the air-filter under the hood. If the paper filter is wet, do not try and start the car.
You risk having severe mold problems no matter what you do. But leaving windows open, or using household fans will not dry the car out. Do not use space heaters or anything with a heat-core to dry out your car.
The micro-electronics, if they got wet, will never be the same.
If the water got into the engine compartment or inside the cabin of the car, you must be prepared for the worst case scenario if you don't have comprehensive insurance coverage, it's a total loss.
For more information on what other steps you can take if your car was damaged in the flood you can log onto our website weartv.com.


text:
Upload Photo
'The Great Gatsby' causes 1920s fashion frenzy
Shorter dresses, extravagant jewels, new hairdos and dapper suits — the 1920s was an intriguing time in fashion for women and for men. And thanks to lust-worthy looks and a cast that includes Leonardo DiCaprio, Carey Mulligan, Tobey Maguire and Isla Fisher, Baz Luhrmann's buzzed about film adaptation has caused a frenzied fashion revival, even though it doesn't hit theaters until May 10. Here, some options for recreating the glitz and glamour of the Roaring 20s, because as a Long Islander you never know when you could score an invitation to a party on our "Gold Coast" from a modern day Jay Gatsby type. -- Compiled by Brianna McMahon
NYC weekend picks: Gipsy Kings Your pet photos: Adorable dogs, cats and more 13 amazing bacon recipes NYFW preview: Designers share 21 stunning sketches Fun ways to pack pasta for lunch NYC's most unique and delicious bacon dishes 7 Labor Day weekend cocktail recipes Travel gear and gadgets Good buys for foodies What's your favorite beer? 74 LIers share theirs 20 amazing breakfast recipes Tomato challenge winner: 5-pound, 4-ounces!


text:
- 102 total posts
- 1 review
- 101 comments
Reviews by Momof383
Back on track
I am a 30 yo mom of 3 (11,8, and 2)... After my oldest two I was in the best shape (110lbs) of my life. I worked at hooters for goodness sake lol. However, I decided to get implants and feel they ruined me. First off I was a small "B" and I told the dr I wanted to be a full B small C and... READ MORE
Recent comments from Momof383
Hope you are/were able to find a good dr and excited to watch your transformation READ COMMENT
Didn't know I should keep wearing it:( I'll have to start putting it back on if that helps. I'll load some new pics READ COMMENT
Good luck to you and thank you! Have you already set your date? READ COMMENT
Yes lesson learned. Also, future advice for some. Do NOT get a full body makeover right by the holidays! READ COMMENT
Everything has been going great.. Well until today! I went skiing, was having a blast until I fell:( I felt like I pulled something and my stomach is swollen:( READ COMMENT


text:
Serving Nashville
2615 Medical Center Pkwy
Murfreesboro, TN 37129
Main (615) 896-6432
Fax (615) 890-0228
Business Hours
Monday: 9:00am - 9:00pm
Tuesday: 9:00am - 9:00pm
Wednesday: 9:00am - 9:00pm
Thursday: 9:00am - 9:00pm
Friday: 9:00am - 9:00pm
Saturday: 9:00am - 9:00pm
Sunday: 10:00am - 7:00pm
Payment Accepted
American Express, Cash, Check, Discover, MasterCard, Visa
More about MichaelsWe celebrate the ideas, both big & small, that inspire your imagination and the more important things in your life. Whether you love arts, crafts, framing, floral, home decor or scrapbooking, visit us at your Murfreesboro Michaels or Shop Online at our new website 24/7! Michaels: Where Creativity Happens. Teachers receive 15% off their entire in-store purchase including classroom supplies, and members of the Military and Seniors enjoy 10% off their entire in-store purchase.
Related categories for Michaels
Please note by clicking on "Post Comment" you acknowledge that you have read the Terms of Service and the comment you are posting is in compliance with such terms. Be polite. Inappropriate posts may be removed by the moderator. Send us your feedback.
Copyright © 2014 Topix LLC


text:
.- A Guardia Civil commander in Cordoba, Spain, Jose Ignacio Criado, has denied a request by two officers at a post in the town of Almodovar del Rio to remove a statue of Our Lady of the Pilar from their office.
The two officers complained the statue of Mary should be removed because it is "a symbol of the Catholic religion being displayed at the official headquarters of state public administration."
Criado responded that public recognition of Our Lady of Pilar as the patroness of the Guardia Civil Corps simply "constitutes an acknowledgement of an historic tradition, and in no way violates the rights of any Guardia Civil officers."
Another Guardia Civil officer who is being sent to the post at Almodovar del Rio has filed a petition with the organization's headquarters asking that the statue not be removed from the office.
On January 7, 1913, the head of the Guardia Civil requested that Our Lady of the Pilar be officially declared Patroness of the Corps. Six days later on January 13, King Alfonso XIII granted the request.
.- A Guardia Civil commander in Cordoba, Spain, Jose Ignacio Criado, has denied a request by two officers at a post in the town of Almodovar del Rio to remove a statue of Our Lady of the Pilar from their office.
Related news
- Congressional committee approves teaching of homosexuality in Spanish schools
- Spanish bishops reiterate right to express opinions on policies that affect the faithful
- Government-sponsored secularism is deconstructing the family, says Spanish archbishop
- Spanish bishop says public expression of faith is a right, not a "concession" from government
Related articles
(What's this?)
* The number of messages that can be online is limited. CNA reserves the right to edit messages for content and tone. Comments and opinions expressed by users do not necessarily reflect the opinions or beliefs of CNA. CNA will not publish comments with abusive language, insults or links to other pages
Featured Videos
Liturgical Calendar
August 30, 2014Saturday of the Twenty-first Week in Ordinary Time
All readings:
Today »
This year »
Catholic Daily
Gospel of the Day
Mt 25:14-30
Daily Readings
Saint of the Day
St. Jeanne Jugan »
Homily of the Day
Mt 25:14-30
Most Popular


text:
Tomorrowland 2012 | official aftermovie
All that . . . – Learn About America's Pastime With These Baseball Tips
Create Your After that Computer Game Obtain Add up By Using These Great Tips
Tom Jones, Just Help Yourself
Tom Jones, Just Help Yourself
Random AD Link when it comes to Ilovemmbrothers :
What I acquire – Learn Some Hotel Secrets You May Not Know About
Change Your Lifestyle, Read Through This Post Regarding Generating Income Online Guidelines
Exactly what I fully grasp – Easy Steps To Follow When Going Green
If You Want To Discover Earning Money Online, This Post Is For You
The Marshall Tucker Band
Test this Posting – Great Guide When It Comes To Organic Gardening
Ways To Make A Ton Of Money On the internet!
Cardinal Industry-Foundational Patents Affirmed; Cardinal and SecureBuy Settle Patent Dispute
Owners might need to fully grasp – Feel Out Of Place When Looking For A Job? Find Yourself With These Tips!
Earning Money Online Is Esay With These Recommendations
ONE WORLD Sports Reorganizes, Adds To, Affiliate Sales Team
Awesome ! ? ! – Advice To Help You Sell Your Valuable Real Estate
momoko. reform boots
Random eZanga Sponsor Website when it comes to Roxy Palace -
Roxy Palace
A couple Awesome reform Snapshots
momoko. reform boots
Image by to.benjamin
2010 .12.
reform boots
work : daydream &
thank you Miss Eun.
REFORMED: Explicit Calvinistic Language
Image by six steps
I found this via Google somehow, so feel free to use this on your blog/website as you please
Your site may wish to realize – Top Tips For Hiring The Right Locksmith For The Job
Why You Have To Get The Most From Article Marketing
How I truly feel – Don't Make Mistakes With Your Future! Read This Advice About College.
Police, Oakland Riots-6
Quite a few Brilliant riot Picture
Police, Oakland Riots-6
AD Link from Random Ads pertaining to Casino Luck :
Casino Luck
Image by Thomas Hawk
Obama Biden, Oakland Riots
Image by Thomas Hawk


text:
Upload Photo
PHOTOS: Funeral for former NYC Mayor Koch
Former NYC Mayor Ed Koch died Feb. 1 from congestive heart failure. The funeral was held at Temple Emanu-El in Manhattan.
LI people on the move! Promotions, new jobs Best bets this weekend on LI Jets hold 'Family Night' and practice at Hofstra Center Moriches football practice Ex-military equipment in use by Nassau County police Mineola football practice Peek into dozens of LI's most lavish homes 10 Roosevelt Field dining options 11 Long Island myths and legends Westhampton football practice Long Island and New York City's top photos Floral Park football practice


text:
Found 108 additional ads in areas surrounding Na H-Eileanan an Iar
Motorbike Protective Gear - All you need!Ardersier, Inverness£150Boots - Size 7 - Leather with shin protection and full length zip. Gloves - Size M - RST leather racing gloves with knuckle protection. Helmet - Size M - 57-58cm -...5SaveRemove
Belstaff Jacket (armoured) New Size SmallMunlochy£50Belstaff jacket, never used, kept in wardrobe from non smoking home. (as new) Size small2SaveRemove
Harley Davidson spot lights newPitlochry£50Never fitted Harley Spot lights.also i'm selling rest pegs bracket.2SaveRemove
one peace leather suitForres£50Really good condition only worn a few times still like new,size xl,am 6/4 selling due to never used anymore since selling my sports bike2SaveRemove
Quality heavy leather jacket size largeBeauly£65City if leather London, quality jacket size large. with removable quilted lining, as new, must sell. see other items.3SaveRemove
Leather boots, excellent condition size 6-7Beauly£25Leather Tsuzo boots size 6-7 in excellent condition. Must sell. see other items.3SaveRemove
motor bike gear gloves helmet 3 jackets leather trousersGlasgow, Greenock£13 motor bike jackets .s m & large . 3 pairs of gloves I helmet 1 pair of motor bike trousers large no reasonable offer refusedSaveRemove
Bike leathersBeauly£175I'm giving up biking and clearing out all biking gear. I have for sale a full set of Dynamic Leathers in excellent condition. The jacket is a 42" and the trousers...6SaveRemove
Nitro NB11 bootsTurriff£20Nitro boots for sale Size 10 Only worn a few times3SaveRemove
Motorcycle motorbike boots size 9Perth£30Motorcycle motorbike boots size 9 Very good condition worn few times.3SaveRemove
Rayven motorcycle motorbike jacket XLPerth£40Rayven motorcycle motorbike jacket XL Removable thermal liner and hard pads. Very good condition, worn few times4SaveRemove
HJC samurai CS-R1 motorcycle motorbike helmet size S 56cmPerth£50HJC samurai CS-R1 motorcycle motorbike helmet size S 56cm Excellent condition worn few times. Come with protecting bag. Perth7SaveRemove
Motorcycle motorbike trausers camuflage camo waterproof cordura 34LPerth£45Motorcycle waterproof camo trousers. Removable thermal liner, removable hard padding on knees, hips, can be zipped with jacket on the back. Trousers are size 34...4SaveRemove
Brand new Richa Sniper Leather Motorbike JacketInverness£80Size UK 40" - jacket never been worn, still with labels1SaveRemove
Ladies Kevlar Red Route Jeans Blue UK 32New Deer, Turriff£50Ladies Kevlar Red Route Jeans Blue UK 32 (12/14) As new, only used for one weeks biking and washed once. There is a short zip fitted to the back of them and...1SaveRemove
Yamaha r6 immaculate jacketClydebank, West Dunbartonshire£35Yamaha red black r6jacket hardly worn immaculate condition size38/40 phone pocket 2zipped pockets comes with armour bargain nearly new no marks Thanks gerry5SaveRemove
Shark s650 men's bike helmet - grey XLScone, Perth£50Men's shark s650 motorbike helmet XL. One slight chip on the paintwork on the front, but it's just superficial, not structural. Slight scratch on top and back to...3SaveRemove
Men's motorbike jacket (Knox) mediumScone, Perth£75Men's Knox motorbike jacket - medium. All weather protection. In excellent condition - hardly used. Grey and black with zip and popper closing.2SaveRemove
Men's motorbike boots - Uk size 11/45Scone, Perth£15Men's motorbike boots - knee high. Black. Size UK 11/ EU 45 Used but in good condition3SaveRemove
Men's motorbike boots - Uk size 11/45Scone, Perth£15Men's motorbike boots (black) in a UK size 11/EU 45 Used but in good condition.1SaveRemove
Xs motor helmetCromarty£45Like new excellent condition1SaveRemove
2 piece leathersAberchirder, Huntly£1202 piece leathers good condition. A few small scuffs but nothing serious .trouser zip pull tab broken but still works fine. Jacket size 44 trousers size 347SaveRemove
New full face helmetStanley, Perth£25matt black worn once xl £25 no offers thanks. pick up perth during the day or stanley at nite 079553439973SaveRemove
MOTORBIKE JACKET & CABERG HELMETKirriemuir£70Motorbike jacket,size XL but fits medium, immaculate condition £70. Red Caberg Helmet, immaculate size small £602SaveRemove
Nitro Racing Evolution Series motorbike helmet, size L, like newNairn£20Nitro Racing Evolution Series motorbike helmet, size L Like new, has quick release strap, 3 closable vents and breath fog shield Located in Nairn, send me a...2SaveRemove
Spidi Bonneville Jacket XLBuckie£150Spidi Bonneville leather jacket size XL in very good condition.4SaveRemove
Full face Bike Helmet large (59-60cm)Dingwall£40Caberg J1 full face internal sunvisor vox speed motorbike helmet. Size Large (59-60cm) Barely used (as new) £40 ono Collection only.3SaveRemove
Schuberth C3 - medium neon yellow, new, boxed unworn - £275Dingwall£275brand new, bought 3 months ago and never worn (plans changed) schuberth C3 in neon yellow, comes with box, all the papers and original receipt (so you can have the...1SaveRemove
Lewis motorcycle jacket and Arashi Vexon SA08 crash helmetPerth and Kinross£55Textile waterproof jacket with armour on shoulders and elbows, plenty of pockets and removable quilted lining. Seldom worn and in excellent condition Size Medium...1SaveRemove
spidi full leather suitAberfeldy£280spidi leather suit , worn only 4 or 4 times . beautifull condition.size 42 uk 52 euro.would suit someone up to 5ft 7in.i can't emphasise how clean and nice this is...4SaveRemove
Ladies motorcycle leather jacket and trousers size 6Perth£150Ladies size 6 jacket and trousers. Both jacket and trousers are Heine Gericke and in good condition. There is slight scuffing to the back of the jacket, from the...4SaveRemove
Spade waterproof motorcycle touring jacket. Built in light weight protection size MPerth£20Black and blue Spada touring jacket. Incorporated protection in back shoulders and arms. Fully waterproof with removable insulation, can be zipped into compatible...2SaveRemove
Danaise Back ProtectorFochabers£40Excellent back protector. Highly rated in reviews. Fits small to medium with Velcro adjusters. Barely used. Can post.2SaveRemove
FOX Helmet and body armourElgin£80FOX black and white helmet size Medium vgc £60, FOX black and white body armour vgc £40 or £80 for them both. I also have a motorbike stand selling for £25.6SaveRemove
Blytz Touring Motorcycle Boots - Ladies - Black/PinkForres£15Blytz Ladies Motorcycle Boots with Pink Design VGC SPECIFICATIONS Waterproof breathable Adjustable Velcro closure Rubber oil resistant non-slip sole Leather upper £152SaveRemove
Ladies Pink Nitro Motorbike Helmet (used twice)Forres£20Ladies Pink Helmet used twice size M3SaveRemove
Frank Thomas Ladies Pink Motorcycle Gloves, and Neck WarmerForres£15Frank Thomas Pink Ladies Gloves used Twice. VGC size S3SaveRemove
Frank Thomas Lady Rider Textile Jacket and Trouser Set (M)Forres£50Frank Thomas Lady Rider Textile Armoured Jacket and Trouser set. comes with belt and wallet. Reflective piping over the shoulders and arms for improved visibility...4SaveRemove
Alpinestars SMX Jacket Size 54euro 44usaMallaig£150For Sale Alpinestars SMX Air-flow Jacket 44" chest size 54 euro 44 usa 3 years old Good condition with no scraps or rips all zips in good working order 2 small...3SaveRemove
Rst motorbike jacket size 42 men for sale good condition. 50Clydebank, West Dunbartonshire£50Rst jacket ! Call me 07879647024 size 42 men1SaveRemove
Leather bike JacketHighland, Nairn£150Weise Hydra Jacket, Never used, full armour' waterproof, thermal Lining. uk, size 464SaveRemove
2 motor bike helmets for saleInsch£35Have 2 motor bike helmets for sale. Both medium size. Good condition.2SaveRemove
SIDI motorbike bootsClydebank, West Dunbartonshire£60Boots have a few stuff marks but in good condition Size 64SaveRemove
Biker Jacket Fleece inner with Harley Davidson ScarfStirling£40Inner fleece for Harley Davidson biker jacket (or any other). Ladies size 16/18 Black. comes with Harley Davidson Scarf. Fleece and scarf never worn. Health issues...2SaveRemove
Biker Leather Jacket, Harley DavidsonStirling£125Ladies Biker Jacket, Harley Davidson size 16/18. Perfect condition, beautiful jacket. When new £395.00. Health issues forcing sale. very sad.2SaveRemove
BMW "SAVANNAH" ALL-WEATHER JACKET *DET.GORETEX INNER* LITTLE WORN MULTIPLE ZIPS FOR MAX.VENTING *Perth and Kinross£230*SIZE 44/46 (BMW 56) * I am a 44 & have room for a normal jacket under. Really versatile with the zip-in Goretex liner with sleeves. Serious venting possible with...7SaveRemove
BMW "SAVANNAH" ALL-WEATHER JACKET *DET.GORETEX INNER* LITTLE WORN MULTIPLE ZIPS FOR MAX.VENTING *Perth and Kinross£230*SIZE 44/46 (BMW 56) * I am a 44 & have room for a normal jacket under. Really versatile with the zip-in Goretex liner with sleeves. Serious venting possible with...8SaveRemove
Biker Leather Jacket, Harley DavidsonStirling£125Gents Biker Jacket size 40 chest, Harley Davidson, perfect condition, hardly worn, Health issues forcing sale. £440 when new.2SaveRemove
Leather Trousers with knee protectionStirling£50Gents leather biker trousers with knee protection. Size 32/34 waist. Great condition. Health issues forcing sale1SaveRemove
Harley Davidson Jacket Fleece and ScarfStirling£40Fleece insert for Harley Davidson ladies biker jacket 16/18 never worn, with Harley Davidson Scarf. Beautiful condition.2SaveRemove
Boots in Na H-Eileanan an Iar, Motorbike Parts & Accessories for Sale (108 ads posted)


text:
Product Details:
Manufacturer: Chart House Restaurant
Mfg Part#: 34699B2500
Sku: 230357380
Package Weight: 0.5 lbs
Sales Rank: 93279
See more in Dining
|Since 1961, Chart House has been dedicated to providing the ideal fine-dining experience. With historic, waterfront and showcase locations across the U.S., Chart House offers spectacular views and exceptional service that you're sure to enjoy. For locations visit www.landrysrestaurants.com.


text:
Save to My Recipes
Asparagus with Mussel Beurre Blanc
Okay, so maybe you don't live across the street from a blooming locust tree—you can still make a killer butter sauce.
Published: April 2014 Servings: 6
- ½ medium onion, chopped
- 1 small carrot, peeled, chopped
- ½ cup dry white wine
- 1 pound mussels, debearded, scrubbed
- 2 bunches asparagus (about 1½ lb.), trimmed, stalks peeled
- Kosher salt
- ¾ cup (1½ sticks) chilled unsalted butter, cut into pieces
- 1 tablespoon Sherry vinegar
- 1 cup locust flowers (optional)
Nutritional Information
Calories (kcal) 320 Fat (g) 24 Saturated Fat (g) 14 Cholesterol (mg) 80 Carbohydrates (g) 10 Dietary Fiber (g) 3 Total Sugars (g) 4 Protein (g) 12 Sodium (mg) 300
PREPARATIONView Step-by-Step Directions
Bring onion, carrot, and wine to a boil in a medium saucepan. Add mussels and return to a boil. Remove from heat, cover, and let sit 10 minutes.
Meanwhile, cook asparagus in a large pot of boiling salted water until bright green and crisp-tender, about 5 minutes. Using tongs, transfer to a bowl of ice water. Let cool, then drain and set aside. Reserve pot with water.
Strain mussel mixture through a sieve into another medium saucepan (you should have about ½ cup). Discard (or eat!) mussels and vegetables. Bring cooking liquid to a boil, reduce heat, and simmer until reduced to ¼ cup.
Whisking constantly, add butter, a piece at a time, incorporating before adding the next piece. Whisk until sauce is emulsified. Whisk in vinegar; season with salt.
Just before serving, warm asparagus in reserved pot of hot water. Drain, pat dry, and transfer to a platter. Gently mix locust flowers, if using, into sauce and spoon over asparagus.
Loading Comments...
Advice from the Bon Appétit Test Kitchen
Paella with Asparagus and Sugar Snap Peas
Mussels with Cream, Fennel, and White Wine
Mussels with White WineSpoon some aioli on a piece of toast, dunk it in the broth, and eat it along with the white wine-soaked mussels. Repeat.
Salmon in Saffron Mussel Sauce
Mussels with Tomatoes, Wine, and Anise
MoulesCustomize the flavor profile of the finished dish by stirring some curry powder or Dijon mustard into the cooking liquid.