This module implements a number of Python exceptions you can raise from within your views to trigger a standard non-200 response.
from werkzeug import BaseRequest, responder
from werkzeug.exceptions import HTTPException, NotFound
def view(request):
raise NotFound()
@responder
def application(environ, start_response):
request = BaseRequest(environ)
try:
return view(request)
except HTTPException, e:
return e
As you can see from this example those exceptions are callable WSGI applications. Because of Python 2.4 compatibility those do not extend from the response objects but only from the python exception class.
As a matter of fact they are not Werkzeug response objects. However you can get a response object by calling get_response() on a HTTP exception.
Keep in mind that you have to pass an environment to get_response() because some errors fetch additional information from the WSGI environment.
If you want to hook in a different exception page to say, a 404 status code, you can add a second except for a specific subclass of an error:
@responder
def application(environ, start_response):
request = BaseRequest(environ)
try:
return view(request)
except NotFound, e:
return not_found(request)
except HTTPException, e:
return e
The following error classes exist in Werkzeug:
400 Bad Request
Raise if the browser sends something to the application the application or server cannot handle.
401 Unauthorized
Raise if the user is not authorized. Also used if you want to use HTTP basic auth.
403 Forbidden
Raise if the user doesn’t have the permission for the requested resource but was authenticated.
404 Not Found
Raise if a resource does not exist and never existed.
405 Method Not Allowed
Raise if the server used a method the resource does not handle. For example POST if the resource is view only. Especially useful for REST.
The first argument for this exception should be a list of allowed methods. Strictly speaking the response would be invalid if you don’t provide valid methods in the header which you can do with that list.
406 Not Acceptable
Raise if the server can’t return any content conforming to the Accept headers of the client.
408 Request Timeout
Raise to signalize a timeout.
410 Gone
Raise if a resource existed previously and went away without new location.
411 Length Required
Raise if the browser submitted data but no Content-Length header which is required for the kind of processing the server does.
412 Precondition Failed
Status code used in combination with If-Match, If-None-Match, or If-Unmodified-Since.
413 Request Entity Too Large
The status code one should return if the data submitted exceeded a given limit.
414 Request URI Too Large
Like 413 but for too long URLs.
415 Unsupported Media Type
The status code returned if the server is unable to handle the media type the client transmitted.
500 Internal Server Error
Raise if an internal server error occurred. This is a good fallback if an unknown error occurred in the dispatcher.
501 Not Implemented
Raise if the application does not support the action requested by the browser.
502 Bad Gateway
If you do proxying in your application you should return this status code if you received an invalid response from the upstream server it accessed in attempting to fulfill the request.
503 Service Unavailable
Status code you should return if a service is temporarily unavailable.
All the exceptions implement this common interface:
Baseclass for all HTTP exceptions. This exception can be called as WSGI application to render a default error page or you can catch the subclasses of it independently and render nicer error messages.
Get a response object.
| Parameter: | environ – the environ for the request. |
|---|---|
| Returns: | a BaseResponse object or a subclass thereof. |
Call the exception as WSGI application.
| Parameters: |
|
|---|
Starting with Werkzeug 0.3 some of the builtin classes raise exceptions that look like regular python exceptions (eg KeyError) but are BadRequest HTTP exceptions at the same time. This decision was made to simplify a common pattern where you want to abort if the client tampered with the submitted form data in a way that the application can’t recover properly and should abort with 400 BAD REQUEST.
Assuming the application catches all HTTP exceptions and reacts to them properly a view function could do the following savely and doesn’t have to check if the keys exist:
def new_post(request):
post = Post(title=request.form['title'], body=request.form['body'])
post.save()
return redirect(post.url)
If title or body are missing in the form a special key error will be raised which behaves like a KeyError but also a BadRequest exception.
Sometimes it’s convenient to just raise an exception by the error code, without importing the exception and looking up the name etc. For this purpose there is the abort() function.
It can be passed a WSGI application or a status code. If a status code is given it’s looked up in the list of exceptions from above and will raise that exception, if passed a WSGI application it will wrap it in a proxy WSGI exception and raise that:
abort(404)
abort(Response('Hello World'))
If you want to use this functionality with custom excetions you can create an instance of the aborter class:
When passed a dict of code -> exception items it can be used as callable that raises exceptions. If the first argument to the callable is an integer it will be looked up in the mapping, if it’s a WSGI application it will be raised in a proxy exception.
The rest of the arguments are forwarded to the exception constructor.
As you can see from the list above not all status codes are available as errors. Especially redirects and ather non 200 status codes that represent do not represent errors are missing. For redirects you can use the redirect() function from the utilities.
If you want to add an error yourself you can subclass HTTPException:
from werkzeug.exceptions import HTTPException
class PaymentRequred(HTTPException):
code = 402
description = '
Payment required.
'
This is the minimal code you need for your own exception. If you want to add more logic to the errors you can override the get_description(), get_body(), get_headers() and get_response() methods. In any case you should have a look at the sourcecode of the exceptions module.
You can override the default description in the constructor with the description parameter (it’s the first argument for all exceptions except of the MethodNotAllowed which accepts a list of allowed methods as first argument):
raise BadRequest('Request failed because X was not present')


Reports catch clauses
which catch inappropriate exceptions. Some exceptions, for instance
java.lang.NullPointerException and
java.lang.IllegalMonitorStateException represent programming errors
and so should almost certainly not be caught in production code.
Use the list below to specify which exceptions should be flagged by this inspection.
Powered by InspectionGadgets


Normal
Title 1

Title 2

Title 3

Title 4

Title 5

Subtitle

Paragraph

Preformatted

Very small
A bit small
Normal
Medium-large
Big
Very big
Maximum


Ready to Rumble (2000) Rating: 4.0 stars out of 5.0 stars
Cast: David Arquette, Scott Caan, Oliver Platt, Rose McGowan, Martin Landau, Joe Pantoliano, Caroline Rhea, Ahmet Zappa Featured Wrestlers: Bill Goldberg, "Diamond" Dallas Page, Sting, Disco Inferno, Sid Vicious, Bam Bam Bigelow, Perry Saturn, Curt Hennig Written by: Steven Brill Directed by: Brian Robbins Running Time: 107 minutes
Harmless, silly and fun comedy about dim-witted wrestling fans Gordie and Sean (David Arquette and Scott Caan) who idolize current World Championship Wrestling heavyweight champion Jimmy King (Oliver Platt). When King is screwed out of his title by a corrupt promoter (Joe Pantoliano), Gordie and Sean take it upon themselves to find their fallen hero and restore his glory.
My biggest fear about Ready to Rumble was dispatched early on, as the filmmakers are quick to show that wresting is indeed choreographed (but not fake, mind you).
Arquette and Caan are suitably over the top with their performances, which is exactly what a movie like this requires, and Oliver Platt (one of my favorite actors) is a riot as the drunken washed-up ex-champion. Many have scoffed at the idea that Platt should be playing a heavyweight champion wrestler with an unbeaten record, but for me it just added to the "silly factor" of the film, thereby increasing my enjoyment of it. One casting complaint however: Rose McGowan as a sexy dancer? Please... if Rose McGowan is sexy then I'm Marilyn Manson.
Given the current state of the actual WCW, if Oliver Platt were appearing as Jimmy King right now on WCW programming, he'd be the most popular guy they have. On a similar note, the "plot line" of the wresting portions of the film are more entertaining than anything the WCW writers have been able to come up with in the last two years. Although one does have to ask... why would any wrestling promoter fire the head wrestler of a company who is both unbeaten and extremely popular with the fans?
 This movie fits in nicely with his previous efforts Good Burger and Varsity Blues. And screenwriter Steven Brill (the epic Mighty Ducks trilogy, Late Last Night) manages to keep things both sophomoric and clever at the same time, with almost all the jokes of the film getting a laugh out of me. The only exceptions to that were: 1) a scene involving a van full of singing nuns and 2) any scene involving the old woman wrestling fan. Those moments made me cringe and/or groan. As an added bonus though, the audience is treated to outtakes from the film as the final credits roll. [PG-13]
Chuck Dowling -<EMAIL_ADDRESS>The Jacksonville Film Journal - http://www.jaxfilmjournal.com/
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Walkthrough¶
The following is a detailed orientation on the Template
class and insert_image
functions.
[1]:
import copy, os
import matplotlib.pyplot as plt
import matplotlib.gridspec as gs
import numpy as np
import pandas as pd
from mpl_template import Template, insert_image
%matplotlib inline
# make the inline output identical to the PDF.
%config InlineBackend.print_figure_kwargs = {'bbox_inches':None}
[2]:
SCRIPT = "Template_Docs.ipynb"
PATH = os.path.join(os.path.join(*os.getcwd().split(os.sep)[-2:]), SCRIPT)
Basics¶
The Builtin template layout is revealed with the blank() method of the Template object. This method labels the axes names that make up the default figure axes elements. These elements will contain the title block contents.
[3]:
report_fig = Template(figsize=(8.5, 11), scriptname=SCRIPT)
blank_fig = report_fig.blank()
page = report_fig.add_page() # This is a helper function that is useful when
# working with %matplotlib inline
Titleblock¶
The titeleblock boxes are each matplotlib.axes.Axes() instances that have been created with gridspec.GridSpecFromSubplotSpec. The titleblock is stored as a list of dicts, and the widths and heights of the Axes objects are controlled using a list of dicts which contain a 'span'
key. For Example:
user_specified = [
{'span': [0, 5, 0, 10]},
{'span': [5, 10, 0, 10]},
]
would create two boxes stacked on top of each other, both of them .5 inches tall and 1 inch wide.
User Defined Titleblock¶
Populating the figure axes objects above is simple with a loop, and a function to perform the logic for each axes element. there is a helper method called populate_titleblock()
to assist with this task, or the user may specify their own function for special cases.
titleblock_ = [
{
'name': 'string',
# Optional if box is meant to be empty.
# Required if box will be populated.
# The value referenced by the 'name' key is
# used to assign the 'label' attribute of the
# Axes instance.
'text': [{}, {}],
# Optional if box will not contain text.
# Dict or list of dicts containing Axes.text()
# kwargs
'span': [],
# Optional if default box dimensions should be used.
# User input of this attribute overrides the
# default span widths and heights and may require the
# user to also adjust the
# template.Template.gstitleblock() values to create
# the intended box.
'image': {
'path': 'path\to\image.png',
# Required, may be web address
# or local file path
'scale': int or float,
# Optional, defaults to 1.
# use scale > 1 for zoom-in
# and scale < 1 for zoom-out
'expand': bool,
# Optional, defaults to False.
# Applies only if scale > 1.
# If True, image is expanded to completely
# fill enclosing axes object.
# If False, image is zoomed and cropped
# to original aspect ratio.
},
},
{}, # Box 2
{}, # Box 3 etc...
]
This example will build a title block as follows using the default spans as shown in the blank()
output above.
“b_0” will contain a title and subtitle with different formatting
“b_1” will contain a logo image
“b_2” will contain the project number
“b_3” will contain the date
“b_4” will contain the figure number
[4]:
TBK = [
{
'name': 'title',
'text': [
{
's': 'Example Figure',
'weight': 'bold',
'x': 0.5,
'y': 0.54,
'va': 'baseline',
'ha': 'center',
},
{
's': 'Weyland-Yutani',
'weight': 'light',
'x': 0.5,
'y': 0.46,
'va': 'top',
'ha': 'center',
'color': (.3, .3, .3),
},
]
},
{'name': 'logo',
'image': {
'path': 'img//logo.png',
'scale': .75,
},
},
{
'name': 'project',
'text': {
's': 'USCSS $Nostromo$',
'x': 0.5,
'y': 0.5,
'va': 'center',
'ha': 'center',
},
},
{
'name': 'date',
'text': {
's': 'June 2122',
'x': 0.5,
'y': 0.5,
'va': 'center',
'ha': 'center',
}
},
{
'name': 'fignum',
'text': {
's': 'Figure\n\n{:02d}',
'weight': 'bold',
'x': 0.5,
'y': 0.5,
'va': 'center',
'ha': 'center',
},
},
]
[5]:
report_fig = Template(figsize=(8.5, 11), scriptname=SCRIPT, titleblock_content=TBK)
report_fig.path_text = PATH
# typically the path is populated via the required `scriptname` kwarg
# but it can be overwritten with this `path_text` property
report_fig.add_frame()
report_fig.add_titleblock()
report_fig.add_path_text()
report_fig.populate_titleblock()
page = report_fig.add_page()
Below are the Axes objects created by the Template
class and TBK
variable. Note that frame
and img_b_1
were not labeled by the user, but by the Template.
[6]:
for ax in report_fig.fig.get_axes():
print(ax.get_label())
frame
title
logo
project
date
fignum
img_b_1
page
Under The Hood¶
The template object works by breaking down the figure into a grid of 0.1” squares and using matplotlib’s GridSpec to define the axes objects that make up the title block boxes and border. This means that the code is extremely flexible for changing things like margins, titleblock width, and inserting multiple axes into compliated layouts. However, this also means that a user must call GridSpec() or GridSpecFromSubplotSpec() in order to populate the figure.
Below is a 1” by 1” example to illustrate the underlying grid of the template.
[7]:
w, h = 1, 1
report_fig = Template(figsize=(w, h), scriptname=SCRIPT, draft=False)
for i in range(w * 10 * h * 10):
ax = report_fig.fig.add_subplot(report_fig.gsfig[i], facecolor='none',
xticks=[], yticks=[],
)
Inserting a Plot¶
A simple plot example is shown below that uses several methods to get locations of useful figure features.
[8]:
tbk = copy.deepcopy(TBK)
tbk[0]['text'][0]['s'] = "Plot Example"
tbk[4]['text']['s'] = tbk[4]['text']['s'].format(2)
report_fig = Template(figsize=(8.5, 11), scriptname=SCRIPT, titleblock_content=tbk)
report_fig.path_text=PATH
fig = report_fig.setup_figure() # `setup_figure` performs add_frame(), add_titleblock(),
# add_path_text() and populate_titleblock(). It is the
# recommended way to create figures with the Template class
# create a sub-gridspec that will be used for the main image
left, right, top, bottom = report_fig.margins
main = report_fig.gsfig[4 + top: -(report_fig.t_h + bottom + 8), 8 + left: -(right + 8)]
ax = fig.add_subplot(main)
plot = ax.plot([np.random.uniform(-1, 1)*5 for i in range(25)])
_ = ax.set_ylim(-8, 8)
page = report_fig.add_page()
Inserting an Image¶
The template has an additional built in method for inserting images that are centered in the axes object and properly antialiased for the final resolution of the figure. The default value for saving/exporting figures using the Template module is 300 dpi. The insert_image() method also ensures that there is no stretching or other modification to the image that is being inserted.
[9]:
tbk = copy.deepcopy(TBK)
tbk[0]['text'][0]['s'] = "Image Example"
tbk[4]['text']['s'] = tbk[4]['text']['s'].format(3)
report_fig = Template(figsize=(8.5, 11), scriptname=SCRIPT,
titleblock_content=tbk)
# create a sub-gridspec that will be used for the main image
left, right, top, bottom = report_fig.margins
main = report_fig.gsfig[4 + top: -(report_fig.t_h + bottom + 8),
3 + left: -(right + 3)]
report_fig.path_text = PATH
fig = report_fig.setup_figure()
# "frameon = True" shows that the axes object that is being added
# is exactly the size and shape specified by the gridspec, but the image
# fills the largest dimension first.
ax = fig.add_subplot(main, xticks=[], yticks=[], frameon=True)
im_ax = insert_image(ax, "img//95_confidence.png", scale=1, dpi=fig.get_dpi())
im_ax.axis('on')
page = report_fig.add_page()
Plots with Insets¶
[10]:
tbk = copy.deepcopy(TBK)
tbk[0]['text'][0]['s'] = "Inset Example"
tbk[4]['text']['s'] = tbk[4]['text']['s'].format(4)
report_fig = Template(figsize=(17, 11),
scriptname=SCRIPT,
titleblock_content=tbk,
)
report_fig.path_text = PATH
main = report_fig.gsfig[4 + top: -(report_fig.t_h + bottom),
8 + left: -(right + 50)]
gs_timeseries = gs.GridSpecFromSubplotSpec(4, 3, main, hspace=0.3, wspace=0.3)
fig = report_fig.setup_figure()
for n in range(12):
ax2 = fig.add_subplot(gs_timeseries[n])
x = np.arange(25)
y = np.random.uniform(-2, 2) * x + np.random.uniform(-10, 10, x.shape)
ax2.set_ylim((-50, 50))
ax2.plot(x, y)
inset = report_fig.gsfig[3 + top: -(report_fig.t_h + bottom + 3),
-(report_fig.t_w + right): -(right + 3)]
inset_ax = fig.add_subplot(
inset, frameon=False, xticks=[], yticks=[], facecolor='none')
img = insert_image(inset_ax, "img//Template_Inset.png", scale=1)
img.axis('on')
page = report_fig.add_page()
Advanced Features¶
Compatability with Seaborn¶
[11]:
import seaborn as sns
for i in range(2):
with sns.axes_style('white'):
tbk = copy.deepcopy(TBK)
tbk[0]['text'][0]['s'] = "Seaborn Loop Example"
tbk[4]['text']['s'] = tbk[4]['text']['s'].format(i + 5)
report_fig = Template(figsize=(17, 11),
scriptname=SCRIPT,
titleblock_content=tbk,
)
report_fig.path_text = PATH
left, right, top, bottom = report_fig.margins
main = report_fig.gsfig[4 + top: -(report_fig.t_h + bottom),
8 + left: -(right + 50)]
gs_timeseries = gs.GridSpecFromSubplotSpec(4, 3,
main,
hspace=0.3,
wspace=0.3,
)
fig = report_fig.setup_figure()
for n in range(12):
ax2 = fig.add_subplot(gs_timeseries[n])
x = np.arange(25)
y = np.random.uniform(-2, 2) * x + \
np.random.uniform(-10, 10, x.shape)
ax2.set_ylim((-50, 50))
ax2.plot(x, y)
inset = report_fig.gsfig[3 + top:-(report_fig.t_h + bottom + 3),
-(report_fig.t_w + right):-(right + 3)]
inset_ax = fig.add_subplot(inset,
frameon=False,
xticks=[],
yticks=[],
facecolor='none',
)
img = insert_image(inset_ax, "img//Template_Inset.png", scale=1)
page = report_fig.add_page()
FacetGrid¶
Seaborn’s facetgrid cannot be made directly compatable with this module (to my knowledge) because of it’s implicit call to plt.subplots() or plt.figure() to generate the figure necessary to produce multiple axes in a subplot axes grid. For now, creating a temporary png file of the facet grid and loading it as an image is one way around this limitation.
[12]:
with sns.axes_style('white'):
tbk = copy.deepcopy(TBK)
tbk[0]['text'][0]['s'] = "Seaborn FacetGrid Example"
tbk[4]['text']['s'] = tbk[4]['text']['s'].format(7)
report_fig = Template(figsize=(8.5, 11),
scriptname=SCRIPT,
titleblock_content=tbk,
)
report_fig.path_text = PATH
attend = sns.load_dataset("attention")
g = sns.FacetGrid(attend, col="subject", col_wrap=5, height=1.5, ylim=(0, 10))
g = g.map(plt.plot, "solutions", "score", marker=".", markersize=10)
g.savefig('img//Facet_Grid.png', dpi=300)
plt.close()
left, right, top, bottom = report_fig.margins
main = report_fig.gsfig[top: -(report_fig.t_h + bottom + 1),
left: -(right)]
fig = report_fig.setup_figure()
ax = fig.add_subplot(main, xticks=[], yticks=[], frameon=False)
g_ax = insert_image(ax, "img//Facet_Grid.png", scale=.9)
g_ax.axis('off')
page = report_fig.add_page()
Custom Titleblock Specifications¶
The Template Module is highly customizable using the titleblock_content
, titleblock_rows
and titleblock_cols
kwargs when constructing the object. The rows and columns should be tuples specifying the high level grid structure of the titleblock, and the titleblock content should contain a list of dictionaries (one for each box) with a 'span'
key.
Spans are given as gridspec lists of indices of the grids to span. The pattern for gridspec is [r0:r,c0:c] where r0 is the top of the vertical span of rows, and c0 is the left element of the horizontal span of the columns. The span list should provide these indices in order, e.g. [r0,r,c0,c].
Defaults are shown below:
[13]:
report_fig = Template(figsize=(8.5, 11), scriptname=SCRIPT)
print('Default titleblock_cols = (16, 16, 8)')
print('Default titleblock_rows = (8, 5, 3)')
report_fig.default_spans
Default titleblock_cols = (16, 16, 8)
Default titleblock_rows = (8, 5, 3)
[13]:
[{'span': [0, 8, 0, 40]},
{'span': [8, 13, 0, 32]},
{'span': [13, 16, 0, 16]},
{'span': [13, 16, 16, 32]},
{'span': [8, 16, 32, 40]}]
Defaults can be adjusted with the titleblock_rows
and titleblock_cols
. It’s even possible to align the titleblock anywhere on the figure using gridspec.
The titleblock can be moved using the gstitleblock
attribute of the template.Template()
class.
[14]:
with sns.axes_style('white'):
tbk = copy.deepcopy(TBK)
tbk[0]['text'][0]['s'] = " Wide Titleblock on Left"
tbk[4]['text']['s'] = tbk[4]['text']['s'].format(8)
report_fig = Template(figsize=(8.5, 11), scriptname=SCRIPT,
titleblock_rows=(8, 5, 5),
titleblock_cols=(30, 20, 10),
margins=(1, 2, 3, 4),
titleblock_content=tbk,
)
report_fig.path_text = PATH
report_fig.gstitleblock = report_fig.gsfig[-(report_fig.bottom + report_fig.t_h) or None: -report_fig.bottom or None,
(report_fig.left) or None: (report_fig.left + report_fig.t_w) or None
]
fig = report_fig.setup_figure()
page = report_fig.add_page()
It’s also possible to blend the definitions of spans and use an existing titleblock specification to populate the adjusted boxes. Notice that the specifications from the TBK
occupy different cells than before because their spans have been defined differently by new_spans
.
[15]:
new_spans = [
{"span": [0, 8, 0, 32]},
{"span": [13, 16, 16, 30]},
{"span": [13, 16, 0, 16]},
{"span": [8, 13, 0, 32]},
{"span": [0, 13, 32, 40]},
{"span": [13, 16, 30, 40]}
]
update = copy.deepcopy(TBK)
for i, dct in enumerate(update):
dct.update(new_spans[i])
with sns.axes_style('white'):
tbk = copy.deepcopy(update)
tbk[0]['text'][0]['s'] = "Custom Titleblock Example"
tbk[4]['text']['s'] = tbk[4]['text']['s'].format(8)
report_fig = Template(figsize=(8.5, 11),
scriptname=SCRIPT,
titleblock_content=tbk
)
report_fig.path_text = PATH
fig = report_fig.setup_figure()
page = report_fig.add_page()
Fully Custom Titleblock¶
[16]:
fully_custom = [
{
'span': [0, 32, 0, 16],
'name': 'Title',
'text': [
{
"ha": "center",
"s": "Test Custom Block",
"va": "baseline",
"weight": "bold",
"x": 0.5,
"y": 0.52,
},
{
"color": (.3, 0.3, 0.3),
"ha": "center",
"s": "Blank Example",
"va": "top",
"weight": "light",
"x": 0.5,
"y": 0.48,
},
],
},
{
'name': 'logo',
'image': {
'path': 'img//logo.png',
'scale': .6,
},
'span': [0, 32, 16, 32],
},
{
'name': 'fignum',
'text': {'s': '5',
'x': .5,
'y': .5,
'ha': 'center',
'va': 'center',
},
'span': [0, 32, 32, 48],
},
]
with sns.axes_style('white'):
report_fig = Template(figsize=(8.5, 11),
scriptname=SCRIPT,
titleblock_content=fully_custom,
)
report_fig.path_text = PATH
fig = report_fig.setup_figure()


Input:
Input
Allowed Characters:
MD5:
MD5
SHA-1:
SHA-1
SHA-256:
SHA-256
SHA-512:
SHA-512
RIPEMD-160:
RIPEMD-160
Some hash functions. Most of the code is from
here
.


Drupal provides API for saving entities such as node_save()
or user_save()
. Functions like this update the whole provided entity, using up a lot of resources. There are scenarios when only one or two fields need to be updated, e.g. a bulk operation. For such cases, field_attach_update()
can be used.
I found inspiration on this topic on Urban Insight blog by Ki Kim and wanted to try it out in practice.
Example:
<?php
$node = node_load($nid);
$node->field_fieldname[LANGUAGE_NONE][0]['value'] = 'some value';
field_attach_update('node', $node);
entity_get_controller('node')->resetCache(array($node->nid));
?>
It is important to note that this might not trigger the same behaviour as “normal” entity save does, e.g. Rules may not trigger etc. Therefore, use this with caution and only when you know what you are doing. Furthermore, Drupal documentation mentions that caches for the saved entity need to be manually flushed after saving one specific field (see the last line of the code example).
I was curious about the performance implications of this, so I did a small test, running on my local machine, on almost clean Drupal. I ran these tests simply in the Devel Execute PHP Code page, with no change of the setup in between test runs. Ten rounds were done for each variant to get the average run time.
Take 1
“Standard” Drupal API:
<?php
$start = microtime(true);
$node = node_load(1);
$node->field_my_field[LANGUAGE_NONE][0]['value'] = 'Testing stuff 1';
node_save($node);
print(microtime(true) - $start);
?>
Average run time: 0,0534861564636s
Take 2
Using field_attach_update()
:
<?php
$start = microtime(true);
$node = node_load(1);
$node->field_my_field[LANGUAGE_NONE][0]['value'] = 'Testing stuff 2';
field_attach_update('node', $node);
entity_get_controller('node')->resetCache(array($node->nid));
print(microtime(true) - $start);
?>
Average run time: 0,0348172426224s
It seems that using field_attach_update()
may lead to significant performance gains, in my case the average run time was 35% faster than when using node_save()
. This performance gain will differ significantly in different scenarios - amount of concurrent users, server setup, entity complexity (like number of fields) and other factors will have influence on this. Nevertheless, a chance for an improvement like this should always be explored.
Additionally, concurrency issues can be addressed with this approach. While node_save()
updates whole bunch of records across multiple tables, field_attach_update()
updates the required field table only, preventing deadlocks to happen.
Therefore, if using field_attach_update()
suits your situation and needs, I say go for it!


Basic replace tests
2
Apple
Pear
Collection tests
Tom
Dick
Harry
Tom
Larry
Entities
test
Show and hide
Mr
Missing character name
Panel Name
1
2
3
4
5
Panel Name
1
2
3
4
5


{% extends "base_template.html" %} {% block page_content %}
You are donating ${{donation_amount}} for the application {{application.name}}. The donation transaction will be handled by PayPal. Your donation will be split equally among the following charities:
To confirm your donation and begin the transaction, please click the PayPal donate button below or cancel.
{% else %}We're sorry, but an error occurred while setting up your PayPal transaction. Please try again.
{% endif %}


Review: One Night Stand (1997) Rating: 2.5 stars (out of 4.0) ******************************** Key to rating system: 2.0 stars Debatable 2.5 stars Some people may like it 3.0 stars I liked it 3.5 stars I am biased in favor of the movie 4.0 stars I felt the movie's impact personally or it stood out ********************************* A Movie Review by David Sunga
Directed by: Mike Figgis
Written by: Mike Figgis
Starring: Wesley Snipes, Nastassja Kinski, Robert Downey Jr., Ming-Na Wen, and Kyle MacLachlan
Ingredients: Romance, jazzy music
Synopsis: Max (Wesley Snipes) is a director of commercials who has a wife, two kids, a dog, and house in sunny California. Unfortunately, Max is unhappily married. In the beginning of the movie Max is alone in New York to visit his best friend Charlie (Robert Downey Jr.) who has just been diagnosed with AIDS. By chance Max meets a lady scientist named Karen (Nastassja Kinski ) who is attending a convention in New York. Soon romantic sparks fly, and the two have a one night stand. Max flies back home to California and has guilty feelings for a long time. Two years later, Max and his wife Mimi (Ming-Na Wen) are in New York to visit Charlie who now lays dying in the hospital. Max is shocked to see Karen at the hospital; apparently Charlie's brother's wife is none other than Karen. Not only that, but the passion between Max and Karen is alive and well. What will the two of them do about it?
Opinion: Mike Figgis apparently had a big hand in this movie since, he was director, writer, and the guy who composed the jazzy musical score. Did he do a good job? Hmm. Interesting cinematography.  The acting is pretty solid, especially by Robert Downey Jr. as the AIDS victim. The chemistry between Wesley Snipes and Nastassja Kinski is moderate, rather than hot. Similar to ‘When Harry Met Sally' but perhaps not as cohesive, ‘One Night Stand' is one of those ‘life' movies where boy meets girl while jazzy vocals and music play in the background. People who liked ‘When Harry Met Sally' would probably learn towards this movie.
Reviewed by David Sunga November 14, 1997
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


--- title: Maaemo city: Oslo, Norway date: 2022-08-10 mapleft: -499 maptop: -125 listdata: Maaemo was the 32nd restaurant. It was 35th on the list in 2018, 47th on the list in 2021, and is a Michelin 3-star restaurant. idx: 32 ogimage: https://res.cloudinary.com/snookca/image/upload/v1662917907/32-maaemo/L1020375.jpg tags: - post layout: layouts/post.njk ---
It was late February of 2020 and a handful of us were in Oslo to head to Maaemo for their re-opening night in a new location. Alas, we got a call a couple days before that they had an equipment failure in the kitchen and would have to cancel our reservation.
Now, after two years of a pandemic, Jason messaged me to let me know that he and Val were heading back to Oslo and would like to make another attempt at going to Maaemo. An email to the restaurant secured us a reservation and I would use this opportunity to make this the first stop of a month-long tour through Europe to catch up on this adventure.
Thankfully, no kitchen failures this time around.
I made a quick walk over from my Airbnb in the building right next door and met up with Trinne, Jason’s friend, who was invited along for the evening. She and I chatted about coffee while waiting for Jason and Val to arrive. Her partner used to service La Marzocco machines and we bonded over talk of our current machines.
After entering through the grand entrance of the restaurant, we were escorted downstairs into a casual lounge to enjoy some small bites to start off the meal.
The shrimp on brioche was a fantastic beginning, quickly followed by a warm duck leg donut, and then what was probably my favourite of the starters, the pinnekjøtt and spring herbs. After that, dry aged beef with preserved truffle and egg yolk; “lompe”, a potato pancake topped with langoustine and clover; and lastly king crab shoulder served with a bit of caviar on top.
After the intro of dishes, we were escorted upstairs to the main dining room. A central serving station was surrounded by round tables. Soft white feathery fabric lined one wall, creating a relaxed and quiet atmosphere that made it pleasant to carry a conversation in.
First up was an oyster dish, “tradition 2010”, that is their signature dish that had a lovely dill oil that didn't overpower the dish.
Next was the caviar dish. Caviar is one of those things that I don’t think I’ve learned to appreciate between good and great caviar. This dish, for example, was lovely, but would I have thought it just as lovely with different caviar? Likely.
The scallop was perfectly cooked but didn’t wow me. The grilled turbot was tasty and again, perfectly cooked. A solid dish. And next was the lamb that was, again, perfectly cooked. I liked the greenery that accompanied the dish, providing a brighter balance to what can be a heavy dish.
The dish of the night for me was the twelve layer bread. It was paired with an asparagus ragout but the bread was really the star here. I could’ve had another few loaves of this bread.
From here, we transitioned into dessert with Norwegian strawberries and ice cream that had just the right amount of sweetness.
I had done a juice pairing this evening they were decent but ultimately, I didn’t feel like they added much to the meal. I feel like I haven’t found a place that really integrates the juice pairing into the meal in such a way that elevates the entire thing.
We were escorted back down to the lounge where we finished off the evening, and had a rhubarb tart, a brown butter ice cream cornet, and a cinnamon bun that just had to be eaten, no matter how full I was.
The meal ended with some brewed coffee that the server was rightfully very proud of. He selected and roasted the beans himself and was probably the best brewed coffee I’ve ever had. The server had spent some time at Wendelboe, where Noma also sends their servers to train.
The dishes were consistently delicious with a couple exceptional dishes. The service was also fantastic. The venue was comfortable and relaxed. I’d definitely put Maaemo in the top half of the restaurants I’ve been to so far.


Moody’s: Reduced Australian growth forecast to 2.2% for 2020
by Anil PanchalGlobal credit rating agency Moody recently crossed wires while conveying its economic forecasts for the Australian economy. The rating giant downgraded Australia’s growth forecast for the year 202 to 2.2% while forecasting a relatively steady unemployment rate at 5.0%.
While the AUD/USD pair shows less reaction to the news, trading around 0.6810 by the press time of early Monday, this highlights the risk of another rate cut from the Reserve Bank of Australia (RBA). In doing so, the same increases the importance of Tuesday’s RBA monetary policy meeting minutes for the Aussie traders.


--- layout: ocpj8-notes title: Java SE 8 Programmer II - Java Stream API permalink: /:path/:basename ---
Stream<T> peek(Consumer<? super T> action)
Peek is an intermediate operation that returns a stream consisting of the elements of the original stream, and performing the provided action on each element.
According to the API, This method exists mainly to support debugging, where you want to see the elements as they flow past a certain point in a pipeline:
Stream.of("the", "good", "bad", "ugly")
.filter(e -> e.length() > 3)
.peek(e -> System.out.println("Filtered value: " + e))
.map(String::toUpperCase)
.peek(e -> System.out.println("Mapped value: " + e))
.collect(Collectors.toList());
<R> Stream<R> map(Function<? super T,? extends R> mapper)
Map is an intermediate operation that returns a stream consisting of the results of applying the given function to the elements of this stream. Since we're talking about a Function, it's possible to convert the items in the stream to other objects. In other words, for each item you create a new object based on that item.
For example, to convert all strings in the stream to uppercase:
Stream.of("a", "b", "c", "d").map(s -> s.toUpperCase()).forEach(s -> System.out.print(s));
Just like a Function, map() include primitive versions:
IntStream mapToInt(ToIntFunction<? super T> mapper)
LongStream mapToLong(ToLongFunction<? super T> mapper)
DoubleStream mapToDouble(ToDoubleFunction<? super T> mapper)
These methods can be used when you want a stream of these primitive types. For example, consider a stream of elements of this type:
class Employee {
private int id;
private String name;
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
}
We can extract the employee ids directly to a stream of int
in this way:
List<Integer> employeeIds = employees.stream().mapToInt(e -> e.getId()).collect(Collectors.toList());
This works because getInt()
returns an int
, the type expected by mapToInt()
.
We have two types of methods in the Stream API to search for data:
The methods are:
Optional<T> findAny()
This is a short-circuiting terminal operation that returns an Optional representing some element of the stream. This doesn't guarantee to return the first element of a sorted stream.
Optional<T> findFirst()
This is a short-circuiting terminal operation that returns the first element of the stream. If the stream has no order, then any element may be returned.
boolean anyMatch(Predicate<? super T> predicate)
This is a short-circuiting terminal operation that returns whether any elements of this stream match the provided predicate. If the stream is empty, then false is returned and the predicate is not evaluated.
boolean allMatch(Predicate<? super T> predicate)
This is a short-circuiting terminal operation that returns whether all elements of this stream match the provided predicate. If the stream is empty, then true is returned and the predicate is not evaluated.
boolean noneMatch(Predicate<? super T> predicate)
This is a short-circuiting terminal operation that returns whether no elements of this stream match the provided predicate. If the stream is empty, then true is returned and the predicate is not evaluated.
A short-circuiting terminal operation basically means that there's no need to process the entire stream to return a result. As soon as an element that fits the predicate is found or that a result can be inferred, the result is returned.
Here's an example:
Optional<Integer> first = Stream.of(1, 10, 5, 3, 13, 20).filter(i -> i % 2 == 0).findFirst(); //returns 2
Optional<Integer> any = Stream.of(1, 10, 5, 3, 13, 20).filter(i -> i % 2 == 0).findAny(); //can return 10 or 20
boolean any2 = Stream.of(1, 10, 5, 3, 13, 20).anyMatch(i -> i % 3 == 0); //returns true
boolean all = Stream.of(1, 10, 5, 3, 13, 20).allMatch(i -> i % 2 == 0); //returns false
boolean none = Stream.of(1, 10, 5, 3, 13, 20).noneMatch(i -> i % 6 == 0); //returns true
The java.util.Optional<T> class acts as a container which may or may not contain a non-null value.
The main methods of the class are:
isPresent()
that returns true if it contains a non-null value, false otherwise.get()
that returns the non-null value if it contains a non-null value, and throws a NoSuchElementException otherwise. To avoid the exception, before getting the value you must check if the Optional object contains a non-null value.ifPresent(Consumer<? super T> action)
takes a Consumer to perform some operation on the value contained in the Optional. If the Optional is empty or null, it does not perform anything.OptionalInt, OptionalLong, and OptionalDouble deal with optional primitive values.
getAsInt()
method from OptionalInt class returns int value.getAsLong()
method from OptionalLong class return long value.getAsDouble()
method from OptionalDouble class return double value.Some stream operations (like map()
, max()
, min()
, etc.) return optional values with nothing inside if the stream is empty. For example:
OptionalInt min = Stream.of(10, 20, 30, 40).filter(n -> n > 50).min();
if (min.isPresent()) {
System.out.println(min.getAsInt());
} else {
System.out.println("No value");
}
Or if we don't need to print the "No value" message:
OptionalInt min = Stream.of(10, 20, 30, 40).filter(n -> n > 50).min();
min.isPresent(n -> System.out.println(n));
Besides get()
, we have three other methods to obtain values from an Optional:
T orElse(T defaultValue)
Returns the value contained in the Optional. If empty, it returns the specified defaultValue.T orElseGet(Supplier<? extends T> defaultSupplier)
Returns the value contained in the Optional. If empty, it returns the value returned from the specified defaultSupplier.<X extends Throwable> T orElseThrow(Supplier<? extends X> exceptionSupplier) throws X extends Throwable
Returns the value contained in the Optional. If empty, it throws the exception returned from the specified exceptionSupplier.
For example:Stream.of(10, 20, 30, 40).filter(n -> n > 50).min().orElse(0);
Stream.of(10, 20, 30, 40).filter(n -> n > 50).min().orElseGet(() -> logAndReturnDefault());
Stream.of(10, 20, 30, 40).filter(n -> n > 50).min().orElseThrow(Exception::new);
If we are not using streams and we need to create an Optional, there are three methods we can use:
<T> Optional<T> empty()
Returns an empty Optional.<T> Optional<T> of(T value)
Returns an Optional containing the specified value If the value is null, it throws a NullPointerException.<T> Optional<T> ofNullable(T value)
Returns an Optional containing the specified value if the value is non-null. If the specified value is null, it returns an empty Optional.For example:
Optional<String> empty = Optional.empty();
Optional<String> string = Optional.of("Hello");
Optional<String> empty2 = Optional.ofNullable(null);
Optional<T> max(Comparator<? super T> comparator)
Terminal operation that returns the maximum element of this stream according to the provided Comparator wrapped in an Optional object, or an empty Optional if the stream is empty.
Optional<T> min(Comparator<? super T> comparator)
Terminal operation that returns the minimum element of this stream according to the provided Comparator wrapped in an Optional object, or an empty Optional if the stream is empty.
long count()
Terminal operation that returns the count of elements in this stream.
Comparator is a functional interface, so you can create a comparator in the form of a lambda expression. For example:
Comparator<String> byLength = (s1, s2) -> Integer.compare( s1.length(), s2.length());
Optional<String> max = Stream.of("hello","good bye", "black", "white", "good", "bad")
.max(byLength); //returns "good bye"
Optional<String> min = Stream.of("hello","good bye", "black", "white", "good", "bad")
.min(byLength); //returns "bad"
long count = Stream.of("hello","good bye", "black", "white", "good", "bad")
.count(); //returns 6
Calculation methods only work with the primitive versions of Stream: IntStream, LongStream, and DoubleStream. For example, for IntStream the methods are:
int sum()
Terminal operation that returns the sum of elements in the stream.
OptionalInt min()
Terminal operation that returns an OptionalInt describing the minimum element of the stream, or an empty optional if this stream is empty.
OptionalInt max()
Terminal operation that returns an OptionalInt describing the minimum element of the stream, or an empty optional if this stream is empty.
OptionalDouble average()
Terminal operation that returns an OptionalDouble describing the arithmetic mean of elements of the stream, or an empty optional if this stream is empty.
Except for average()
that always returns an OptionalDouble, the other methods return a long and OptionalLong for LongStream, and a double and OptionalDouble for DoubleStream.
Here's an example:
OptionalInt max = IntStream.of(1, 34, 667, 3, 32, 23).max(); // max() returns 667
OptionalInt min = IntStream.of(1, 34, 667, 3, 32, 23).min(); // min() returns 1
OptionalDouble average = IntStream.of(1, 34, 667, 3, 32, 23).average(); // returns 126.66
int sum = IntStream.of(1, 34, 667, 3, 32, 23).sum(); // returns 760
To sort a collection using the method sorted()
from the Stream API, you need a Comparator (there's a version of sorted that takes no arguments that returns a stream with its elements sorted according to natural order).
Comparator is a functional interface, so you can create a comparator in the form of a lambda expression. For example:
Comparator<String> byLength = (s1, s2) -> Integer.compare( s1.length(), s2.length());
Stream.of("hello","good bye", "black", "white", "good", "bad")
.sorted(byLength)
.forEach(s -> System.out.println(s));
The output:
bad
good
hello
black
white
good bye
If you want to compare using multiple criteria, in Java 8 there's a new method to make this easily, Comparator.thenComparing()
:
Comparator<String> byLength = (s1, s2) -> Integer.compare( s1.length(), s2.length());
Comparator<String> byLetters = (s1, s2) -> s1.compareTo(s2);
Stream.of("hello","good bye", "black", "white", "good", "bad")
.sorted(byLength.thenComparing(byLetters))
.forEach(s -> System.out.println(s));
The output:
bad
good
black
hello
white
good bye
Streams have the following method:
collect(Collector<? super T,A,R> collector)
This method performs a mutable reduction operation on the elements of this stream using a Collector.
A mutable reduction operation accumulates (or collects) input elements into a mutable result container, such as a Collection or StringBuilder, as it processes the elements in the stream.
A collect operation requires three functions:
In fact, streams also have the following method that takes the above functions to create our own collect operations:
collect(Supplier<R> supplier, BiConsumer<R,? super T> accumulator, BiConsumer<R,R> combiner)
For example, traditionally, to collect the elements of a list into another list, we could do:
List<String> word = new ArrayList<>();;
List<String> letters = new ArrayList<>();
letters.add("H");
letters.add("e");
letters.add("l");
letters.add("l");
letters.add("o");
for (String s : letters) {
word.add(s.toUpperCase());
}
Now with the collect method:
List<String> letters = new ArrayList<>();
letters.add("H");
letters.add("e");
letters.add("l");
letters.add("l");
letters.add("o");
List<String> word = letters.stream().collect(() -> new ArrayList<>(),
(c, s) -> c.add(s.toUpperCase()),
(c1, c2) -> c1.addAll(c2));
However, there's a class, Collectors, which implements many useful reduction operations. So using Collectors, the code becomes simpler:
List<String> letters = new ArrayList<>();
letters.add("H");
letters.add("e");
letters.add("l");
letters.add("l");
letters.add("o");
List<String> word = letters.stream().map(s -> s.toUpperCase()).collect(Collectors.toList());
Other implementations of Collectors are:
// Accumulate into a TreeSet
Set<String> set = letters.stream()
.map(s -> s.toUpperCase())
.collect(Collectors.toCollection(TreeSet::new));
// Convert elements to strings and concatenate them, separated by commas
String joined = letters.stream()
.map(s -> s.toUpperCase())
.collect(Collectors.joining(", "));
// Compute sum of all letters
int total = letters.stream()
.collect(Collectors.summingInt(s.length())));
// Group by starting letter
Map<String, List<String>> grouped = letters.stream()
.collect(Collectors.groupingBy(s.substring(0,1)));
// Partition letters into uppercase and lowercase
Map<Boolean, List<String>> upperLower = letters.stream()
.collect(Collectors.partitioningBy(s -> Character.isUpperCase(s.codePointAt(0))));
The last method, partitionBy, takes a predicate that returns Map<Boolean, List <String>>
where the key is a boolean and the results are based on the behavior of the predicate. So its output is:
{false=["e","l","l","o"], true=[H]}
<R> Stream<R> flatMap(Function<? super T,? extends Stream<? extends R>> mapper)
This method returns a stream consisting of the results of replacing each element of the original stream with the content of the stream produced by the provided function (if the function returns null, an empty stream is used, instead).
This method is commonly used in one‐to‐many relationships to flatten all the elements into a new stream.
For example, consider the following classes:
class Student {
private int id;
private String name;
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
}
class Course {
private List<Student> students;
private String name;
public List<Student> getStudents() {
return students;
}
public String getName() {
return name;
}
public void setStudents(List<Student> students) {
this.students = students;
}
public void setName(String name) {
this.name = name;
}
}
Assuming there's a list of courses and each course has a list of students that take that course, if we want to aggregate the names of all students taking a course into one stream, the following code will do it:
List<String> students = courses.stream()
.flatMap(course -> course.getStudents().stream()) //Get the students of each course
.map(student -> student.getName()) //Now that we have a stream with all the students, we extract their name
.collect(Collectors.toList());
There are other examples in the javadoc of the method.


The Tragedy of MacBeth
by William Shakespeare
Act 3, Scene 1
Additional Information
- Year Published: 1607
- Language: English
- Country of Origin: England
- Source: Richard Grant White, ed. The Complete Works of William Shakespeare (New York: Sully and Kleinteich)
-
Readability:
- Flesch–Kincaid Level: 11.0
- Word Count: 1,268
- Genre: Tragedy
- Keywords: betrayal, envy, murder, power, revenge, tragedy
- ✎ Cite This
Downloads
SCENE. Forres. The palace.
(Enter BANQUO)
BANQUO
Thou hast it now: king, Cawdor, Glamis, all,
As the weird women promised, and, I fear,
Thou play'dst most foully for't: yet it was said
It should not stand in thy posterity,
But that myself should be the root and father
Of many kings. If there come truth from them—
As upon thee, Macbeth, their speeches shine—
Why, by the verities on thee made good,
May they not be my oracles as well,
And set me up in hope? But hush! no more.
(Sennet sounded. Enter MACBETH, as king, LADY MACBETH, as queen, LENNOX, ROSS, Lords, Ladies, and Attendants)
MACBETH
Here's our chief guest.
LADY MACBETH
If he had been forgotten,
It had been as a gap in our great feast,
And all-thing unbecoming.
MACBETH
To-night we hold a solemn supper sir,
And I'll request your presence.
BANQUO
Let your highness
Command upon me; to the which my duties
Are with a most indissoluble tie
For ever knit.
MACBETH
Ride you this afternoon?
BANQUO
Ay, my good lord.
MACBETH
We should have else desired your good advice,
Which still hath been both grave and prosperous,
In this day's council; but we'll take to-morrow.
Is't far you ride?
BANQUO
As far, my lord, as will fill up the time
'Twixt this and supper: go not my horse the better,
I must become a borrower of the night
For a dark hour or twain.
MACBETH
Fail not our feast.
BANQUO
My lord, I will not.
MACBETH
We hear, our bloody cousins are bestow'd
In England and in Ireland, not confessing
Their cruel parricide, filling their hearers
With strange invention: but of that to-morrow,
When therewithal we shall have cause of state
Craving us jointly. Hie you to horse: adieu,
Till you return at night. Goes Fleance with you?
BANQUO
Ay, my good lord: our time does call upon 's.
MACBETH
I wish your horses swift and sure of foot;
And so I do commend you to their backs. Farewell.

(Exeunt all but MACBETH, and an attendant)
Sirrah, a word with you: attend those men
Our pleasure?
ATTENDANT
They are, my lord, without the palace gate.
MACBETH
Bring them before us.
(Exit Attendant)
To be thus is nothing;
But to be safely thus.—Our fears in Banquo
Stick deep; and in his royalty of nature
Reigns that which would be fear'd: 'tis much he dares;
And, to that dauntless temper of his mind,
He hath a wisdom that doth guide his valour
To act in safety. There is none but he
Whose being I do fear: and, under him,
My Genius is rebuked; as, it is said,
Mark Antony's was by Caesar. He chid the sisters
When first they put the name of king upon me,
And bade them speak to him: then prophet-like
They hail'd him father to a line of kings:
Upon my head they placed a fruitless crown,
And put a barren sceptre in my gripe,
Thence to be wrench'd with an unlineal hand,
No son of mine succeeding. If 't be so,
For Banquo's issue have I filed my mind;
For them the gracious Duncan have I murder'd;
Put rancours in the vessel of my peace
Only for them; and mine eternal jewel
Given to the common enemy of man,
To make them kings, the seed of Banquo kings!
Rather than so, come fate into the list.
And champion me to the utterance! Who's there!
(Re-enter Attendant, with two Murderers)
Now go to the door, and stay there till we call.
(Exit Attendant)
Was it not yesterday we spoke together?
First Murderer
It was, so please your highness.
MACBETH
Well then, now
Have you consider'd of my speeches? Know
That it was he in the times past which held you
So under fortune, which you thought had been
Our innocent self: this I made good to you
In our last conference, pass'd in probation with you,
How you were borne in hand, how cross'd, the instruments,
Who wrought with them, and all things else that might
To half a soul and to a notion crazed
Say 'Thus did Banquo.'
First Murderer
You made it known to us.
MACBETH
I did so, and went further, which is now
Our point of second meeting. Do you find
Your patience so predominant in your nature
That you can let this go? Are you so gospell'd
To pray for this good man and for his issue,
Whose heavy hand hath bow'd you to the grave
And beggar'd yours for ever?
First Murderer
We are men, my liege.
MACBETH
Ay, in the catalogue ye go for men;
As hounds and greyhounds, mongrels, spaniels, curs,
Shoughs, water-rugs and demi-wolves, are clept
All by the name of dogs: the valued file
Distinguishes the swift, the slow, the subtle,
The housekeeper, the hunter, every one
According to the gift which bounteous nature
Hath in him closed; whereby he does receive
Particular addition. from the bill
That writes them all alike: and so of men.
Now, if you have a station in the file,
Not i' the worst rank of manhood, say 't;
And I will put that business in your bosoms,
Whose execution takes your enemy off,
Grapples you to the heart and love of us,
Who wear our health but sickly in his life,
Which in his death were perfect.
Second Murderer
I am one, my liege,
Whom the vile blows and buffets of the world
Have so incensed that I am reckless what
I do to spite the world.
First Murderer
And I another
So weary with disasters, tugg'd with fortune,
That I would set my lie on any chance,
To mend it, or be rid on't.
MACBETH
Both of you
Know Banquo was your enemy.
Both Murderers
True, my lord.
MACBETH
So is he mine; and in such bloody distance,
That every minute of his being thrusts
Against my near'st of life: and though I could
With barefaced power sweep him from my sight
And bid my will avouch it, yet I must not,
For certain friends that are both his and mine,
Whose loves I may not drop, but wail his fall
Who I myself struck down; and thence it is,
That I to your assistance do make love,
Masking the business from the common eye
For sundry weighty reasons.
Second Murderer
We shall, my lord,
Perform what you command us.
First Murderer
Though our lives—
MACBETH
Your spirits shine through you. Within this hour at most
I will advise you where to plant yourselves;
Acquaint you with the perfect spy o' the time,
The moment on't; for't must be done to-night,
And something from the palace; always thought
That I require a clearness: and with him—
To leave no rubs nor botches in the work—
Fleance his son, that keeps him company,
Whose absence is no less material to me
Than is his father's, must embrace the fate
Of that dark hour. Resolve yourselves apart:
I'll come to you anon.
Both Murderers
We are resolved, my lord.
MACBETH
I'll call upon you straight: abide within.
(Exeunt Murderers)
It is concluded. Banquo, thy soul's flight,
If it find heaven, must find it out to-night.
(Exit)


2023 Dirty River Derby
April 26th, 2023
The 2023 installment of the Dirty River Derby was the first meeting of the teams in a few years. Where the series last left off, Cincinnati had been at the bottom of the MLS table with little prospect of moving up. A few years makes a big difference however, with Cincy entering this match sitting second in the MLS eastern conference and a strong record at home. Louisville had continued much as they had in previous years, though with a relative slump early in the USL Championship season.
Louisville came out strong, with multiple shots from Cameron Lancaster and defensive work from Sean Tosch, but could not stand up the full match against Cincinnati, with great runs early on and a game-winning goal from Arquimides Ordonez in the 85th minute.
Cincinnati Win
| Team | W | L | T | GD | Points |
|---|---|---|---|---|---|
| FC Cincinnati | 1 | 0 | 0 | 1 | 3 |
| Louisville City FC | 0 | 1 | 0 | -1 | 0 |
2023 Schedule
| Date | Location | Result |
|---|---|---|
| April 26 | Cincinnati / TQL Stadium | 1-0 |
The Dirty River Derby is the real name for all Cincinnati/Louisville rivalry games played. The Open Cup match will be the only meeting and therefore the only effect on the standings in 2023.
2023 Plastic Cup
- No Plastic Cup this year -
The Plastic Cup is a Supporters tournament played by the Louisville Coopers and Cincinnati Pride before some installments of the DRD. As the 2023 DRD was held on a Wednesday, it was hard to schedule a supporters match.


Place this file in your /Home directory and modify it. This version is the default. Cd;Dir; Cd("::/Doc");Dir; Cd("::/Apps");Dir; MakeAll with BootHDIns(). Cd("::/Kernel");Dir; Cd("::/Compiler");Dir; The ::/StartOS.HC file is compiled during every boot. Cd("::/Adam");Dir; Welcome Help & Index Key Map FastReboot MemRep List all syms in alpabetic order List all syms in numeric order Talons/* Graphics Not Rendered in HTML */


Site Title Here
Content
Nori grape silver beet broccoli kombu beet greens fava bean potato quandong celery. Bunya nuts black-eyed pea prairie turnip leek lentil turnip greens parsnip. Sea lettuce lettuce water chestnut eggplant winter purslane fennel azuki bean earthnut pea sierra leone bologi leek soko chicory celtuce parsley jícama salsify.


South Africa Qualify For U23 AFCON Semis
by Soccer LadumaU23 Africa Cup Of Nations
Result: South Africa 0-0 Nigeria
Date: 15 November 2019
Venue: Al Salam Stadium
South Africa progressed to the U23 Africa Cup of Nations semi-finals after securing a point against Nigeria in their final group game on Friday evening.
Head coach David Notoane made three changes to the side that edged Ivory Coast on Tuesday, with Thabiso Monyane, Siyabonga Ngezana and Athenkosi Dlala earning starts at the expense of Sipho Mbule, Grant Margeman and Kegan Johannes.
After a quiet start, the South Afrians carved their first opening in the 28th minute after Kamohelo Mahlatsi unleashed a curling effort that was parried away by goalkeeper Adamu Abubakar.
Teboho Mokwena came close to breaking the deadlock three minutes before the break with a strike from outside the box that rattled the woodwork.
Nigeria were going hard on tackles early in the second stanza and South Africa had a casualty seven minutes into the second stanza after Lyle Foster was replaced by Keletso Makgalwa.
Makgalwa had a glorious chance to break the deadlock for the South Africans side with 20 minutes remaining after Luther Singh cushioned a cross into his path, but the Mamelodi Sundowns midfielder guided his header wide.
As time marched on, Notoane's had another chance to snatch a late winner in the last four minutes after Makgalwa threaded a through ball that found Singh but the Portugal-based striker missed by a whisker.
In the end, South Africa held on to a get a decisive point that saw them qualify for the semi-finals as the second best team in Group B and sets up a semi-final clash with Egypt on Tuesday.


[gecode-users] Fix IntVar value (MaximizeSpace::cost)
Pascal Francq (Mailing lists)
mailing-list at francq.info
Wed Jan 16 14:43:59 CET 2013
Hi,
I am using GeCode to find a set of parameters that maximize some
function. I inherit therefore from the class 'MaximizeSpace' class. The
problem is that the function to maximize isn't a direct combination of
the parameters determined by GeCode.
So, I need to rewrite the 'virtual IntVar cost(void) const;' method to
compute for each possible combination of the parameters the value of the
function to maximize. But here is my problem : I don't found how to
return this result in the function.
virtual MyClass::IntVar cost(void) const
{
int res(function(C)); // C is an 'IntVarArray'
IntVar ret=res; // <- Here is my problem !!!!!
return(ret);
}
Any idea ?
Thanks.
--
Dr. Pascal Francq
Belgium
More information about the users
mailing list


Red Dead Redemption 2 on PC: More frames, more volumetric beauty, no Steam
Want to get beyond 60fps? Go ahead. Want to buy and load the game on Steam? Not yet.
by Sam MachkovechAfter years of waiting, we finally have a Red Dead Redemption game on Windows PCs... and it's the newer one from October of last year. Tuesday morning marked the PC launch of Red Dead Redemption 2—now available for purchase exclusively through the Rockstar Games Launcher for $60 and up—so we grabbed a copy to see how this PC port turned out.
The meat of it all comes in the attached galleries, which all include near-max settings at native 1440p resolution and the game's temporal anti-aliasing (TAA) toggle turned to "high." I've only tested enough to get through the campaign's opening snowy portion, though the game's built-in benchmark mode (below) includes plenty of outdoor footage.
In good news, RDR2's PC port works as a pretty, settings-cranked-high alternative to last year's console release. Its most obvious upgrade comes in the form of an unlocked frame rate. In one morning of testing, I was already able to crank performance (after downgrading a bunch of settings) to an apparent 120fps-and-up threshold, although random performative spikes—usually triggered by sharp cuts in cinematic scenes—made me glad I had a variable refresh rate monitor.
Otherwise, my 1440p gameplay worked with near-max graphics settings at roughly 70fps, which only required a settings downscale of the game's "distant volumetric" settings (which got me nearly 18% of my frames back with zero apparent difference in terms of visuals). Keep that toggle in mind if you're using a system weaker than mine (i7-8770K, RTX 2080 Ti, 32GB of DDR-3000 RAM, SSD drive).
In bad news, RDR2's facial and body animations were never built for these kinds of high speeds. What looks tolerable and fine enough on a console, locked to 30fps, comes off a bit last-gen when the camera sway and particles run at higher speeds. (To be clear: all animations of up-close characters appear to run at organic speeds, as opposed to some weird lock on 30fps. Whether that's the same for NPCs rendered in the distance isn't yet clear.)
But that's more of an issue during cut scenes than in the live gameplay. Riding a horse, ducking into cover, and pumping vagrants full of shotgun shells feels so much better in this version of the game, especially when you go into your graphics card menu of choice and toggle low-latency settings. RDR2 famously came with control latency issues on console, and while you're not going to get the immediate twitchy response of a shooter in this PC version, we're back in respectable tap-and-response timing thanks to the luxuries of the PC platform.
One more detail about the PC version lands in both the "good" and "bad" news columns: internal resolution scaling.  However, Rockstar has elected not to implement any kind of dynamic resolution scaling system, which could have simplified PC users' efforts to stick to either 30fps or 60fps with fewer hassles. (To be fair, this is consistent with the console versions, which also skipped any dynamic resolution scaling options.)
In order to play this version of RDR2, you'll need to use the Rockstar Games Launcher, either by pumping it full of payment information or by using a partner service like Epic Games Store, which still redirects the game itself to load via RGL. For now, there's no way to purchase or download this game via Steam; Rockstar has clearly followed the likes of Epic, EA, and Ubisoft in using its own launcher to sidestep other retailers' percentage fees. A Steam version will reportedly follow in December of this year, though it looks like it too will require the Rockstar Games Launcher, much like how the Grand Theft Auto V PC version was patched to require RGL earlier this year.
The bad news in the case of RDR2's launch on Rockstar Games Launcher came from the obnoxious pre-load process, which added a painfully long "decryption" process to my Tuesday morning installation. (In spite of my loading the game on my SSD the night before, I still had to wait 40 minutes for its 110GB install to unlock itself.) Other than that, the Launcher worked fine enough, particularly in terms of its cloud save feature working as advertised (though I only tested that on a single extra system as of press time).
Dig through the galleries for more context, including an explainer on how Rockstar has buried the ability to rebind controls until you've loaded the campaign and hit the pause button—better than nothing, but still an accessibility barrier as of press time.
This article has been updated to clarify the ability to rebind controls and the game's availability on third-party services.
Listing image by Rockstar Games


Blexar Slider
A switcher allows a user to select a value from yes or no
Default
With caption
True
False
Tiny
Small
Normal
Large
Massive
Radio buttons


Select the test you want to run. If you dont have any tests in your account then you can go to the
Frugal testing website
and create one.


Written by Victoria Cabales (Medill '19) and Joseph Charney (Medill '20)
Loren Ayala has always been cognizant of the challenges posed by her identity as a low-income and first-generation student. While her parents did not have the opportunity to graduate from high school in Mexico, the Northwestern University Senior has succeeded in her pursuit of a dual degree in civil and environmental engineering. Her pride for these accomplishments is well-deserved. However, growing up, Ayala felt that she was hiding crucial parts of her identity. She realized the importance of her background after joining the peer mentorship program Compass.
Since its inception in the fall of 2015, Compass has connected around 30 students each year who identify as low-income, first-generation, or both. Its year-long peer mentorship program fosters close relationships and a crucial support system among participating students. Freshmen apply to be mentees of trained Junior and Senior members when they begin the academic year. Their mentors help them navigate through the unique struggles they encounter throughout college.
Ayala is one of these mentors, and she said that her experience as a Compass mentor has been eye-opening. Prior to the program’s inception, she felt that she did not have access to a platform to talk about her experiences as a low-income and first-gen student . From the discussions at Compass events, she has noticed the ways she had been silent about her identity, and she now feels empowered to be more outspoken.
“Being part of [the Compass] community really opened my eyes to what it’s like to be an activist to pursue a transformation on campus that is really necessary,” Ayala said.
In an article published by The Washington Post in 2015, a study claims that first-generation students struggle with feelings of guilt , citing that 69 percent of these students attend college to help their families. Ayala said that her role as a mentor in Compass addresses this concern by encouraging her mentees to pursue their intellectual passion rather than monetary wealth.
“One thing that Compass is very cognizant about is that being first-gen and/or low-income puts this pressure on students to pursue a grandiose field, something that will be recognizable, that will bring them wealth,” Ayala said. “But part of what Compass does is help you realize you need to pursue what makes you happy… As mentors, we encourage students to explore outside of the mindset that they have.”
As a result, Compass provides the resources low-income and first-gen students need in order to pursue their own vision of success. This caring relationship has fostered a sense of community and comfort amongst its members.
In addition to establishing meaningful peer mentoring connections, Compass also guides its members through unique logistical struggles. Student Enrichment Services (SES) Director Kourtney Cockrell has organized events in which these students can meet professors who come from low-income, first-gen backgrounds. These events help students become more comfortable with expressing the circumstances of their situations, and Alaya said that she is thankful for the program’s impact.
“It’s important to recognize that there are low income students on campus, that there are first-gen students,” Ayala said. “Because of those identities, there are a lot of unique challenges that this university is not equipped to deal with. The importance of Compass is really bringing that to light and guiding not only the institution, but also the student body and the faculty.”
While Compass is a mentoring resource designed to navigate specific challenges of the Northwestern experience, similar programs exist for other students. The program Project SOAR, for example, connects disadvantaged youth from Evanston to older role models who they otherwise may not have met.
Elise Roug, coordinator for the Mcgaw YMCA Project SOAR, relies heavily on Northwestern students to facilitate this one-on-one mentoring program with Evanston youth. Of all of the mentors involved with Project Soar, an overwhelming majority are Northwestern Students, roughly 65 out of 75. The YMCA has a partnership with Northwestern’s work-study department, allowing these students to fulfill their work-study requirements while giving back to the Evanston community.
“A majority of our referrals are from District 65 social workers,” Roug said about the mentees, who range from fourth grade students to high schoolers. “We also partner with some community organizations as well, like metropolitan family services and a grief center.”
With an annual family survey given to the parents or guardians of the mentees, Roug sees firsthand the extent to which mentoring improves the social/emotional skills and academic efforts of the children.
“We would see a rise in self-esteem with these kids, a rise in their grades and academic performance, and a rise in social engagement and feelings of being connected to an adult outside the family,” Roug said.
Northwestern students participating in the program have also said that Project SOAR is a positive experience from a mentor’s perspective.
Jason Chen, a Northwestern Senior majoring in environmental science, said that the program has helped him learn about the diversity of Evanston.
“We are in our own little bubble in Northwestern,” Chen said. “Our vision of Evanston is this very privileged, often white socioeconomic area surrounding the campus. When in actuality, Evanston is pretty diverse.”
Chen enjoys learning more about the Evanston community through his mentee, and he believes that he has made an impact on the seventh grader’s life. Overall, he has found his experience as a mentor to be rewarding.
“It’s really great to connect with my mentee because he’s a great, great guy,” Chen said. “But he doesn’t really have a big male role model in his life. Even little bits of effort and time here and there can make a big effort in someone’s life and go a far way.”
In addition to mentorship for members of disadvantaged communities, similar programs exist to help individuals achieve their career goals. Such programs empower their mentees by providing guidance and resources that answer their questions.
Ben Hancock, senior associate director for Northwestern’s Network Alumni Mentorship program, is spearheading a brand new initiative that provides such a service. His mentoring program is designed to bolster the professional connections between Northwestern students and alumni.
“We launched the pilot phase in January of 2016. It evolved very organically in the way that we structured it because we wanted to make sure that we were meeting alumni and student needs across the board,” Hancock said.
The initiative, tailored specifically to Northwestern but modeled after Stanford University’s alumni mentoring platform, is uniquely customizable. Students and alumni are matched based on very specific criteria that each of them select, ranging from personal demographics to area of expertise. Services offered include resume reviews, experiential recommendations, and advice on pursuing graduate school. Mentoring tailored specifically for first-generation and low-income students is also offered.
Hancock said that the turnout for the alumni mentorship program far exceeded his expectations. He said that approximately 4,000 alumni mentors and mentees have registered, along with 1,800 currently enrolled Northwestern students. However, he anticipated that only about 1,000 individuals would participate in the program within one year of its inception.
Hancock believes that the program’s emphasis on providing a comfortable space has driven the program’s success.
“We all have questions regarding career-related goals. It’s good to know that there’s someone who’s willing to talk to them and guide them. It’s nice to have a friendly face,” Hancock said.
Despite the diverse range of peer mentorship programs that are offered at Northwestern alone, the programs are all tied by their ability to create a sense of community and comfortability. The close-knit relationships built by mentor-mentee relationships result in a tangible, beneficial impact.
According to a 2014 study commissioned by MENTOR: The National Mentoring Partnership with support from AT&T, young adults who have a mentor are 55 percent more likely to attend college. A later study conducted by the same organization reported that mentorship programs can help participants develop specific career skills and gain exposure to STEM topics.
Damilola Arowolaju, a junior at Northwestern majoring in social policy, agreed that his time spent as a mentor for Compass has impacted him in a meaningful way.
“The stuff I do with the mentees and other mentors translates into other aspects of my life. It makes me more mindful of the things I do and the way I interact with people,” Arowolaju said.


You can get links from the
Qobuz online player
or from the
Qobuz Store
.
Quality:
MP3
FLAC
24bits <96kHz
24bits >96kHz
Url:
Username:
Password:
Download
Download Zip
Clean
Paste the url and either click on the "Download" or "Download Zip" button.


- RATE_106K - Static variable in interface com.cloudpos.rfcardreader.RFCardReaderDevice
-
- RATE_1667K - Static variable in interface com.cloudpos.rfcardreader.RFCardReaderDevice
-
1667 kbps speed rate (active mode only) used with
PARAM_SPEED
- RATE_212K - Static variable in interface com.cloudpos.rfcardreader.RFCardReaderDevice
-
- RATE_3390K - Static variable in interface com.cloudpos.rfcardreader.RFCardReaderDevice
-
3390 kbps speed rate (active mode only) used with
PARAM_SPEED
- RATE_424K - Static variable in interface com.cloudpos.rfcardreader.RFCardReaderDevice
-
- RATE_6670K - Static variable in interface com.cloudpos.rfcardreader.RFCardReaderDevice
-
6670 kbps speed rate (active mode only) used with
PARAM_SPEED
- RATE_848K - Static variable in interface com.cloudpos.rfcardreader.RFCardReaderDevice
-
848 kbps speed rate (active mode only) used with
PARAM_SPEED
- read(int) - Method in interface com.cloudpos.card.MifareUltralightCard
-
Read 4 blocks (16 bytes).
- read(int, int, int) - Method in interface com.cloudpos.card.SLE4442Card
-
Reads data.
- READ_ERROR - Static variable in interface com.cloudpos.msr.MSRTrackData
-
Read error track error constant.
- readBlock(int, int) - Method in interface com.cloudpos.card.MifareCard
-
Reads the data in some block.
- readValue(int, int) - Method in interface com.cloudpos.card.MifareCard
-
Reads data from E-Wallet.
- RED - Static variable in interface com.cloudpos.led.LEDDeviceSpec
-
- remove(String) - Method in class com.cloudpos.printer.Format
-
remove one format parameter.
- REQUEST_PENDING - Static variable in exception com.cloudpos.DeviceException
-
A previous request through this device object has not been completed.
- resetDisplay() - Method in interface com.cloudpos.secondarydisplay.SecondaryDisplayDevice
-
Reset the default display of the secondary display.
- retrieveCTS() - Method in interface com.cloudpos.serialport.SerialPortDevice
-
Retrieves the state of the CTS (Clear To Send) bit in the UART.
- retrieveRTS() - Method in interface com.cloudpos.serialport.SerialPortDevice
-
Retrieves the state of the RTS (Request To Send) bit in the UART.
- RFCardReaderDevice - Interface in com.cloudpos.rfcardreader
-
The RFCardReaderDevice interface defines the RFCard reader APIs to be used by the applications.
- RFCardReaderDeviceSpec - Interface in com.cloudpos.rfcardreader
-
The RFCardReaderDeviceSpec interface defines the specification of the contactless card reader device.
- RFCardReaderOperationResult - Interface in com.cloudpos.rfcardreader
-
RFCardReaderOperationResult
s are generated by the RFCard reader device implementation
to notify the application of the completion of an operation.


This is the documentation of the legacy client library which is under the maintenance support only.
No new updates will be made to this documentation and legacy client library.
It is highly recommended going to the new documentation.
{%- if show_copyright %} {%- if hasdoc('copyright') %} {% set path = pathto('copyright') %} {% set copyright = copyright|e %} © {% trans %}Copyright{% endtrans %} {{ copyright }} {%- else %} {% set copyright = copyright|e %} © {% trans %}Copyright{% endtrans %} {{ copyright }} {%- endif %} {%- endif %}


---
layout: portal
category: reject
tags: reject
id: 96
imgurl: https://lh6.ggpht.com/WiuOJEFl04otvEahtJ29kjp8hFiDezJXaZqrc_FKwN6e6oEfDPmQXq9RVFc1YJvk5Wi4HT3l59LICq-F5cPV
portalname: 戦没者慰霊碑
sentdate: Sat Apr 11 08:27:41 JST 2015
title: 96 - 戦没者慰霊碑
---
From: Ingress Operations<EMAIL_ADDRESS>Date: 2015-04-11 2:33 GMT+09:00
Subject: Ingress Portal Rejected: 戦没者慰霊碑
To: **
Thank you for your Portal submission. However, this Portal candidate does not meet the criteria required for approval.
Please refer to New Portal Submission criteria at our Help Center for further information.


#include <btOverlappingPairCache.h>
Public Member Functions | |
| btBroadphasePair * | findPair (btBroadphaseProxy *proxy0, btBroadphaseProxy *proxy1) |
Protected Attributes | |
| bool | m_hasDeferredRemoval |
| by default, do the removal during the pair traversal |
Definition at line 281 of file btOverlappingPairCache.h.
| btBroadphasePair * btSortedOverlappingPairCache::findPair | ( | btBroadphaseProxy * | proxy0, | |
| btBroadphaseProxy * | proxy1 | |||
| ) | [virtual] |
this findPair becomes really slow. Either sort the list to speedup the query, or use a different solution. It is mainly used for Removing overlapping pairs. Removal could be delayed. we could keep a linked list in each proxy, and store pair in one of the proxies (with lowest memory address) Also we can use a 2D bitmap, which can be useful for a future GPU implementation
Implements btOverlappingPairCache.
Definition at line 485 of file btOverlappingPairCache.cpp.
References btAlignedObjectArray< T >::findLinearSearch(), and btAlignedObjectArray< T >::size().
00486 { 00487 if (!needsBroadphaseCollision(proxy0,proxy1)) 00488 return 0; 00489 00490 btBroadphasePair tmpPair(*proxy0,*proxy1); 00491 int findIndex = m_overlappingPairArray.findLinearSearch(tmpPair); 00492 00493 if (findIndex < m_overlappingPairArray.size()) 00494 { 00495 //btAssert(it != m_overlappingPairSet.end()); 00496 btBroadphasePair* pair = &m_overlappingPairArray[findIndex]; 00497 return pair; 00498 } 00499 return 0; 00500 }


Verification module of Pact.
Parameters:
| Name | Type | Description |
|---|---|---|
consumer |
String | the name of the consumer |
provider |
String | the name of the provider |
- Source:
Methods
(inner) interaction()
Creates an Interaction, adds to its internal collection and returns that Interaction.
- Source:
Returns:
(inner) verify(integrationFn) → {Promise}
Executes a promise chain that will eventually write the Pact file if successful.
Parameters:
| Name | Type | Description |
|---|---|---|
integrationFn |
function | the function that triggers a HTTP request to the provider |
- Source:
Returns:
- Type
- Promise


{% if confirmation %} {# TODO confirm dialog should have click outside set to cancel it, and should be modal #}
{{confirmation.question}}


DAVE A film review by James Berardinelli Copyright 1993 James Berardinelli
Rating: 9.1 (A, ***1/2)
Date Released: 5/7/93 Running Length: 1:54 Rated: PG-13 (Mature themes, discreet nudity)
Starring: Kevin Kline, Sigourney Weaver, Frank Langella, Kevin Dunn, Ving Rhames, Ben Kingsley Director: Ivan Reitman Producers: Lauren Shuler-Donner and Ivan Reitman Screenplay: Gary Ross Music: James Newton-Howard Released by Warner Brothers
Bill Mitchell (Kevin Kline) is the forty-forth President of the United States. On a night when he wants to engage in an away-from-the-office fling with one of his female assistants, he arranges for Dave (also played by Kevin Kline), his virtual double, to impersonate him. Unfortunately, during the course of his night of passion, the President has a massive stroke that leaves him in a coma. Two of his aides (Frank Langella and Kevin Dunn), unwilling to give up the power they have amassed during Mitchell's term, persuade Dave to stay on and continue his masquerade for an undetermined period of time. He agrees and his subsequent performance is good enough to fool even the First Lady (Sigourney Weaver). Problems begin, however, when Dave starts to act like a leader--and a compassionate one at that--instead of the puppet that his Chief of Staff wants him to be.
As far as Hollywood is concerned, Ivan Reitman has the Midas Touch. Not only do his films deliver big laughs to the audience, but they bring in lots of money to the production companies. His string of hits is impressive, including such titles as ANIMAL HOUSE (which he produced but did not direct), GHOSTBUSTERS I and II (produced and directed), TWINS (produced and directed), and KINDERGARTEN COP (produced and directed). He was also responsible for last years profitable-but-moronic animal film BEETHOVEN.
DAVE is a departure for Reitman. The comedy of this film takes a more adult path than anything he's done in the past. Nevertheless, DAVE is proof that predictable movies with only a marginally original premise can still be tremendous fun. Reitman, along with screenwriter Gary Ross (BIG), have fashioned a highly-enjoyable, fresh, and energetic motion picture that even the most hard-bitten cynic would be hard-pressed to condemn. DAVE isn't just a good movie; it's an excellent one.
For the most part, the comedy in DAVE works, due in part to the performances of a cast of veterans. Kevin Kline shows a marvelous sense of comic timing and delivery, Sigourney Weaver does a good job playing her role straight, Frank Langella is perfectly over-the-top as the "frothing at the mouth" villain, and Ving Rhames delivers a deadpan performance as a no-nonsense Secret Service Agent.
There's time for a political message or two, but these are all kept low-key and never allowed to interfere with the pacing of the film. DAVE is first and foremost a comedy, and drama is only allowed to interfere on those rare occasions when it's absolutely needed.
The list of cameos for this film range from Arnold Schwarzenegger to Tip O'Neil, with about three dozen Washington insiders, celebrities, and Senators in between. What THE PLAYER did for Hollywood, DAVE does for America's capital. Larry King and Jay Leno have appearances, and Oliver Stone gets to poke fun at his image by pontificating about a conspiracy he senses to be brewing at the summit of the United States' governmental pyramid.
DAVE is a film that is so well-crafted that its obvious shortcomings are easily overlooked. Likeability overcomes originality. This isn't a movie where we want a twisty, complex plot filled with unexpected revelations. The familiar territory of DAVE's story is perfect for the subject matter. Just a shade away from following a formula, the film is comfortable without ever being dull. DAVE is pure, unfettered entertainment--something that's been all-too-rare on movie screens thus far in 1993.
- James Berardinelli<EMAIL_ADDRESS>.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


The Girl Who Invented Kissing
The Girl Who Invented Kissing is a movie starring Vincent Piazza, Dash Mihok, and Suki Waterhouse. This movie is the story of a nameless, pill-popping drifter girl who steps off a bus and into a neighborhood bar owned by two...


| Package | Description |
|---|---|
| com.destroystokyo.paper.entity | |
| com.destroystokyo.paper.event.entity | |
| io.papermc.paper.event.entity | |
| io.papermc.paper.event.player | |
| org.bukkit.block |
Classes used to manipulate the voxels in a
world ,
including special states. |
| org.bukkit.entity |
Interfaces for non-voxel objects that can exist in a
world , including all players, monsters, projectiles, etc. |
| org.bukkit.event.block | |
| org.bukkit.event.entity | |
| org.bukkit.event.vehicle |
Events relating to vehicular entities . |
| org.bukkit.potion |
Classes to represent various
potion
properties and manipulation. |
| org.bukkit.util |
Multi and single purpose classes to facilitate various programmatic
concepts.
|
| Modifier and Type | Interface and Description |
|---|---|
interface |
RangedEntity |
| Modifier and Type | Method and Description |
|---|---|
@Nullable Pathfinder.PathResult |
Pathfinder.findPath(@NotNull LivingEntity target)
Calculates a destination for the Entity to navigate to to reach the target entity,
but does not set it as the current target.
|
default boolean |
Pathfinder.moveTo(@NotNull LivingEntity target)
Calculates a destination for the Entity to navigate to to reach the target entity,
and sets it with default speed.
|
default boolean |
Pathfinder.moveTo(@NotNull LivingEntity target,
double speed)
Calculates a destination for the Entity to navigate to to reach the target entity,
and sets it with specified speed.
|
void |
RangedEntity.rangedAttack(@NotNull LivingEntity target,
float charge)
Attack the specified entity using a ranged attack.
|
| Modifier and Type | Method and Description |
|---|---|
@NotNull LivingEntity |
EntityKnockbackByEntityEvent.getEntity() |
@NotNull LivingEntity |
EntityJumpEvent.getEntity() |
@NotNull LivingEntity |
WitchThrowPotionEvent.getTarget() |
@NotNull LivingEntity |
SlimeTargetLivingEntityEvent.getTarget()
Get the targeted entity
|
| Constructor and Description |
|---|
EntityJumpEvent(@NotNull LivingEntity entity) |
EntityKnockbackByEntityEvent(@NotNull LivingEntity entity,
@NotNull Entity hitBy,
float knockbackStrength,
@NotNull Vector acceleration) |
SlimeTargetLivingEntityEvent(@NotNull Slime slime,
@NotNull LivingEntity target) |
WitchThrowPotionEvent(@NotNull Witch witch,
@NotNull LivingEntity target,
@Nullable ItemStack potion) |
| Modifier and Type | Method and Description |
|---|---|
@NotNull LivingEntity |
EntityLoadCrossbowEvent.getEntity() |
@NotNull LivingEntity |
EntityMoveEvent.getEntity() |
| Constructor and Description |
|---|
EntityLoadCrossbowEvent(@NotNull LivingEntity entity,
@Nullable ItemStack crossbow,
@NotNull EquipmentSlot hand) |
EntityMoveEvent(@NotNull LivingEntity entity,
@NotNull Location from,
@NotNull Location to) |
| Modifier and Type | Method and Description |
|---|---|
@NotNull LivingEntity |
PlayerNameEntityEvent.getEntity()
Gets the entity involved in this event.
|
| Modifier and Type | Method and Description |
|---|---|
void |
PlayerNameEntityEvent.setEntity(@NotNull LivingEntity entity)
Sets the entity involved in this event.
|
| Constructor and Description |
|---|
PlayerNameEntityEvent(@NotNull Player player,
@NotNull LivingEntity entity,
@NotNull net.kyori.adventure.text.Component name,
boolean persistent) |
| Modifier and Type | Method and Description |
|---|---|
void |
Structure.setAuthor(@NotNull LivingEntity livingEntity)
Set the name of whoever created this structure using a
LivingEntity . |
| Modifier and Type | Interface and Description |
|---|---|
interface |
AbstractHorse
Represents a Horse-like creature.
|
interface |
AbstractVillager
Represents a villager NPC
|
interface |
Ageable
Represents an entity that can age.
|
interface |
Ambient
Represents an ambient mob
|
interface |
Animals
Represents an Animal.
|
interface |
ArmorStand |
interface |
Bat
Represents a Bat
|
interface |
Bee
Represents a Bee.
|
interface |
Blaze
Represents a Blaze monster
|
interface |
Breedable
Represents an entity that can age and breed.
|
interface |
Cat
Meow.
|
interface |
CaveSpider
Represents a Spider.
|
interface |
ChestedHorse
Represents Horse-like creatures which can carry an inventory.
|
interface |
Chicken
Represents a Chicken.
|
interface |
Cod
Represents a cod fish.
|
interface |
ComplexLivingEntity
Represents a complex living entity - one that is made up of various smaller
parts
|
interface |
Cow
Represents a Cow.
|
interface |
Creature
Represents a Creature.
|
interface |
Creeper
Represents a Creeper
|
interface |
Dolphin |
interface |
Donkey
Represents a Donkey - variant of
ChestedHorse . |
interface |
Drowned
Drowned zombie.
|
interface |
ElderGuardian
Represents an ElderGuardian - variant of
Guardian . |
interface |
EnderDragon
Represents an Ender Dragon
|
interface |
Enderman
Represents an Enderman.
|
interface |
Endermite |
interface |
Evoker
Represents an Evoker "Illager".
|
interface |
Fish
Represents a fish entity.
|
interface |
Flying
Represents a Flying Entity.
|
interface |
Fox
What does the fox say?
|
interface |
Ghast
Represents a Ghast.
|
interface |
Giant
Represents a Giant.
|
interface |
Golem
A mechanical creature that may harm enemies.
|
interface |
Guardian |
interface |
Hoglin
Represents a Hoglin.
|
interface |
Horse
Represents a Horse.
|
interface |
HumanEntity
Represents a human entity, such as an NPC or a player
|
interface |
Husk
Represents a Husk - variant of
Zombie . |
interface |
Illager
Represents a type of "Illager".
|
interface |
Illusioner
Represents an Illusioner "Illager".
|
interface |
IronGolem
An iron Golem that protects Villages.
|
interface |
Llama
Represents a Llama.
|
interface |
MagmaCube
Represents a MagmaCube.
|
interface |
Mob
Represents a Mob.
|
interface |
Monster
Represents a Monster.
|
interface |
Mule
Represents a Mule - variant of
ChestedHorse . |
interface |
MushroomCow
Represents a mushroom
Cow |
interface |
NPC
Represents a non-player character
|
interface |
Ocelot
A wild tameable cat
|
interface |
Panda
Panda entity.
|
interface |
Parrot
Represents a Parrot.
|
interface |
Phantom
Represents a phantom.
|
interface |
Pig
Represents a Pig.
|
interface |
Piglin
Represents a Piglin.
|
interface |
PiglinAbstract
Piglin / Piglin Brute.
|
interface |
PiglinBrute
Represents a Piglin Brute.
|
interface |
PigZombie
Represents a Pig Zombie.
|
interface |
Pillager
Illager entity.
|
interface |
Player
Represents a player, connected or not
|
interface |
PolarBear
Represents a polar bear.
|
interface |
PufferFish
Represents a puffer fish.
|
interface |
Rabbit |
interface |
Raider |
interface |
Ravager
Illager beast.
|
interface |
Salmon
Represents a salmon fish.
|
interface |
Sheep
Represents a Sheep.
|
interface |
Shulker |
interface |
Silverfish
Represents a Silverfish.
|
interface |
Skeleton
Represents a Skeleton.
|
interface |
SkeletonHorse
Represents a SkeletonHorse - variant of
AbstractHorse . |
interface |
Slime
Represents a Slime.
|
interface |
Snowman
Represents a snowman entity
|
interface |
Spellcaster
Represents a spell casting "Illager".
|
interface |
Spider
Represents a Spider.
|
interface |
Squid
Represents a Squid.
|
interface |
Steerable
Represents an entity which may be saddled, ridden and steered using an item.
|
interface |
Stray
Represents a Stray - variant of
Skeleton . |
interface |
Strider
Represents a Strider.
|
interface |
Tameable |
interface |
TraderLlama
Represents a trader Llama.
|
interface |
TropicalFish
Tropical fish.
|
interface |
Turtle
Represents a turtle.
|
interface |
Vex
Represents a Vex.
|
interface |
Villager
Represents a villager NPC
|
interface |
Vindicator
Represents a Vindicator.
|
interface |
WanderingTrader
Represents a wandering trader NPC
|
interface |
WaterMob
Represents a Water Mob
|
interface |
Witch
Represents a Witch
|
interface |
Wither
Represents a Wither boss
|
interface |
WitherSkeleton
Represents a WitherSkeleton - variant of
Skeleton . |
interface |
Wolf
Represents a Wolf
|
interface |
Zoglin
Represents a Zoglin.
|
interface |
Zombie
Represents a Zombie.
|
interface |
ZombieHorse
Represents a ZombieHorse - variant of
AbstractHorse . |
interface |
ZombieVillager
|
| Modifier and Type | Method and Description |
|---|---|
@Nullable LivingEntity |
Firework.getBoostedEntity()
If this firework is boosting an entity, return it
|
@Nullable LivingEntity |
EvokerFangs.getOwner()
Gets the
LivingEntity which summoned the fangs. |
@Nullable LivingEntity |
Mob.getTarget()
Gets the current target of this Mob
|
| Modifier and Type | Method and Description |
|---|---|
void |
EvokerFangs.setOwner(@Nullable LivingEntity owner)
Sets the
LivingEntity which summoned the fangs. |
void |
Mob.setTarget(@Nullable LivingEntity target)
Instructs this Mob to set the specified LivingEntity as its target.
|
| Modifier and Type | Method and Description |
|---|---|
@NotNull LivingEntity |
BlockDispenseArmorEvent.getTargetEntity()
Get the living entity on which the armor was dispensed.
|
| Constructor and Description |
|---|
BlockDispenseArmorEvent(@NotNull Block block,
@NotNull ItemStack dispensed,
@NotNull LivingEntity target) |
| Modifier and Type | Method and Description |
|---|---|
@Nullable LivingEntity |
EntityBreedEvent.getBreeder()
Gets the Entity responsible for breeding.
|
@NotNull LivingEntity |
EntityDeathEvent.getEntity() |
@NotNull LivingEntity |
EntityResurrectEvent.getEntity() |
@NotNull LivingEntity |
CreatureSpawnEvent.getEntity() |
@NotNull LivingEntity |
EntityCreatePortalEvent.getEntity()
Deprecated.
|
@NotNull LivingEntity |
EntityBreakDoorEvent.getEntity() |
@NotNull LivingEntity |
ArrowBodyCountChangeEvent.getEntity() |
@NotNull LivingEntity |
EntityTameEvent.getEntity() |
@NotNull LivingEntity |
EntityPickupItemEvent.getEntity() |
@NotNull LivingEntity |
EntityShootBowEvent.getEntity() |
@NotNull LivingEntity |
EntityBreedEvent.getEntity() |
@NotNull LivingEntity |
EntityBreedEvent.getFather()
Gets the other parent of the newly born entity.
|
@NotNull LivingEntity |
EntityBreedEvent.getMother()
Gets the parent creating this entity.
|
@Nullable LivingEntity |
EntityTargetLivingEntityEvent.getTarget() |
| Modifier and Type | Method and Description |
|---|---|
double |
PotionSplashEvent.getIntensity(@NotNull LivingEntity entity)
Gets the intensity of the potion's effects for given entity; This
depends on the distance to the impact center
|
void |
PotionSplashEvent.setIntensity(@NotNull LivingEntity entity,
double intensity)
Overwrites the intensity for a given entity
|
| Modifier and Type | Method and Description |
|---|---|
@NotNull LivingEntity |
VehicleExitEvent.getExited()
Get the living entity that exited the vehicle.
|
| Constructor and Description |
|---|
VehicleExitEvent(@NotNull Vehicle vehicle,
@NotNull LivingEntity exited) |
VehicleExitEvent(@NotNull Vehicle vehicle,
@NotNull LivingEntity exited,
boolean isCancellable) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
PotionEffect.apply(@NotNull LivingEntity entity)
Attempts to add the effect represented by this object to the given
LivingEntity . |
void |
Potion.apply(@NotNull LivingEntity to)
Deprecated.
Applies the effects that would be applied by this potion to the given
LivingEntity . |
| Constructor and Description |
|---|
BlockIterator(@NotNull LivingEntity entity)
Constructs the BlockIterator.
|
BlockIterator(@NotNull LivingEntity entity,
int maxDistance)
Constructs the BlockIterator.
|
Copyright © 2021. All rights reserved.