#-----------------------------------------------------------------------------
# Copyright (c) 2012 - 2018, Anaconda, Inc. All rights reserved.
#
# Powered by the Bokeh Development Team.
#
# The full license is in the file LICENSE.txt, distributed with this software.
#-----------------------------------------------------------------------------
''' Provide a base class for all objects (called Bokeh Models) that can go in
a Bokeh |Document|.
'''
#-----------------------------------------------------------------------------
# Boilerplate
#-----------------------------------------------------------------------------
from __future__ import absolute_import, division, print_function, unicode_literals
import logging
log = logging.getLogger(__name__)
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
# Standard library imports
from json import loads
from operator import itemgetter
# External imports
from six import iteritems, string_types
# Bokeh imports
from .core.json_encoder import serialize_json
from .core.properties import Any, Dict, Instance, List, String
from .core.has_props import HasProps, MetaHasProps
from .core.query import find
from .events import Event
from .themes import default as default_theme
from .util.callback_manager import PropertyCallbackManager, EventCallbackManager
from .util.future import with_metaclass
from .util.serialization import make_id
#-----------------------------------------------------------------------------
# Globals and constants
#-----------------------------------------------------------------------------
__all__ = (
'collect_models',
'get_class',
)
#-----------------------------------------------------------------------------
# General API
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Dev API
#-----------------------------------------------------------------------------
[docs]def collect_models(*input_values):
''' Collect a duplicate-free list of all other Bokeh models referred to by
this model, or by any of its references, etc.
Iterate over ``input_values`` and descend through their structure
collecting all nested ``Models`` on the go. The resulting list is
duplicate-free based on objects' identifiers.
Args:
*input_values (Model)
Bokeh models to collect other models from
Returns:
list[Model] : all models reachable from this one.
'''
ids = set([])
collected = []
queued = []
def queue_one(obj):
if obj._id not in ids:
queued.append(obj)
for value in input_values:
_visit_value_and_its_immediate_references(value, queue_one)
while queued:
obj = queued.pop(0)
if obj._id not in ids:
ids.add(obj._id)
collected.append(obj)
_visit_immediate_value_references(obj, queue_one)
return collected
[docs]def get_class(view_model_name):
''' Look up a Bokeh model class, given its view model name.
Args:
view_model_name (str) :
A view model name for a Bokeh model to look up
Returns:
Model: the model class corresponding to ``view_model_name``
Raises:
KeyError, if the model cannot be found
Example:
.. code-block:: python
>>> from bokeh.model import get_class
>>> get_class("Range1d")
<class 'bokeh.models.ranges.Range1d'>
'''
# in order to look up from the model catalog that MetaModel maintains, it
# has to be creates first. These imports ensure that all built-in Bokeh
# models are represented in the catalog.
from . import models; models
from .plotting import Figure; Figure
d = MetaModel.model_class_reverse_map
if view_model_name in d:
return d[view_model_name]
else:
raise KeyError("View model name '%s' not found" % view_model_name)
#-----------------------------------------------------------------------------
# Dev API
#-----------------------------------------------------------------------------
class MetaModel(MetaHasProps):
''' Specialize the construction of |Model| classes.
This class is a `metaclass`_ for |Model| that is responsible for
automatically cataloging all Bokeh models that get defined, so that the
serialization machinery between Bokeh and BokehJS can function properly.
.. note::
It is worth pointing out explicitly that this relies on the rules
for Metaclass inheritance in Python.
Bokeh works by replicating Python model objects (e.g. plots, ranges,
data sources, which are all |HasProps| subclasses) into BokehJS. In the
case of using a Bokeh server, the Bokeh model objects can also be
synchronized bidirectionally. This is accomplished by serializing the
models to and from a JSON format, that includes the name of the model type
as part of the payload, as well as a unique ID, and all the attributes:
.. code-block:: javascript
{
type: "Plot",
id: 100032,
attributes: { ... }
}
Typically the type name is inferred automatically from the Python class
name, and is set as the ``__view_model__`` class attribute on the Model
class that is create. But it is also possible to override this value
explicitly:
.. code-block:: python
class Foo(Model): pass
class Bar(Model):
__view_model__ == "Quux"
This metaclass will raise an error if two Bokeh models are created that
attempt to have the same view model name. The only exception made is if
one of the models has a custom ``__implementation__`` in its class
definition.
This metaclass also handles subtype relationships between Bokeh models.
Occasionally it may be necessary for multiple class types on the Python
side to resolve to the same type on the BokehJS side. This is called
subtyping, and is expressed through a ``__subtype__`` class attribute on
a model:
.. code-block:: python
class Foo(Model): pass
class Bar(Foo):
__view_model__ = "Foo"
__subtype__ = "Bar"
In this case, python instances of ``Foo`` and ``Bar`` will both resolve to
``Foo`` models in BokehJS. In the context of a Bokeh server application,
the original python types will be faithfully round-tripped. (Without the
``__subtype__`` specified, the above code would raise an error due to
duplicate view model names.)
.. _metaclass: https://docs.python.org/3/reference/datamodel.html#metaclasses
'''
model_class_reverse_map = {}
def __new__(meta_cls, class_name, bases, class_dict):
'''
Raises:
Warning
'''
# use an explicitly provided view model name if there is one
if "__view_model__" not in class_dict:
class_dict["__view_model__"] = class_name
# call the parent metaclass to create the new model type
newcls = super(MetaModel, meta_cls).__new__(meta_cls, class_name, bases, class_dict)
# update the mapping of view model names to classes, checking for any duplicates
# and handling any subtype relationships or custom implementations
entry = class_dict.get("__subtype__", class_dict["__view_model__"])
if entry in MetaModel.model_class_reverse_map and not hasattr(newcls, "__implementation__"):
raise Warning("Duplicate __view_model__ or __subtype__ declaration of '%s' for " \
"class %s. Previous definition: %s" % \
(entry, class_name,
MetaModel.model_class_reverse_map[entry]))
MetaModel.model_class_reverse_map[entry] = newcls
return newcls
_HTML_REPR = """

"""
class Model(with_metaclass(MetaModel, HasProps, PropertyCallbackManager, EventCallbackManager)):
''' Base class for all objects stored in Bokeh |Document| instances.
'''
def __init__(self, **kwargs):
self._id = kwargs.pop("id", make_id())
self._document = None
self._temp_document = None
super(Model, self).__init__(**kwargs)
default_theme.apply_to_model(self)
def __str__(self):
return "%s(id=%r, ...)" % (self.__class__.__name__, getattr(self, "_id", None))
__repr__ = __str__
name = String(help="""
An arbitrary, user-supplied name for this model.
This name can be useful when querying the document to retrieve specific
Bokeh models.
.. code:: python
>>> plot.circle([1,2,3], [4,5,6], name="temp")
>>> plot.select(name="temp")
[GlyphRenderer(id='399d53f5-73e9-44d9-9527-544b761c7705', ...)]
.. note::
No uniqueness guarantees or other conditions are enforced on any names
that are provided, nor is the name used directly by Bokeh for any
reason.
""")
tags = List(Any, help="""
An optional list of arbitrary, user-supplied values to attach to this
model.
This data can be useful when querying the document to retrieve specific
Bokeh models:
.. code:: python
>>> r = plot.circle([1,2,3], [4,5,6])
>>> r.tags = ["foo", 10]
>>> plot.select(tags=['foo', 10])
[GlyphRenderer(id='1de4c3df-a83d-480a-899b-fb263d3d5dd9', ...)]
Or simply a convenient way to attach any necessary metadata to a model
that can be accessed by CustomJS callbacks, etc.
.. note::
No uniqueness guarantees or other conditions are enforced on any tags
that are provided, nor are the tags used directly by Bokeh for any
reason.
""")
js_event_callbacks = Dict(String, List(Instance("bokeh.models.callbacks.CustomJS")),
help="""
A mapping of event names to lists of CustomJS callbacks.
Typically, rather then modifying this property directly, callbacks should be
added using the ``Model.js_on_event`` method:
.. code:: python
callback = CustomJS(code="console.log('tap event occured')")
plot.js_on_event('tap', callback)
""")
subscribed_events = List(String, help="""
List of events that are subscribed to by Python callbacks. This is
the set of events that will be communicated from BokehJS back to
Python for this model.
""")
js_property_callbacks = Dict(String, List(Instance("bokeh.models.callbacks.CustomJS")), help="""
A mapping of attribute names to lists of CustomJS callbacks, to be set up on
BokehJS side when the document is created.
Typically, rather then modifying this property directly, callbacks should be
added using the ``Model.js_on_change`` method:
.. code:: python
callback = CustomJS(code="console.log('stuff')")
plot.x_range.js_on_change('start', callback)
""")
# Properties --------------------------------------------------------------
@property
def document(self):
''' The |Document| this model is attached to (can be ``None``)
'''
if self._temp_document is not None:
return self._temp_document
return self._document
@property
def ref(self):
''' A Bokeh protocol "reference" to this model, i.e. a dict of the
form:
.. code-block:: python
{
'type' : << view model name >>
'id' : << unique model id >>
}
Additionally there may be a `subtype` field if this model is a subtype.
'''
if "__subtype__" in self.__class__.__dict__:
return {
'type' : self.__view_model__,
'subtype' : self.__subtype__,
'id' : self._id,
}
else:
return {
'type' : self.__view_model__,
'id' : self._id,
}
# Public methods ----------------------------------------------------------
def js_on_event(self, event, *callbacks):
if not isinstance(event, string_types) and issubclass(event, Event):
event = event.event_name
if event not in self.js_event_callbacks:
self.js_event_callbacks[event] = []
for callback in callbacks:
if callback in self.js_event_callbacks[event]:
continue
self.js_event_callbacks[event].append(callback)
def js_on_change(self, event, *callbacks):
''' Attach a CustomJS callback to an arbitrary BokehJS model event.
On the BokehJS side, change events for model properties have the
form ``"change:property_name"``. As a convenience, if the event name
passed to this method is also the name of a property on the model,
then it will be prefixed with ``"change:"`` automatically:
.. code:: python
# these two are equivalent
source.js_on_change('data', callback)
source.js_on_change('change:data', callback)
However, there are other kinds of events that can be useful to respond
to, in addition to property change events. For example to run a
callback whenever data is streamed to a ``ColumnDataSource``, use the
``"stream"`` event on the source:
.. code:: python
source.js_on_change('streaming', callback)
'''
if len(callbacks) == 0:
raise ValueError("js_on_change takes an event name and one or more callbacks, got only one parameter")
# handle any CustomJS callbacks here
from bokeh.models.callbacks import CustomJS
if not all(isinstance(x, CustomJS) for x in callbacks):
raise ValueError("not all callback values are CustomJS instances")
if event in self.properties():
event = "change:%s" % event
if event not in self.js_property_callbacks:
self.js_property_callbacks[event] = []
for callback in callbacks:
if callback in self.js_property_callbacks[event]:
continue
self.js_property_callbacks[event].append(callback)
def layout(self, side, plot):
'''
'''
try:
return self in getattr(plot, side)
except:
return []
def on_change(self, attr, *callbacks):
''' Add a callback on this object to trigger when ``attr`` changes.
Args:
attr (str) : an attribute name on this object
*callbacks (callable) : callback functions to register
Returns:
None
Example:
.. code-block:: python
widget.on_change('value', callback1, callback2, ..., callback_n)
'''
if attr not in self.properties():
raise ValueError("attempted to add a callback on nonexistent %s.%s property" % (self.__class__.__name__, attr))
super(Model, self).on_change(attr, *callbacks)
def references(self):
''' Returns all ``Models`` that this object has references to.
'''
return set(collect_models(self))
def select(self, selector):
''' Query this object and all of its references for objects that
match the given selector.
Args:
selector (JSON-like) :
Returns:
seq[Model]
'''
return find(self.references(), selector)
def select_one(self, selector):
''' Query this object and all of its references for objects that
match the given selector. Raises an error if more than one object
is found. Returns single matching object, or None if nothing is found
Args:
selector (JSON-like) :
Returns:
Model
'''
result = list(self.select(selector))
if len(result) > 1:
raise ValueError("Found more than one object matching %s: %r" % (selector, result))
if len(result) == 0:
return None
return result[0]
def set_select(self, selector, updates):
''' Update objects that match a given selector with the specified
attribute/value updates.
Args:
selector (JSON-like) :
updates (dict) :
Returns:
None
'''
for obj in self.select(selector):
for key, val in updates.items():
setattr(obj, key, val)
def to_json(self, include_defaults):
''' Returns a dictionary of the attributes of this object,
containing only "JSON types" (string, number, boolean,
none, dict, list).
References to other objects are serialized as "refs" (just
the object ID and type info), so the deserializer will
need to separately have the full attributes of those
other objects.
There's no corresponding from_json() because to
deserialize an object is normally done in the context of a
Document (since the Document can resolve references).
For most purposes it's best to serialize and deserialize
entire documents.
Args:
include_defaults (bool) : whether to include attributes
that haven't been changed from the default
'''
return loads(self.to_json_string(include_defaults=include_defaults))
def to_json_string(self, include_defaults):
''' Returns a JSON string encoding the attributes of this object.
References to other objects are serialized as references
(just the object ID and type info), so the deserializer
will need to separately have the full attributes of those
other objects.
There's no corresponding from_json_string() because to
deserialize an object is normally done in the context of a
Document (since the Document can resolve references).
For most purposes it's best to serialize and deserialize
entire documents.
Args:
include_defaults (bool) : whether to include attributes
that haven't been changed from the default
'''
json_like = self._to_json_like(include_defaults=include_defaults)
json_like['id'] = self._id
# serialize_json "fixes" the JSON from _to_json_like by converting
# all types into plain JSON types # (it converts Model into refs,
# for example).
return serialize_json(json_like)
def trigger(self, attr, old, new, hint=None, setter=None):
'''
'''
# The explicit assumption here is that hinted events do not need to
# go through all the same invalidation steps. Currently this is the
# case for ColumnsStreamedEvent and ColumnsPatchedEvent. However,
# this may need to be further refined in the future, if the a
# assumption does not hold for future hinted events (e.g. the hint
# could specify explicitly whether to do normal invalidation or not)
if hint is None:
dirty = { 'count' : 0 }
def mark_dirty(obj):
dirty['count'] += 1
if self._document is not None:
_visit_value_and_its_immediate_references(new, mark_dirty)
_visit_value_and_its_immediate_references(old, mark_dirty)
if dirty['count'] > 0:
self._document._invalidate_all_models()
# chain up to invoke callbacks
super(Model, self).trigger(attr, old, new, hint=hint, setter=setter)
def _attach_document(self, doc):
''' Attach a model to a Bokeh |Document|.
This private interface should only ever called by the Document
implementation to set the private ._document field properly
'''
if self._document is not None and self._document is not doc:
raise RuntimeError("Models must be owned by only a single document, %r is already in a doc" % (self))
doc.theme.apply_to_model(self)
self._document = doc
self._update_event_callbacks()
@staticmethod
def _clear_extensions():
MetaModel.model_class_reverse_map = {
k:v for k,v in MetaModel.model_class_reverse_map.items()
if getattr(v, "__implementation__", None) is None
}
def _detach_document(self):
''' Detach a model from a Bokeh |Document|.
This private interface should only ever called by the Document
implementation to unset the private ._document field properly
'''
self._document = None
default_theme.apply_to_model(self)
def _to_json_like(self, include_defaults):
''' Returns a dictionary of the attributes of this object, in
a layout corresponding to what BokehJS expects at unmarshalling time.
This method does not convert "Bokeh types" into "plain JSON types,"
for example each child Model will still be a Model, rather
than turning into a reference, numpy isn't handled, etc.
That's what "json like" means.
This method should be considered "private" or "protected",
for use internal to Bokeh; use to_json() instead because
it gives you only plain JSON-compatible types.
Args:
include_defaults (bool) : whether to include attributes
that haven't been changed from the default.
'''
all_attrs = self.properties_with_values(include_defaults=include_defaults)
# If __subtype__ is defined, then this model may introduce properties
# that don't exist on __view_model__ in bokehjs. Don't serialize such
# properties.
subtype = getattr(self.__class__, "__subtype__", None)
if subtype is not None and subtype != self.__class__.__view_model__:
attrs = {}
for attr, value in all_attrs.items():
if attr in self.__class__.__dict__:
continue
else:
attrs[attr] = value
else:
attrs = all_attrs
for (k, v) in attrs.items():
# we can't serialize Infinity, we send it as None and
# the other side has to fix it up. This transformation
# can't be in our json_encoder because the json
# module checks for inf before it calls the custom
# encoder.
if isinstance(v, float) and v == float('inf'):
attrs[k] = None
return attrs
def _repr_html_(self):
'''
'''
module = self.__class__.__module__
name = self.__class__.__name__
_id = getattr(self, "_id", None)
cls_name = make_id()
def row(c):
return '
' + c + '
'
def hidden_row(c):
return '
%s
' % (cls_name, c)
def cell(c):
return '
' + c + '
'
html = ''
html += '
'
ellipsis_id = make_id()
ellipsis = '…)' % ellipsis_id
prefix = cell('%s(' % (module, name, name))
html += row(prefix + cell('id' + ' = ' + repr(_id) + ', ' + ellipsis))
props = self.properties_with_values().items()
sorted_props = sorted(props, key=itemgetter(0))
all_props = sorted_props
for i, (prop, value) in enumerate(all_props):
end = ')' if i == len(all_props)-1 else ','
html += hidden_row(cell("") + cell(prop + ' = ' + repr(value) + end))
html += '
'
html += _HTML_REPR % dict(ellipsis_id=ellipsis_id, cls_name=cls_name)
return html
#-----------------------------------------------------------------------------
# Private API
#-----------------------------------------------------------------------------
def _visit_immediate_value_references(value, visitor):
''' Visit all references to another Model without recursing into any
of the child Model; may visit the same Model more than once if
it's referenced more than once. Does not visit the passed-in value.
'''
if isinstance(value, HasProps):
for attr in value.properties_with_refs():
child = getattr(value, attr)
_visit_value_and_its_immediate_references(child, visitor)
else:
_visit_value_and_its_immediate_references(value, visitor)
_common_types = {int, float, str}
def _visit_value_and_its_immediate_references(obj, visitor):
''' Recurse down Models, HasProps, and Python containers
The ordering in this function is to optimize performance. We check the
most comomn types (int, float, str) first so that we can quickly return in
the common case. We avoid isinstance and issubclass checks in a couple
places with `type` checks because isinstance checks can be slow.
'''
typ = type(obj)
if typ in _common_types: # short circuit on common base types
return
if typ is list or issubclass(typ, (list, tuple)): # check common containers
for item in obj:
_visit_value_and_its_immediate_references(item, visitor)
elif issubclass(typ, dict):
for key, value in iteritems(obj):
_visit_value_and_its_immediate_references(key, visitor)
_visit_value_and_its_immediate_references(value, visitor)
elif issubclass(typ, HasProps):
if issubclass(typ, Model):
visitor(obj)
else:
# this isn't a Model, so recurse into it
_visit_immediate_value_references(obj, visitor)
#-----------------------------------------------------------------------------
# Code
#-----------------------------------------------------------------------------


{% extends "base.html" %} {% block title %}Meeting Archive{% endblock %} {% block content %}
Our next meeting has yet to be announced.
No past meetings.


Digit Recognition using Neural Networks
{% if error %} Uploaded image contains: {{ error }} {% endif %}
Browse
Student name - Adrian Sypos (G00309646) This is a project for the module Emerging Technologies for 2017. This project is worth 40% of your marks for the module.


This is a visual test page for using a DOMParser for all included content (even partial HTML documents).
Visual inspection isn't sufficient.
This is the backwards-compatibility case. It should NOT insert a <body> element
It should insert "document.body.innerHTML" It should NOT insert a <body> element
It should insert "document.querySelector('main').innerHTML" It should NOT insert a <main> element
It should NOT insert ANYTHING because it fails to find the fragment


Describes the specified EBS volumes.
If you are describing a long list of volumes, you can paginate the output to make the list more manageable. The MaxResults parameter sets the maximum number of results returned in a single page. If the list of results exceeds your MaxResults value, then that number of results is returned along with a NextToken value that can be passed to a subsequent describe-volumes request to retrieve the remaining results.
For more information about EBS volumes, see Amazon EBS Volumes in the Amazon Elastic Compute Cloud User Guide .
See also: AWS API Documentation
describe-volumes is a paginated operation. Multiple API calls may be issued in order to retrieve the entire data set of results. You can disable pagination by providing the --no-paginate argument. When using --output text and the --query argument on a paginated response, the --query argument must extract data from the results of the following query expressions: Volumes
describe-volumes
[--dry-run | --no-dry-run]
[--volume-ids <value>]
[--filters <value>]
[--cli-input-json <value>]
[--starting-token <value>]
[--page-size <value>]
[--max-items <value>]
[--generate-cli-skeleton <value>]
--dry-run | --no-dry-run (boolean)
Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation . Otherwise, it is UnauthorizedOperation .
One or more volume IDs.
Syntax:
"string" "string" ...
One or more filters.
- attachment.attach-time - The time stamp when the attachment initiated.
- attachment.delete-on-termination - Whether the volume is deleted on instance termination.
- attachment.device - The device name that is exposed to the instance (for example, /dev/sda1 ).
- attachment.instance-id - The ID of the instance the volume is attached to.
- attachment.status - The attachment state (attaching | attached | detaching | detached ).
- availability-zone - The Availability Zone in which the volume was created.
- create-time - The time stamp when the volume was created.
- encrypted - The encryption status of the volume.
- size - The size of the volume, in GiB.
- snapshot-id - The snapshot from which the volume was created.
- status - The status of the volume (creating | available | in-use | deleting | deleted | error ).
- tag :key =*value* - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value.
- tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag :key =*value* filter.
- tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.
- volume-id - The volume ID.
- volume-type - The Amazon EBS volume type. This can be gp2 for General Purpose SSD, io1 for Provisioned IOPS SSD, st1 for Throughput Optimized HDD, sc1 for Cold HDD, or standard for Magnetic volumes.
Shorthand Syntax:
Name=string,Values=string,string ...
JSON Syntax:
[
{
"Name": "string",
"Values": ["string", ...]
}
...
]
--cli-input-json (string) Performs service operation based on the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton. If other arguments are provided on the command line, the CLI values will override the JSON-provided values.
A token to specify where to start paginating. This is the NextToken from a previously truncated response.
The size of each page.
The total number of items to return. If the total number of items available is more than the value specified in max-items then a NextToken will be provided in the output that you can use to resume pagination. This NextToken response element should not be used directly outside of the AWS CLI.
--generate-cli-skeleton (string) Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input, prints a sample input JSON that can be used as an argument for --cli-input-json. If provided with the value output, it validates the command inputs and returns a sample output JSON for that command.
To describe all volumes
This example command describes all of your volumes in the default region.
Command:
aws ec2 describe-volumes
Output:
{
"Volumes": [
{
"AvailabilityZone": "us-east-1a",
"Attachments": [
{
"AttachTime": "2013-12-18T22:35:00.000Z",
"InstanceId": "i-1234567890abcdef0",
"VolumeId": "vol-049df61146c4d7901",
"State": "attached",
"DeleteOnTermination": true,
"Device": "/dev/sda1"
}
],
"VolumeType": "standard",
"VolumeId": "vol-049df61146c4d7901",
"State": "in-use",
"SnapshotId": "snap-1234567890abcdef0",
"CreateTime": "2013-12-18T22:35:00.084Z",
"Size": 8
},
{
"AvailabilityZone": "us-east-1a",
"Attachments": [],
"VolumeType": "io1",
"VolumeId": "vol-1234567890abcdef0",
"State": "available",
"Iops": 1000,
"SnapshotId": null,
"CreateTime": "2014-02-27T00:02:41.791Z",
"Size": 100
}
]
}
To describe volumes that are attached to a specific instance
This example command describes all volumes that are both attached to the instance with the ID i-1234567890abcdef0 and set to delete when the instance terminates.
Command:
aws ec2 describe-volumes --region us-east-1 --filters Name=attachment.instance-id,Values=i-1234567890abcdef0 Name=attachment.delete-on-termination,Values=true
Output:
{
"Volumes": [
{
"AvailabilityZone": "us-east-1a",
"Attachments": [
{
"AttachTime": "2013-12-18T22:35:00.000Z",
"InstanceId": "i-1234567890abcdef0",
"VolumeId": "vol-049df61146c4d7901",
"State": "attached",
"DeleteOnTermination": true,
"Device": "/dev/sda1"
}
],
"VolumeType": "standard",
"VolumeId": "vol-049df61146c4d7901",
"State": "in-use",
"SnapshotId": "snap-1234567890abcdef0",
"CreateTime": "2013-12-18T22:35:00.084Z",
"Size": 8
}
]
}
To describe tagged volumes and filter the output
This example command describes all volumes that have the tag key Name and a value that begins with Test. The output is filtered to display only the tags and IDs of the volumes.
Command:
aws ec2 describe-volumes --filters Name=tag-key,Values="Name" Name=tag-value,Values="Test*" --query 'Volumes[*].{ID:VolumeId,Tag:Tags}'
Output:
[
{
"Tag": [
{
"Value": "Test2",
"Key": "Name"
}
],
"ID": "vol-1234567890abcdef0"
},
{
"Tag": [
{
"Value": "Test1",
"Key": "Name"
}
],
"ID": "vol-049df61146c4d7901"
}
]
Volumes -> (list)
Information about the volumes.
(structure)
Describes a volume.
VolumeId -> (string)
The ID of the volume.Size -> (integer)
The size of the volume, in GiBs.SnapshotId -> (string)
The snapshot from which the volume was created, if applicable.AvailabilityZone -> (string)
The Availability Zone for the volume.State -> (string)
The volume state.CreateTime -> (timestamp)
The time stamp when volume creation was initiated.Attachments -> (list)
Information about the volume attachments.
(structure)
Describes volume attachment details.
VolumeId -> (string)
The ID of the volume.InstanceId -> (string)
The ID of the instance.Device -> (string)
The device name.State -> (string)
The attachment state of the volume.AttachTime -> (timestamp)
The time stamp when the attachment initiated.DeleteOnTermination -> (boolean)
Indicates whether the EBS volume is deleted on instance termination.Tags -> (list)
Any tags assigned to the volume.
(structure)
Describes a tag.
Key -> (string)
The key of the tag.
Constraints: Tag keys are case-sensitive and accept a maximum of 127 Unicode characters. May not begin with aws:
Value -> (string)
The value of the tag.
Constraints: Tag values are case-sensitive and accept a maximum of 255 Unicode characters.
VolumeType -> (string)
The volume type. This can be gp2 for General Purpose SSD, io1 for Provisioned IOPS SSD, st1 for Throughput Optimized HDD, sc1 for Cold HDD, or standard for Magnetic volumes.Iops -> (integer)
The number of I/O operations per second (IOPS) that the volume supports. For Provisioned IOPS SSD volumes, this represents the number of IOPS that are provisioned for the volume. For General Purpose SSD volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. For more information on General Purpose SSD baseline performance, I/O credits, and bursting, see Amazon EBS Volume Types in the Amazon Elastic Compute Cloud User Guide .
Constraint: Range is 100-20000 IOPS for io1 volumes and 100-10000 IOPS for gp2 volumes.
Condition: This parameter is required for requests to create io1 volumes; it is not used in requests to create gp2 , st1 , sc1 , or standard volumes.
Encrypted -> (boolean)
Indicates whether the volume will be encrypted.KmsKeyId -> (string)
The full ARN of the AWS Key Management Service (AWS KMS) customer master key (CMK) that was used to protect the volume encryption key for the volume.
NextToken -> (string)
The NextToken value to include in a future describe-volumes request. When the results of a describe-volumes request exceed MaxResults , this value can be used to retrieve the next page of results. This value is null when there are no more results to return.


{% extends "base.html" %} {% block title %}
Medieval catalogues > UNIVERSITY AND COLLEGE LIBRARIES OF OXFORD > Lincoln College > Inventory of books in the library, 1474
{% endif %}165 identified entries found.
All data was derived from the List of Identifications by Professor Richard Sharpe.
{% if not printing %}
A key to codes used in the List is available (opens in new tab).{% endif %}


library(basecamper)
projects <- basecamper::basecamp_projects()
The print method for the projects
object will return a character vector with the project name with the company associated with it as the element name.
Summary method for a projects
object will return a tibble
with company
name associated with the project, with the id
and name
of the project.
summary(projects)
Choose a project
(METRUM <- summary(projects)[[2,'id']])
project <- basecamper::basecamp_project('MYPROJECT')


why can't we call it STAKED1, STAKED2, STAKED3 etc...
blackjok3r03-Oct-18 04:27 PM
Once libscott is here it will go back to that I think...
we had to stop, until MoMoM was working perfectly
Mylo03-Oct-18 04:28 PM
i meant channel names
when is libscott due back?
ComputerGenie 👴👴👴03-Oct-18 04:28 PM
why can't we call it STAKED1, STAKED2, STAKED3 etc... Because April, May, and June has come and gone
blackjok3r03-Oct-18 04:30 PM
maybe another week I think... The fix is known hes the onyl uy who can code it though
Mylo03-Oct-18 05:43 PM
ah no problems.
so when you guys "bust a chain", you just spin them up. you rarely rebuild from scripts? i'm just asking to make a docker image, seems easy enough
Alright03-Oct-18 07:16 PM
sorry, saw someone was just using the explorers(edited)
restarting them, couple minutes
@Mylo what do you mean by rebuild from scripts
FishyGuts04-Oct-18 01:04 AM
blackjok3r04-Oct-18 01:29 AM
@Mylo this system is full automatic, you just start it and you have a new chain.(edited)
so far removing them is a little mor complicated, beause you have to stop it then start it again
Alright is working on an Oracles CC based DAPP where you just create your chain, then submit the chain params to an oracle and the notaries will automatically add it and start dPoW.
That could e some timeoff though, but is a very nice idea.
blackjok3r04-Oct-18 01:59 AM
List of jobs for today:
1) fix start.sh problems (longest chain =0 and on first run make sure iguana is built)
2) Repo for tesing, to launch the chains with std out etc
3) Read up on CC + channels while waiting for everyone to update
blackjok3r04-Oct-18 04:44 AM
@smk762 - dracocanis ominator I am really struggling with that change you pushed to start.sh like it doesnt even work at all LOL
I dont understand how it updates the progress part... is seems to be an infinate loop
I think I will just redo the whole thing from scratch
repo to launch and manage STAKED notary nodes. Contribute to StakedChain/StakedNotary development by creating an account on GitHub.
The longest chain could sometimes return 0 which makde the scrip bail out
and that was no good for autoadding chains
smk762 - dracocanis ominator04-Oct-18 05:56 AM
Latest of the first half is in startStaked under lazy folder
blackjok3r04-Oct-18 05:57 AM
I used "most" of your code but put it into functions.
smk762 - dracocanis ominator04-Oct-18 05:57 AM
I changed it to check blocks instead I think. Will have to remind self when home
blackjok3r04-Oct-18 05:58 AM
no worries, the version I just pushed is working, you saved me a lot of time, by already having all the logic, but I guess the merged verison to StakedNotary was missing some parts.
it seemed to work, in production, but when I went making it not work on purpose it was flakey(edited)
I have been wprking through the scripts adding error checks based on problems Cmaurice had trying to get started
smk762 - dracocanis ominator04-Oct-18 05:59 AM
Yeah ive changed heaps of stuff since that pr. Been holding off on submitting more until i test / add readme to things
blackjok3r04-Oct-18 06:00 AM
no worries. Look forward to more contributions
smk762 - dracocanis ominator04-Oct-18 06:33 AM
Looking forward to contributing whatever's useful. Still a bit vague on channels cc, as my tests last night were with the undocumented master repo, so I just tried to figure out what the command order was and how it works. I'm sure tonight/tomorrow will be much more enlightening. I assume I'll need two separate nodes/wallets to test it properly. Fortunately I've got a spare for my flir2qr project which I can put Staked on. I've moved dev of that repo onto our corporate server so it's pretty much idle right now.
Will have to spend some time on it before monday before the next flight tho...
jl777c04-Oct-18 06:34 AM
FSM branch
channels.cpp has comments
1
smk762 - dracocanis ominator04-Oct-18 06:34 AM
yep, updated before work this morn(edited)
yet to read through tho, due to wageslavery
1
blackjok3r04-Oct-18 06:36 AM
decided to foucus on squashing bugs for today before getting my hadns dirty on more stuff
it seems best to finish off other things first.
smk762 - dracocanis ominator04-Oct-18 06:36 AM
it's ok, in relative terms. I've definitely slaved harder for less, and probably 90% of the world does so I cant complain too loudly
my 3 tasks right now are studying up on CC, finalising and documenting stuff in kmd_pulp and finishing up flir2qr front end. Not having a car anymore means I should be more housebound than usual until insurance sorts things out, so should get a fair bit done over the next week or two.
1
blackjok3r04-Oct-18 07:48 AM
I am pretty happy with start.sh now its just about fool proof..
We need to test adding a chain and an era change at some point with diffrent pubkeys.
1
CrisF04-Oct-18 09:51 AM
@blackjok3r In case you are still looking into this
iguana VIRT 3099M RES 179m
I've updated with origin/master on both.
blackjok3r04-Oct-18 09:52 AM
yeah, james just dismissed all my findings and said there was no problem so I am just not looking into it anymore... I guess I need to never restart my mainnet notary until the "iguana has stopped working" bug appears then try and find out why
ok also seem to have my stats server and blocknotify working.
@Alright is there a reason you are leaveing old chains in assetchains.json in komodo/src
I have finally got my blocknotify to work by passing it block hash, so it no longer dupes blocks and also takes $2 as the chain name so I can use the same script for every chain.(edited)
<IP_ADDRESS> is now an extra seednode that can be added to assetchains.json
Those scripts might be very helpful for anyone wanting to run a seed node for the chains.
obviously you dont really need the blockcnotify stuff, but its simple enough to remove it.
1
Alright04-Oct-18 01:26 PM
@blackjok3r yes, I leave explorers up for the deded chains(edited)
blackjok3r04-Oct-18 01:30 PM
no worries, because of that <IP_ADDRESS> syncs them, and hosts a copy of the chain as I used the assetchains.json from komodo repo rather than StakedNotary
Komodo. Contribute to jl777/komodo development by creating an account on GitHub.
blackjok3r05-Oct-18 12:33 AM
Will probably start on some channels stuff today, it depends on how I got with iguana, I found some interesting thing by accident late last night i want to check out.
smk762 - dracocanis ominator05-Oct-18 12:43 AM
you enriching uranium again?
2
blackjok3r05-Oct-18 12:46 AM
Haha nar, there is an error that occurs on main net and I figured out how to make it happen although its the same error its not exactly the same as its not breaking the notarsations completely just making the error happen on a single node
But its a good lead that needs some investigation either way, whole bunch of depreciated code thats in iguana, seems removing it can only help things as long as it doesn't totally break them, which is why it hasn't been removed already
blackjok3r05-Oct-18 03:22 AM
is made a few...
1
I am still seeing script verify errors, but I already know they are form other nodes.
Yes... I didnt do this peroperly by any means... I just did a search project of isratify and ratifying and commented out or removed all of it'
becasue james told em last night that it was depreciated... and if ratify or isratify is somwhow accidently set, it makes the node bail out of a round..
And my node has always been shite because it keep bailing out of rounds
so I figured that not letting it bail out has to be better
ComputerGenie 👴👴👴05-Oct-18 03:25 AM
commenting each line/section of code, now there's year-long endeavor
blackjok3r05-Oct-18 03:26 AM
it might use a bit more system resource... but seriously it already uses nothing but ram, because of what seems like a poor design choice of storing each round in ram for too long.
I think to do this properly... you need to start at dpow_statemachinestart
find wher that is called... and follow each function
and copy that to a new code base
so you dont ahve all the old crap... but the problem is that how iguana does its RPC calls and stuff is all hidden all over the place... its a miassive undertaking
it just keep increaseing in ram use for no valid reaosn
it should only need the current notarisation satemachine and the on before it.. not hundreds of them
ComputerGenie 👴👴👴05-Oct-18 03:28 AM
it just keep increaseing in ram use for no valid reaosn
Same issue that mm used to have maybe?
blackjok3r05-Oct-18 03:28 AM
well maybe its not hundreds buts a lot... some top nodes iguana is using 8Gb of ram(edited)
no its not a memleak
because it caps out after a while
staked seems to use about 1.5Gb after a couple of days of running and stop increasing
ComputerGenie 👴👴👴05-Oct-18 03:29 AM
iirc the one ram issue wasn't a leak, but that mm kept allocating more in a loop/call somewhere (it's been so long I honestly forget)
blackjok3r05-Oct-18 03:30 AM
james said specifically it was because the iguana saves its statemachine allocation until some delay before freeing it back up
ComputerGenie 👴👴👴05-Oct-18 03:30 AM
ahh
blackjok3r05-Oct-18 03:31 AM
unless it bails out of a rounc, then it free s instantly.. .and I think this is the cause of instability and script verify errors
if you dont let the statemachine end, and force it to continue until time out, it might make things work better.
script verify errors are missning data
most propbably caused by a netowrk issue
but maybe not... they dont happen very often when all nodes have been runnign for a very long time without restart... as soon as people start updateing and restarting a lot. they happen frequently.
that was the mission yes
its a huge mission
I have a fair understanding of how it works... but that said the way the code is orginised,following my comments would in iteslf be difficult
dpow was added onto a mess.
the dpow code itself isnt that bad... but what it was built on... is terrible
that seems very difficult without a lot of time spent


Script source files are stored on your local filesystem. Everything else is stored on object storage.
Everything is stored on on local file system at path {{ config.dataFolder }}.


This demo takes yes/no questions and creates a function to process the answers and prompt()s. You can use this as a guide for your own About Me project.


hello CityLAB plotter !?!!
---
none
Plotter controlls
homeing
$H
unlock
$x
zeroall
connect
disconnect
Send single GCode commands
Send multiline GCode commands
All double blank lines will be removed
Select dropdown
With options
Upload SVG file


Invocation interceptors provide a means to execute custom code before and after method invocations on ActionWebService::Base objects.
When running in Direct dispatching mode, ActionController filters should be used for this functionality instead.
The semantics of invocation interceptors are the same as ActionController filters, and accept the same parameters and options.
A before interceptor can also cancel execution by returning false, or returning a [false, "cancel reason"] array if it wishes to supply a reason for canceling the request.
Example
class CustomService < ActionWebService::Base before_invocation :intercept_add, :only => [:add] def add(a, b) a + b end private def intercept_add return [false, "permission denied"] # cancel it end end
Options:
- :except
- A list of methods for which the interceptor will NOT be called
- :only
- A list of methods for which the interceptor WILL be called
- after_invocation
- append_after_invocation
- append_before_invocation
- before_invocation
- prepend_after_invocation
- prepend_before_invocation
Alias for append_after_invocation
Appends the given interceptors to be called after method invocation.
[ show source ]
# File vendor/rails/actionwebservice/lib/action_web_service/invocation.rb, line 66 66: def append_after_invocation(*interceptors, &block) 67: conditions = extract_conditions!(interceptors) 68: interceptors << block if block_given? 69: add_interception_conditions(interceptors, conditions) 70: append_interceptors_to_chain("after", interceptors) 71: end
Appends the given interceptors to be called before method invocation.
[ show source ]
# File vendor/rails/actionwebservice/lib/action_web_service/invocation.rb, line 46 46: def append_before_invocation(*interceptors, &block) 47: conditions = extract_conditions!(interceptors) 48: interceptors << block if block_given? 49: add_interception_conditions(interceptors, conditions) 50: append_interceptors_to_chain("before", interceptors) 51: end
Alias for append_before_invocation
Prepends the given interceptors to be called after method invocation.
[ show source ]
# File vendor/rails/actionwebservice/lib/action_web_service/invocation.rb, line 75 75: def prepend_after_invocation(*interceptors, &block) 76: conditions = extract_conditions!(interceptors) 77: interceptors << block if block_given? 78: add_interception_conditions(interceptors, conditions) 79: prepend_interceptors_to_chain("after", interceptors) 80: end
Prepends the given interceptors to be called before method invocation.
[ show source ]
# File vendor/rails/actionwebservice/lib/action_web_service/invocation.rb, line 55 55: def prepend_before_invocation(*interceptors, &block) 56: conditions = extract_conditions!(interceptors) 57: interceptors << block if block_given? 58: add_interception_conditions(interceptors, conditions) 59: prepend_interceptors_to_chain("before", interceptors) 60: end


👏 First-Time Contributors
New contributors land their first PR in the react, devtools, or documentation repositories every week. Thank you for making React better ❤:
With this huge list of incredible people, we’re wrapping up another week. Thank you for following along. 👋


--- layout: default ---
Octopress + Bootstrap—Ready to go right out-of-the-box.
Get Octostrap
{{ feature.text | markdownify }}


Someone tried to contact you.
Name: {name}
Company: {company}
Email: {email}
Phone: {phone}
Message: {message}


iac
Businessmodel of IAC
Customer Segments
IAC serves various unrelated customer segments that have different needs. Its two customer groups are as follows:
- Consumers: Units serving consumers comprise the majority of IAC’s offerings; they include Match Group (mostly dating services), Applications (desktop and mobile applications), Video (video websites), and Other (retail websites).
- Businesses: This primarily consists of its IAC’s Partnerships unit, which includes B2B partnership operations, and its HomeAdvisor segment, whose main customer is home service professionals. ### Value Proposition
IAC offers two primary value propositions: accessibility and brand/status.
The company owns over 20 operating businesses comprising more than 150 brands and products. The diversity of these offerings provide a wide variety of options for consumers and businesses; e.g., IAC’s dating sites range from Match.com and OKCupid to HowAboutWe and Tinder.
The company has a strong reputation in the media industry because of its long and successful history. Its portfolio features some of the world’s most recognized brands, includingThe Daily Beast, Vimeo, and Ask.com. Its websites for these properties generate two billion monthly visits from 370 million unique users in over 190 countries; further, its mobile apps have been downloaded 100 million times.
Channels
IAC’s main channel are its spectrum of homepages and the various social media websites through which it markets its offerings. The company also utilizes e-mail campaigns.
Moreover, it uses offline options to promote its brands, particularly TV advertising and public relations efforts such as events.
Customer Relationships
IAC’s customer relationship is primarily of a self-service nature. Customers visit its family of websites and use its apps while having limited interaction with employees.
That said, there is a personal assistance component as it does have a team of customer service staff ready to answer questions.
Key Activities
IAC’s key activities focus on platform management. The company’s operations primarily entail managing its various web properties and their corresponding mobile apps.
Key Partners
As part of its Partnerships business, IAC works with firms in the in the media, software, and other industries to design and develop personalized browser‑based search applications to be bundled and distributed with their services and products.
It also has a high-profile partner in Google, with which it has had an agreement since 2001. Under their alliance, Google provides IAC and its partners with sponsored listings and other search-related services for display on desktop and mobile platforms.
Key Resources
IAC’s main resource is its employee base in the technical and content realms. These workers are responsible for designing its websites and writing the information featured on them. It also relies on other human resources in the form of its customer service staff.
Cost Structure
IAC has a cost-driven structure. The company limits cost through significant self-service and automation and limited personal interaction with its employees. Its biggest cost driver is selling/marketing expenses, a fixed cost that is an area of heavy investment. Other major drivers are administrative and product development expenses, both fixed costs.
Revenue Streams
IAC has three revenue streams, which are as follows:
- Subscription fees: The company derives recurring fees from its membership services (e.g., Match Group dating sites)
- Product/service sales: The company derives one-time payments from its products/services for sale (e.g., ShoeBuy and Princeton Review classes)
- Advertising: The company obtains payments for advertising across all of its online properties, particularly within the segments of Publishing and Applications.


Next: with-output-to-string, Previous: make-string-output-stream, Up: Streams Dictionary
with-input-from-string
(var string &key index start end)
{declaration}*
{form}*
⇒ {result}*
var—a variable name.
string—a form; evaluated to produce a string.
index—a place.
start, end—bounding index designators of string. The defaults for start and end are 0 and nil, respectively.
declaration—a declare expression; not evaluated.
forms—an implicit progn.
result—the values returned by the forms.
Creates an
input string stream,
provides an opportunity to perform operations on the stream (returning zero or more values), and then closes the string stream.
String is evaluated first, and var is bound to a character input string stream that supplies characters from the subsequence of the resulting string bounded by start and end. The body is executed as an implicit progn.
The input string stream is automatically closed on exit from with-input-from-string, no matter whether the exit is normal or abnormal.
The input string stream to which the variable var is bound has dynamic extent; its extent ends when the form is exited.
The index is a pointer within the string to be advanced. If with-input-from-string is exited normally, then index will have as its value the index into the string indicating the first character not read which is (length string) if all characters were used. The place specified by index is not updated as reading progresses, but only at the end of the operation.
start and index may both specify the same variable, which is a pointer within the string to be advanced, perhaps repeatedly by some containing loop.
The consequences are undefined if an attempt is made to assign the variable var.
(with-input-from-string (s "XXX1 2 3 4xxx" :index ind :start 3 :end 10) (+ (read s) (read s) (read s))) ⇒ 6 ind ⇒ 9 (with-input-from-string (s "Animal Crackers" :index j :start 6) (read s)) ⇒ CRACKERS
The variable j is set to 15.
The value of the place named by index, if any, is modified.
Traversal Rules and Side Effects
Next: with-output-to-string, Previous: make-string-output-stream, Up: Streams Dictionary


Hi there,
Analysis for {{ metric_name }}
Here is the forecast made on the {{ end_date }} for the metric: {{ metric_name }}.
{% macro mail_body(signature, metric_name, end_date, mime_img) %}
Here is the forecast made on the {{ end_date }} for the metric: {{ metric_name }}.


Unreadable code:
function foo($status, array $items) {
if ($status === TRUE && count($items) > 1) {
foreach ($items as $k => $v) {
// ...
}
}
}
Readable code:
function foo($status, array $items) {
if ($status === FALSE) {
return;
}
if (count($items) <= 1) {
return;
}
foreach ($items as $priority => $item) {
// ...
}
}
How much does it cost to read, understand, and fix the code?
Detected errors in 1 module.
-- NAMING ERROR ----------------------------------------------------------------
Cannot find pattern `Tuer`
8| Tuer -> "124"
^^^^
Maybe you want one of the following?
True
A single action to ensures all preconditions are met.
Any data coming into the system or interaction with the system that originates from outside the system:
Any data going out of the system or interaction with outside the system that originates from your system:
function add(int $a, int $b): int {
return $a + $b;
}
Guarding internal state through non-public properties, and validation in state-changing methods.
from validate_email import validate_email
class EmailAddress:
def __init__(self, EmailAddress):
if not validate_email(EmailAddress):
raise ValueError
self._email_address = EmailAddress
raise new ValueError
class BadMethodCallException extends BadFunctionCallException {}
Include information that helps locate and understand the problem!
try {
// Perform an action that may error fatally.
}
catch (IllegalArgumentException e) {
// Recover from this specific problem.
}
finally {
// Perform clean-up tasks,
// regardless of whether an exception was thrown or caught.
}
If an exception is not caught, it bubbles up to the calling function (scope).
If no more calling functions exist, it causes a fatal uncaught exception error, which terminates code execution.
If the code is designed to recover from the exception and resume normal execution.
"Catch What You Can Handle"
If the problem requires developer action, make sure to notify them!
Faster, more predictable, less frustrating development processes.
Detect problems as soon as possible.
Granular error handling aids recovery, and keeps code portable.
Handling errors in public APIs makes other developers' lives easier.
Find me on Twitter: @BartFeenstra
Do you have any questions?


A detailed look at Ubuntu’s new experimental ZFS installer Let's take a sneak ZFS peek under the hood of Ubuntu Eoan Ermine's latest build.
The Insecure Elephant in the Room - CA Security Council [Update: October 16, 2019] The purpose of this article The purpose of this article is to demonstrate why I believe browser-based UI for website identity can make the web safer for everyone. I explain in great detail, the reasons why the UI and UX didn’t w...
Thousands of US troops deploying to Saudi Arabia: Pentagon The United States is deploying thousands of additional U.S. forces to Saudi Arabia in the aftermath of the Iran's attack on Saudi oil facilities in September.
PeachPie | PHP compiler to .NET PeachPie allows you to run PHP applications on .NET Core - faster, stabler and more secure.
Fix a Wobbly Table (with Math) Fix your wobbly table with just a small tweak - but why does this work? More links & stuff in full description below ↓↓↓ Reddit discussion: http://www.reddit.com/r/BradyHaran/comments/2dvp3m/an_end_to_wobbly_tables_just_trust_the_mathematics/ Featuring M...
Hack to the Future - NDC Sydney 2020 | Software Developers Conference Infosec is a continual game of one-upmanship; we build a defence and someone breaks it so we build another one then they break that and the cycle continues. Because of this, the security controls we have at our disposal are rapidly changing and the ones w...
Licensing Community Discussion · Issue #1024 · SixLabors/ImageSharp This issue exists for the community to discuss planned licensing changes in the ImageSharp Release Candidate. For reference here is the statement we published back in January 2019. ImageSharp, Imag...
Distribution comparison via the shift and ratio functions Distribution comparison via the shift and ratio functions
Blazor in more depth - NDC Sydney 2020 | Software Developers Conference In this talk, Blazor's two architects will take you deeper into the framework, showing a range of more advanced features and their internal workings. We'll dig into server-side Blazor and how we built the SignalR-based mechanism for efficiently streaming ...
At least 6,500 online stores were hacked for credit card data Among the affected parties are the Sesame Street Live online store which sells various merchandise from the popular kids show and the official website for the late painting icon, Bob Ross.


Ofsted and Open Source
Apr 12, 2009
Written for Open Source Schools
Ofsted’s report on The Importance of ICT was published over a month ago, and was met with perhaps a degree of surprise at some of its criticisms about aspects of ICT provision in schools, most notably for higher attaining and older pupils. There’s much in the report to strengthen the case for greater use, and indeed development, of open source software in schools.
The report acknowledges that, particularly in the primary phase, good use is being made of ICT across the curriculum, and also notes the opportunities that the use of modern technology provides for pupils creativity and collaboration (p8), whilst admitting that it was only in the outstanding schools that use was made of peer assessment and critical reflection (p12): the process of peer review is one familiar to both academics and open source developers, and certainly something which schools’ learning platforms ought to support (well at least Moodle does), even if such facilities aren’t always used.
A criticism found in several places throughout the report is that the present state of IT teaching in schools tends to focus too much on training children to use a particular OS and set of applications, “running expensive commercial operating systems and standard ‘office’ suites of software” (p33), something which, in Ofsted’s view, “taught them the idiosyncrasies of just one platform which would quickly become out of date” (p14) and which “may actually be hindering the development of their skills” (p34), whereas students in schools that had deployed a mix of operating systems and a greater variety of software were seen as being “better equipped to cope with rapidly changing technologies” (ibid), as well as having an awareness of different platforms’ strengths and weaknesses” (p19). Ofsted see ICT education as being more about a development of learners’ capabilities and generic and transferable skills (p5, p21).
Another recurrent criticism concerns the lack of challenge which such a limited interpretation of ICT affords, with progress slowing down as early as the upper years of Key Stage 2 (p8), but being particularly problematic in Key Stage 4, where many students don’t appear to have any ICT lessons at all (p19), and many others follow vocational qualifications worth the equivalent of 4 GCSE and yet include tasks not much beyond the Key Stage 3 curriculum: “much of the work in ICT at Key Stage 4, particularly for the higher attainers, often involved consolidating skills that students had already gained proficiency in and therefore the rate at which new skills were learnt was relatively slow.” (ibid). This, I suspect, is related to the lack of balance which Ofsted perceive in the delivery of the curriculum, where far greater emphasis is placed on presentation and communication skills than analysis, data handling, control and programming (p4, p8):
“Coverage of control, sensors and databases was limited in many of the schools, as was the provision for students to learn the logical thinking necessary to program, write scripts or macros, which was cursory and superficial.” (p23)
It’s nearly 30 years since Papert wrote Mindstorms, with its vision of children learning for themselves through programming computers, and almost as long since many of today’s developers cut their teeth on BBC Micros, Sinclair Spectrums and Commodore 64s. A rediscovery of programming as an essential part of the ICT curriculum, not just for the higher attaining pupils who Ofsted see as insufficiently challenged (p5) seems long overdue. The good news is that there are plenty of open source platforms available for children to take their first steps towards taking control of technology, such as Scratch and Etoys (both, significantly, part of the standard install on the OLPC’s Sugar operating system), as well as great, not-too-tricky interpreted languages like Python and PHP with which web-based applications can be developed.
Scratch is, I think, what Ofsted are referring to with a great case study of a primary school that was providing opportunities for programming:
“An urban primary school had good provision for developing pupils’ programming skills. Two Year 6 pupils attending provision for gifted and talented pupils at their local secondary school were introduced to a freeware application which enabled them to design and program a two- dimensional computer game. Their enthusiasm prompted their class teacher to download the software and to introduce a new unit of work for the whole class based around it.
Pupils were asked to design the graphics, layout and functionality of their own computer game and to write the program to implement their ideas for its design. Over a series of lessons, pupils used a ‘paint’ application to design their game backgrounds and sprites. Having completed the graphical elements, pupils wrote scripts to control movement and interaction in their games. This required them to learn to use sophisticated programming constructs such as ‘repeat… until’ and ‘if… then’ in capturing keyboard input, managing variables and testing whether particular conditions had been met.
The choice of task and software motivated pupils who were therefore able to make good progress. Most were able to write a series of executable instructions to implement the features of their game design. One autistic pupil excelled at this task and made better progress than his peers. He made outstanding use of loops, conditional jumps and incremental counters in his program. His skills exceeded those of his teacher, to whom he had to explain the principles of what he had done. “ (p9)
More opportunity for students to experiment with programming earlier on might also afford opportunities for independent learning and creative thinking (p21) and lead to an increase in students studying computing at GCE (p17), and beyond. Alas, there are, I suspect, too few teachers with the technical skills to teach programming well (p6). A little CPD might be in order (p7), perhaps in line with that cited for staff at a specialist media college, who were “expected to research, experiment and keep their skills up to date” (p35). Anyhow, that shouldn’t stop children learning to program, given the right opportunities, and perhaps a little encouragement from technical staff and open source developers acting as mentors, such as we see for college students engaged in Google’s Summer of Code programme, and such learning should at least be recognised by the school (p30).
Ofsted seem very critical of the poor value for money represented by much ICT spending (p6, p27), and particularly the failure of schools to apply principles of best value, such as comparing performance with others, challenging how services are provided or consulting stakeholders (p32-33), conditions that have to be met for delegated funding. They make a strong case for schools considering open source:
“open source operating systems and software are now a reliable and cost-effective solution, enabling the few schools that choose this route to achieve excellent value for money.” (p33)
This would appear to apply particularly to VLE procurement. I suspect it’s Moodle that they refer to when they state that “A few schools have used open source software for establishing a virtual learning environment, enabling them to obtain several years’ worth of development with no licensing costs.” (p34). An earlier Ofsted report had explored VLE usage in some detail, and the present report reports very limited use in a small number of schools (p15, p24), rarely going beyond the resource presentation mode that forms a very small subset of Moodle’s functionality. The slow pace and high cost of learning platform rollout comes in for some criticism:
“By the time all schools have established virtual learning environments, the technology may well have moved on, making them an expensive irrelevance. Further consideration should be given to the value for money provided by this national initiative.” (p35)
Mobile technology, much of it powered by open source platforms such as Android phones, Nokia internet tablets or Linux netbooks, is regarded more positively: “ICT has the greatest impact on learning when there is a greater availability of resources, particularly laptops and hand-held computers. “ (p14 qv p36)
Good, on-site, technical support does really seem to make a difference to teachers’ and pupils’ willingness to experiment with ICT; something which, it is to be hoped, BSF Managed Service Providers will take on board, although one school’s example of using able 8-11 year olds as tech support (p14) might provide an alternative for schools assimilated into the BSF hegemony.
Share


{% if profile==1 %}
{% else %}
{% endif %}
{{ school_info[0][4] }}
home
{{school_info[0][2]}}
phone
{{school_info[0][1]}}
email
{{school_info[0][3]}}
Toggle navigation
Go to profile
Assign teachers:
{% for i in range(structure[1]) %}
{{structure[0][i][1]}}
{% endfor %}
Subject
Assigned teacher
Teachers
Set


public final class GeometryTools2D
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
static double |
THRESHOLD
The threshold for equality testing in geometric operations.
|
| Modifier and Type | Method and Description |
|---|---|
static Line2D |
clipToRectangle(Line2D line,
double xMin,
double yMin,
double xMax,
double yMax)
Clip a line to a rectangle.
|
static double |
computeArea(java.util.List<Point2D> vertices)
Compute the area of a simple polygon.
|
static Point2D |
computeCentroid(java.util.List<Point2D> vertices)
Compute the centroid of a simple polygon.
|
static boolean |
contains(Line2D line,
Point2D point)
Find out if a point is on a line.
|
static double |
getAngleBetweenVectors(Vector2D first,
Vector2D second)
Compute the angle between two vectors in degrees.
|
static Point2D |
getClosestPoint(Line2D line,
Point2D point)
Find the closest point on a line.
|
static Point2D |
getClosestPointOnSegment(Line2D line,
Point2D point)
Find the closest point on a line.
|
static double |
getDistance(Point2D p1,
Point2D p2)
Compute the distance between two points.
|
static Point2D |
getIntersectionPoint(Line2D l1,
Line2D l2)
Find the intersection point of two lines.
|
static double |
getLeftAngleBetweenLines(Line2D first,
Line2D second)
Compute the angle between two lines in a counter-clockwise direction.
|
static double |
getLeftAngleBetweenVectors(Vector2D first,
Vector2D second)
Compute the angle between two vectors in a counter-clockwise direction.
|
static double |
getRightAngleBetweenLines(Line2D first,
Line2D second)
Compute the angle between two lines in a clockwise direction.
|
static double |
getRightAngleBetweenVectors(Vector2D first,
Vector2D second)
Compute the angle between two vectors in a clockwise direction.
|
static Point2D |
getSegmentIntersectionPoint(Line2D l1,
Line2D l2)
Find the intersection point of two line segments.
|
static boolean |
isRightTurn(Line2D first,
Line2D second)
Find out if we turn right from one line to another.
|
static boolean |
isRightTurn(Vector2D first,
Vector2D second)
Find out if we turn right from one vector to another.
|
static boolean |
nearlyZero(double d)
Find out if a number is near enough to zero.
|
static boolean |
parallel(Line2D l1,
Line2D l2)
Are two lines parallel?
|
static java.util.List<Line2D> |
pointsToLines(java.util.List<Point2D> points)
Convert a list of Point2D objects to a list of lines connecting adjacent points.
|
static java.util.List<Line2D> |
pointsToLines(java.util.List<Point2D> points,
boolean close)
Convert a list of Point2D objects to a list of lines connecting adjacent points.
|
static double |
positionOnLine(Line2D line,
Point2D point)
Find out how far a point is along a line.
|
static java.util.List<Point2D> |
vertexArrayToPoints(double[] vertices)
Convert a vertex array to a list of Point2D objects.
|
static java.util.List<Point2D> |
vertexArrayToPoints(int[] vertices)
Convert a vertex array to a list of Point2D objects.
|
public static final double THRESHOLD
public static Point2D getIntersectionPoint(Line2D l1, Line2D l2)
l1
- The first line.l2
- The second line.public static Point2D getSegmentIntersectionPoint(Line2D l1, Line2D l2)
l1
- The first line segment.l2
- The second line segment.public static boolean parallel(Line2D l1, Line2D l2)
l1
- The first line.l2
- The second line.public static boolean contains(Line2D line, Point2D point)
line
- The line to test.point
- The point to test.public static double positionOnLine(Line2D line, Point2D point)
line
- The line to test.point
- The point to test.public static double getRightAngleBetweenLines(Line2D first, Line2D second)
first
- The first line.second
- The second line.public static double getLeftAngleBetweenLines(Line2D first, Line2D second)
first
- The first line.second
- The second line.public static double getAngleBetweenVectors(Vector2D first, Vector2D second)
first
- The first vector.second
- The second vector.public static double getRightAngleBetweenVectors(Vector2D first, Vector2D second)
first
- The first vector.second
- The second vector.public static double getLeftAngleBetweenVectors(Vector2D first, Vector2D second)
first
- The first vector.second
- The second vector.public static boolean isRightTurn(Line2D first, Line2D second)
first
- The first line.second
- The second line.public static boolean isRightTurn(Vector2D first, Vector2D second)
first
- The first vector.second
- The second vector.public static boolean nearlyZero(double d)
d
- The number to test.public static double computeArea(java.util.List<Point2D> vertices)
vertices
- The vertices of the polygon.public static Point2D computeCentroid(java.util.List<Point2D> vertices)
vertices
- The vertices of the polygon.public static java.util.List<Point2D> vertexArrayToPoints(int[] vertices)
vertices
- The vertices in x, y order.public static java.util.List<Point2D> vertexArrayToPoints(double[] vertices)
vertices
- The vertices in x, y order.public static java.util.List<Line2D> pointsToLines(java.util.List<Point2D> points)
points
- The points to connect.public static java.util.List<Line2D> pointsToLines(java.util.List<Point2D> points, boolean close)
points
- The points to connect.close
- Whether to close the shape or not.public static Point2D getClosestPoint(Line2D line, Point2D point)
line
- The line to check.point
- The point to check against.public static Point2D getClosestPointOnSegment(Line2D line, Point2D point)
line
- The line to check.point
- The point to check against.public static double getDistance(Point2D p1, Point2D p2)
p1
- The first point.p2
- The second point.public static Line2D clipToRectangle(Line2D line, double xMin, double yMin, double xMax, double yMax)
line
- The line to clip.xMin
- The lower X coordinate of the rectangle.yMin
- The lower Y coordinate of the rectangle.xMax
- The upper X coordinate of the rectangle.yMax
- The upper Y coordinate of the rectangle.


Checks if this logger is enabled for the DEBUG
level.
true
if this logger is enabled for DEBUG
events, false
otherwise.
This function is intended to lessen the computational cost of disabled log debug statements.
For some log
Logger object, when you write:
[C#]
log.Debug("This is entry number: " + i );
You incur the cost constructing the message, concatenation in this case, regardless of whether the message is logged or not.
If you are worried about speed, then you should write:
[C#]
if (log.IsDebugEnabled())
{
log.Debug("This is entry number: " + i );
}
This way you will not incur the cost of parameter construction if debugging is disabled for log
. On the other hand, if the log
is debug enabled, you will incur the cost of evaluating whether the logger is debug enabled twice. Once in IsDebugEnabled
and once in the Debug
. This is an insignificant overhead since evaluating a logger takes about 1% of the time it takes to actually log.
LogImpl Class | log4net.Core Namespace


{% extends "base.html" %} {% block title %}Preferences — {{ service_name }}{% endblock %} {% block content %}
| Username / E-Mail | Authentication Method | |
|---|---|---|
| {{authentication.login['login']}} | {{ {'ldap': 'LDAP', 'email': 'Email', 'other': 'Other'}[authentication.type.name.lower()] }} | |
Note: API tokens are an authentication method for use with the HTTP API.
| Description | ||
|---|---|---|
| {{ authentication.login['description'] }} | View Log | |
Note: {{ service_name }} will notify you about various events. By default, these notifications will be sent using the {{ service_name }} notification system, but you can also chose to receive them via email or decide to ignore some notification types.
{% if not current_user.is_readonly %}Note: These permissions will be used for samples, measurements and simulations that you create in the future. To change the permissions for an already existing object, please use the Edit preferences button on the object's site.
{% if users %}


PLANET SICK-BOY: http://www.sick-boy.com "We Put the SIN in Cinema"
A few years back, Nora Ephron seemed like one of Hollywood's rising stars. She nabbed three Oscar nominations early in her career for penning a Mike Nichols film (Silkwood) and two Meg Ryan films (When Harry Met Sally and Sleepless in Seattle, the latter of which she directed). But Ephron's last few projects have practically erased any of the positive memories she created earlier in her career.
First came You've Got Mail, the ill-conceived remake of The Shop Around the Corner. Then Ephron wrote and produced Hanging Up, an irritating film based on an enjoyable book written by her sister Delia. Now it's Lucky Numbers' turn to squander A-list stars in a film that could have been a lot better in the right hands.
Numbers is set in Harrisburg, Pennsylvania during the holiday season of 1988. The film's main character is Russ Richards (John Travolta, Battlefield Earth), an annoyingly popular television weatherman with his own parking space at his favorite restaurant (Denny's) for his Jaguar convertible. Russ makes good money but squanders it on bad business investments. The latest – a snowmobile dealership – is struggling because of unseasonably warm weather. When the film opens, we see the game-show-host wannabe served with foreclosure papers on his huge suburban home.
When his boss (Ed O'Neill, The Bone Collector) refuses to give him an advance, Russ turns to Gig (Tim Roth, The Legend of 1900), a strip club owner who suggests the beleaguered personality fix the Pennsylvania State Lottery, which picks its numbers from Russ' television station. To do so, he must enlist the aid of Crystal Latroy (Lisa Kudrow, Hanging Up), the station's Vanna White-like Lotto girl, to help pull off the scam.
The first half of Numbers is somewhat promising and well-paced, but the second half really comes apart at the seams. There is so much backstabbing and double-crossing, it's hard to tell up from down. This is complicated by the fact that there isn't one sympathetic character in the film, so the aforementioned backstabbing and double-crossing has little effect. Even worse is a worthless subplot involving a lazy cop (Bill Pullman, Brokedown Palace) who may or may not be hot on the trail of Russ and Crystal.
Travolta looks frightening, even sans the Battlefield Earth makeup and hair. If you saw him playing a foppish vampire on Saturday Night Live, you might not be able to shake the image from your head during Numbers. He has the same creepy haircut. Watching Travolta and Roth opposite each other in several scenes makes it clear that one is a terrific actor, and the other is just calling in the performance. Kudrow, who always seemed to be the smartest member of Friends (The Opposite of Sex, Clockwatchers, Analyze This) until Ephron got a hold of her, shows off her impressive rack throughout the film. It's nice to see her play something other than a ditz.
Numbers was written by Adam Resnick, who directed Chris Elliott's Cabin Boy and co-produced his Get a Life television series. The film is loosely based on events that occurred on April 24, 1980 at WTAE in Pittsburgh, where an announcer rigged the Daily Numbers drawing. Numbers even borrows the line "If you've got it, come and get it; if not, better luck tomorrow" from the real-life story, which became known as `The 666 Fix' because of the triple-digit combination of numbers the crooked drawing produced.
1:46 – R for adult language, sexual content and violence
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


To show some of what can be done with Tcl/Tk, we will show an example of part of a GUI for an 8-queens program. Most people will be familiar with the 8-queens problem: how to place 8 queens on a chess board such that they do not attack each other according to the normal rules of chess.
Our example will not be a program to solve the 8-queens problem
(that will come later in the tutorial) but just the Tcl/Tk part for
displaying a solution. The code can be found in
library('tcltk/examples/ex18.tcl')
.
The way an 8-queens solution is normally presented is as a list of
numbers. The position of a number in the list indicates the column the
queens is placed at and the number itself indicates the row. For
example, the Prolog list [8, 7, 6, 5, 4, 3, 2, 1]
would indicate
8 queens along the diagonal starting a column 1, row 8 and finishing at
column 8 row 1.
The problem then becomes, given this list of numbers as a solution, how to display the solution using Tcl/Tk. This can be divided into two parts: how to display the initial empty chess board, and how to display a queen in one of the squares.
Here is our code for setting up the chess board:
% ex18.pl#! /usr/bin/wish proc setup_board { } { # create container for the board frame .queens # loop of rows and columns for {set row 1} {$row <= 8} {incr row} { for {set column 1} {$column <= 8} {incr column} { # create label with a queen displayed in it label .queens.$column-$row -bitmap @bitmaps/q64s.bm -relief flat # choose a background color depending on the position of the # square; make the queen invisible by setting the foreground # to the same color as the background if { [expr ($column + $row) % 2] } { .queens.$column-$row config -background #ffff99 .queens.$column-$row config -foreground #ffff99 } else { .queens.$column-$row config -background #66ff99 .queens.$column-$row config -foreground #66ff99 } # place the square in a chess board grid grid .queens.$column-$row -row $row -column $column -padx 1 -pady 1 } } pack .queens } setup_board
The first thing that happens is that a frame widget is created to contain the board. Then there are two nested loops that loop over the rows and columns of the chess board. Inside the loop, the first thing that happens is that a label widget is created. It is named using the row and column variables so that it can be easily referenced later. The label will not be used to display text but to display an image, a bitmap of a queen. The label creation command therefore has the special argument -bitmap @q64s.bm, which says that the label will display the bitmap loaded from the file q64s.bm.
The label with the queen displayed in it has now been created. The next thing that happens is that the background color of the label (square) is chosen. Depending on the position of the square it becomes either a “black” or a “white” square. At the same time, the foreground color is set to the background color. This is so that the queen (displayed in the foreground color) will be invisible, at least when the board is first displayed.
The final action in the loop is to place the label (square) in relation
to all the other squares for display. A chess board is a simple grid of
squares, and so this is most easily done through the grid
geometry
manager.
After the board has been set up square-by-square it still needs to be displayed,
which is done by pack
-ing the outermost frame widget.
To create and display a chess board widget, all that is needed is to call the procedure
setup_board
which creates the chess board widget.
Once the chess board has been displayed, we need to be able to take a solution, a list of rows ordered by column, and place queens in the positions indicated.
Taking a topdown approach, our procedure for taking a solution and displaying is as follows:
proc show_solution { solution } { clear_board set column 1 foreach row $solution { place_queen $column $row incr column } }
This takes a solution in solution
, clears the board of all queens, and
then places each queen from the solution on the board.
Next we will handle clearing the board:
proc clear_board { } { for { set column 1 } {$column <= 8} {incr column} { reset_column $column } } proc reset_column { column } { for {set row 1 } { $row <= 8 } {incr row} { set_queens $column $row off } } proc set_queens { column row state } { if { $state == "on" } { .queens.$column-$row config -foreground black } else { .queens.$column-$row config -foreground [.queens.$column-$row cget -background] } }
The procedure clear_board
clears the board of queens by calling
the procedure reset_column
for each of the 8 columns on a board.
reset_column
goes through each square of a column and sets the
square to off
through set_queens
. In turn, set_queens
sets the foreground color of a square to black if the square is turned
on
, thus revealing the queen bitmap, or sets the foreground color of a
square to its background color, thus making the queens invisible, if it
is called with something other than on
.
That handles clearing the board, clearing a column or turning a queen on or off on a particular square.
The final part is place_queen
:
proc place_queen { column row } { reset_column $column set_queens $column $row on }
This resets a column so that all queens on it are invisible and then
sets the square with coordinates given in row
and column
to on.
A typical call would be:
show_solution "1 2 3 4 5 6 7 6 8"
which would display queens along a diagonal. (This is of course not a solution to the 8-queens problem. This Tcl/Tk code only displays possible queens solutions; it doesn't check if the solution is valid. Later we will combine this Tcl/Tk display code with Prolog code for generating solutions to the 8-queens problem.)


nips nips2002 nips2002-143 nips2002-143-reference knowledge-graph by maker-knowledge-mining
Source: pdf
Author: Bin Wu, K. Wong, David Bodoff
Abstract: We study an explicit parametric model of documents, queries, and relevancy assessment for Information Retrieval (IR). Mean-ﬁeld methods are applied to analyze the model and derive efﬁcient practical algorithms to estimate the parameters in the problem. The hyperparameters are estimated by a fast approximate leave-one-out cross-validation procedure based on the cavity method. The algorithm is further evaluated on several benchmark databases by comparing with standard algorithms in IR.
[1] Cohn, D. and T. Hofmann (2001). The Missing Link – A Probabilistic Model of Document Content and Hypertext Connectivity. Advances in Neural Information Processing Systems 13, T. K. Leen, T. G. Dietterich and V. Tresp, eds., MIT Press, Cambridge, MA, 430-436.
[2] Jaakola, T. and H. Siegelmann (2002). Active Information Retrieval. Advances in Neural Information Processing Systems 14, T. G. Dietterich, S. Becker and Z. Ghahramani, eds., MIT Press, Cambridge, MA, 777-784.
[3] Rocchio, J. J. (1971). Relevance Feedback in Information Retrieval. SMART Retrieval System–Experiments in Automatic Document Processing, G. Salton ed., PrenticeHall, Englewood Cliffs, NJ, Chapter 14.
[4] Fuhr, N. and C. Buckley (1991). A Probabilistic Learning Approach for Document Indexing. ACM Transactions on Information Systems 9(3): 223-248.
[5] Bodoff, D., D. Enabe, A. Kanbil, G. Simon and A. Yukhimets (2001). A Uniﬁed Maximumn Likelihood Approach to Document Retrieval. Journal of the American Society for Information Science and Technology 52(10): 785-796.
[6] Opper, M. and D. Saad, eds. (2001). Advanced Mean Field Methods, MIT Press, Cambridge, MA.
[7] Wong, K. Y. M. and F. Li (2002). Fast Parameter Estimation Using Green’s Functions. Advances in Neural Information Processing System 14: 535-542, T.G. Dietterich, S. Becker and Z. Ghahramani, eds., MIT Press, Cambridge, MA.
[8] Salton, G. and M. J. McGill (1983). Introduction to Modern Information Retrieval, McGraw-Hill, New York, 63-66.
[9] Deerwester, S., S. T. Dumais, G. W. Furnas, T. K. Landauer and R. Harshman (1990). Indexing by Latent Semantic Analysis. Journal of the American Society for Information Science 41(16): 391-407.
[10] Nocedal, J. and S. J. Wright (1999). Numerical Optimization, Springer, Berlin, Ch. 17.
[11] Bishop, C. M. (1995). Neural Networks for Pattern Recognition, Clarendon Press, Oxford, 372-375.
[12] Bodoff, D., B. Wu and K. Y. M. Wong (2002). Relevance Feedback meets Maximum Likelihood, preprint.
[13] Bartell, B. T., G. W. Cottrell and R. K. Belew (1992). Latent Semantic Indexing Is an Optimal Special Case of Multidimensional Scaling. Proceedings of the 15th International ACM SIGIR Conference on Research and Development in Information Retrieval, 161-167.


We are designers, coders, nerds, and strategists who expedite the development process to build you cutting-edge products. We perform and innovate at a startup speed for reimagining the future through continuous delivery and iterations. As we drive digital revolution in the right direction, come take a colossal leap with us.


{% load static %}
Slot Booking
Slot Booking Page
Any appointment can be made for the current day or for a future date.
No two appointments should overlap. If an appointment already exists for a day, a warning should be shown.
Appointments can be edited and deleted.
Mon
Tue
Wed
Thu
Fri
Sat
Sun
Date
Name
Start Time
End Time
Clear details
Book Slot
Booked Slot
Clear Slots
Date
Name
Start time
End time
Action


--- title: Flask app from smart-on-fhir/client-py/README.md keywords: fastai sidebar: home_sidebar summary: "Getting started with Flask using client-py." description: "Getting started with Flask using client-py." nb_path: "51_flask_client_py_readme.ipynb" ---
You can run this notebook
smart = client.FHIRClient(settings=smart_defaults)
for p in _get_patients(smart): assert p.id is not None # TODO: write a better test
if not IN_COLAB:
from nbdev.export import notebook2script
notebook2script('51_flask_client_py_readme.ipynb')
The following cell will only run if you're in colab, where you'll see output like
* Serving Flask app "__main__" (lazy loading)
...
INFO:werkzeug: * Running on http://<IP_ADDRESS>:5000/ (Press CTRL+C to quit)
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): bin.equinox.io:443
...
DEBUG:urllib3.connectionpool:http://localhost:4040 "GET /api/tunnels HTTP/1.1" 200 779
* Running on http://35c09c8e5eb5.ngrok.io
* Traffic stats available on http://<IP_ADDRESS>:4040
Hit the ngrok.io
link to see the app - none of the localhost or <IP_ADDRESS> links will work
if IN_COLAB:
logging.basicConfig(level=logging.DEBUG)
from flask_ngrok import run_with_ngrok
run_with_ngrok(app)
app.run()


OLD MADGE FIGGEY AND THE PIG.
MADGE FIGGEY once lived in St Leven, but she removed to Burian Church-town. She had a neighbour, Tom Trenoweth, who had a very fine sow, and the old creature took it into her head to desire this sow. The pig was worth a pound of any man's money, but Madge offered Tom five shillings for it.
"No," says Tom, "I shan't sell the sow to you, nor to anybody else. I am going to put her in the house, and feed her for myself against winter."
"Well," said old Madge, nodding her head, and shaking her finger at Tom, "you will wish you had."
From that time the sow ceased to "goody" (thrive). The more corn the sow ate, the leaner she became. Old Madge came again, "Will ye sell her now, Tom?"
"No ! and be--to you," said Tom.
"Arreah, Tom ! you will wish you had, before another week is ended, I can tell ye."
By next week the sow was gone to skin and bone, yet eating all the time meat enough for three.
At last Tom took the sow out of the house, and prepared to drive her to Penzance market, and sell her for what she would fetch.
The rope was put round her leg, but more for fashion's sake than anything else. The poor pig could scarcely stand on her legs, consequently there was little chance of her running away. Well, Tom and his pig were no sooner on the highroad than the sow set off like a greyhound, and never stopped, racing over hedges and ditches, until she reached Leah Lanes. Tom kept hold of the rope till his arm was almost dragged from his body, and he was fairly "out of breath." He dropped the rope, piggy went on "as quiet as a lamb," but only the way which pleased her best. At last Tom and the sow arrived at Tregenebris Downs. At the corner of the roads, where they divide,--one going to Sancreed, and the other to Penzance,--Tom again laid hold of the rope, and said to himself " I 'll surely get thee to Penzance yet."
The moment they came to the market-road, the sow made a bolt, jerked the rope out of Tom's hand, and ran off at full speed, never stopping until she got in under Tregenebris Bridge. Now that bridge is more 'like a long drain--locally a bolt--than anything else, and is smallest in the middle; so when the sow got half way in, she stuck fast; she couldn't go forward--she wouldn't come back. Tom fired all the stones he could find-- first at the pig's head, and then at her tail--and all he got for his pains was a grunt. There he stopped, watching the sow till near sunset; he had eaten nothing since five in the morning, and was starving. He saw no chance of getting the sow out, so he swore at her, and prepared to go home, when who should come by but old Madge Figgey, with her stick in one hand and basket in the other.
"Why, Tom, is that you ? What in the world are ye doing here at this time 'o' day ?"
"Well," says Tom, " I 'm cussed if I can tell; look under the bridge, if you 're a mind to know."
"Why, I hear the sow grunting, I declare. What will ye sell her for now ?"

Madge gave him a twopenny loaf.
"Thank ye," says Tom. "Now the devil take the both of ye !"
"Cheat ! cheat ! cheat !" says Madge. Out came the sow, and followed her home like a dog.


FILM TITLE: TANGO DIRECTOR: CARLOS SAURA COUNTRY: SPAIN/ARGENTINA 1998 CINEMATOGRAPHY: VITTORIO STORARO MUSIC: LALO SCHIFRIN CAST: MiguelAngel Sola, Cecilia Narova, Mia Maestro, Julio Bocca (as himself), Juan Carlos Copes, Juan Luis Galiardo SUPER FEATURES: The Dancing, of course. And the cinematography, too.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
(Seen at the 22nd Portland International Film Festival, in Portland, Oregon)
TANGO should either be considered one of the best designed dancing films ever made, or simply an exercise in defining what the beauty of dancing can be like that most of us will never catch in any theater in our lives.
The inevitable comparison to this film, AND it is a distant one, is ALL THAT JAZZ, and only in the design and mix of the Tango and modern dance. The choreography is astounding, specially when devising the dramatic sequences that this film creates for our imagination. I am not sure that many of us can get this much WOW factor in the best show that we have ever seen. Add to that a cinematographer that is capable of using light so well, and we have a very beautifully made film, that even though it lags here and there, still it comes off as great, and magnificent.
There is a fine line when a film could be considered too artsy, to the point of getting close to being a bore, and this film finds a way to tamper that with fiery dancing sequences, that pretty much tell the story of the film, even suggesting such dramatic opinions of history like it was the Tango that helped people in Argentina come out of the depression in the early 30's. A dance that helped people define and appreciate their culture, if there is such a thing.
The difficult thing in this film, is having the patience to sit through it and make an attempt to find a story, which is rather lost in the film within a film thing, that comes clear in the end, but is only suggested early. However, in the early moments we only see the equipment, and not any interaction with it. In ALL THAT JAZZ, the Bob Fosse character is totally involved in his production to a level that is harmful to his health. In this film, like many before for Carlos Saura, once again, this is the theme, but Saura is not afraid to admit that it is his life that brings about the art. Mario, is devising the show he is putting together from his own life, despite the producers wanting a bit of a piece of fluff instead. Mario, is learning as he gets older, that it is the women that inspire the Tango, and it is his new found love that helps define the show. But he is by now well aware that many of these women will be gone in the next day, and his taking on a new dancer and lover is the defining moment for his production.
But if this intricacy of story is not enough, an old story rehashed again, one can at least take refuge in some of the freshest and best designed dancing done on film since the ALL THAT JAZZ film. Well, there is more. If the dancing is not enough, all cinematic styles of shooting are thrown out the window to create a dazzling array of images with lights, scrims, and camera movement, watching shadows of bodies dancing together. If this is not making love to a dance, then the love does not exist, or the dance is dead.
Carlos Saura has made mostly films that deal with dance, in his time. Even in his early days, when he did Garcia Lorca's Bloody Trilogy all acted out through dance, his style has only evolved in that in this film it hits its heights as a visual art stunningly cinematographed by Vittorio Storaro. His CARMEN, was very similar but lacked the outlandishly designed sets that this film has. CARMEN may have the better story, but this film has the better choreography and style.
How, then is one to rate a film like this. It's really not a film, in the sense that its totality is less a film than it is a magnificent evening at the theater seeing a superb troupe of dancers amidst the best direction and lights available anywhere. But Mario does tell his story, even from his young days, when he became involved in it. His painful marriage breakup, happens at a time when he needs the dance the most. The suggestion is that his wife was the inspiration for much of his work. An older man, talks about his days dancing, and how he has lost the joy of dancing since his wife died. Mario, appears afraid that this will happen to him. While the whole story is nebulously told, amidst the rehearsals and developing new moments in his life, Mario manages to show us how his own design and choreography takes shape. It may be simply the turning on of a fan, that immediately shows us dresses moving in the wind, to immediately show us how an artist can easily design and create his choreography. For Mario, it has been his life, and it is continuing to be so, as Elena walks in.
Carlos Saura has either elevated the Tango to a level that is beyond film, or this film is strictly a tribute to it. The visuals add to that immensely. I am not sure that this film would be as important, or as good as it is, were it not for the design of the sets and the magnificent choreography that it is centered around. For this task, three of the world's best considered Tango masters took on the honors, and one of them is the tireless instructor helping the young dancers go through their steps. Even though he is a much older man, he still has the grace and the beauty that the Tango demands, and he is not afraid to show it to his students.
A truly beautiful film, if there is such a thing, although this reviewer might have suggested that it need not be so darkly done. Colors everywhere accentuate the dances and the choreography by Juan Carlos Copes, Carlos Rivarola and Ann Maria Stekelman to make this a worthy candidate for the Oscar for best Foreign Language Film. With masters like Vittorio Storaro at the helm of the cameras, it shouldn't hurt its chances.
If you like dance, of any kind, this film is for you. If you like steroid films, please miss this one, or you will be bored senseless. But few films are capable of elevating anything, specially when it comes to an art form, and in this case it is impressive what one art form has done for another.
4 of 5 GIBLOONS Reviewed by Pedro Sena, Copyright (c) Pedro Sena 1999. All Rights Reserved.
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


{% include head.html %}
{% include topbar.html %}
{% include header.html %} {% include features.html %} {% include apps.html %} {% include comparison.html %}
FAQs
DETAILS
{% include faq.html %}
{% include details.html %}
{% include testimonials.html %} {% include featured-in.html %}
{% include footer.html %} {% include js.html %}