DyPy API¶
dypy
Package
DyPy Core¶
Dynamic Program class - implements only backward dynamic programming. Ideal usage is to have an objective function defined by the user, however they’d like.
The user defines as many StateVariable instances as they have state variables in their DP and they define a DecisionVariable. The objective function should be prepared to take arguments with keyword values for each of these, where the keyword is determined by the name attribute on each instance. It then returns a value.
For situations with multiple state variables, we have reducers, which, prior to minimization or maximization will reduce the number of state variables to one so that we can get a single F* for each input scenario. This is a class Reducer with a defined interface, and can then be extended. For our levee problem, we have a ProbabilisticReducer which keeps track of the probability of each set of state variables and can collapse by a master variable. Probabilities must be provided by the user.
# TODO: Make sure to check how we can make the decision variable properly interact with the state variable - thinking # of making sure that the decision variable adds to the correct state variable items # TODO: Missing plan for how we assign probabilities here - needs to be incorporated somewhere # TODO: Missing choice constraints (eg, minimim possible selection at stage ___ is ___)
At that point, usage for the levee problem should be something like:
import support # user's extra code to support the objective function
import dypy as dp
objective_function = support.objective_function
height_var = dp.StateVariable("height")
flow_var = dp.StateVariable("peak_flow")
variance_var = dp.StateVariable("variance")
decision_var = dp.DecisionVariable()
decision_var.related_state = height_var # tell the decision variable which state it impacts
dynamic_program = dp.DynamicProgram(objective_function=objective_function,
state_variables=(height_var, flow_var, variance_var),
decison_variable=decision_var)
dynamic_program.optimize() # runs the backward recursion
dynamic_program.get_optimal_values() # runs the forward method to obtain choices
-
class
dypy.
DiscountedSimplePrior
(stage, data=None, matrix=None)[source]¶ Bases:
dypy.SimplePrior
Same as SimplePrior, but discounts values from future stages before applying them to the current stage. This discounting is cumulative (as in stage n+2 will be discounted and applied to stage n+1 and then that summed value will then be discounted and applied to stage n.
Discount rate is taken from the DynamicProgram object and will be transformed (simply) to cover the timestep size on the DynamicProgram - see the DynamicProgram parameter documentation for more.
-
class
dypy.
DynamicProgram
(objective_function=<function default_objective>, timestep_size=None, time_horizon=None, discount_rate=0, state_variables=None, max_selections=None, selection_constraints=None, decision_variable=None, calculation_function=None, prior=None)[source]¶ Bases:
object
This object actually runs the DP - doesn’t currently support multiple decision variables or probabilities.
Currently designed to only handle backward DPs.
- Attributes:
- DynamicProgram.stages list of Stage objects
Parameters: - objective_function – What function provides values to populate each cell in each stage? Not required if you build your own stages with their own values
- selection_constraints – Is there a minimum value that must be achieved in the selection? If so, this should be a list with the required quantity at each time step
- decision_variable – a DecisionVariable instance object
- discount_rate – give the discount rate in timestep_size units. Though timesteps don’t need to be in years, think of the discount rate as applying per smallest possible timestep size, so if your timestep_size is 40, then your discount rate will be for one timestep in 40 and will compound across the 40 timesteps in the single stage. Defaults to 0, which results in no discounting, and discounting is only enabled automatically if you use the DiscountedSimplePrior, or another Prior object that handles discounting.
- calculation_function – What function are we using to evaluate? Basically, is this a maximization (benefit) or minimization (costs) setup. Provide the function object for max or min. Provide the actual min or `max functions (don’t run it, just the name) or if convenient, use the shortcuts dp.MINIMIZE or dp.MAXIMIZE
- max_selections – Up to what value of the state variable can we use to make our decision? If not provided, all values of the state variable will be allowed
- prior – Which class should be used to handle priors (best values from future stages) - SimplePrior is best in many cases, but may not apply everywhere and will be slow for large tables. Just provide the class object, not an instance.
-
add_stage
(name)[source]¶ Adds an empty stage to this DynamicProgram, tied to the currently set DecisionVariable and Prior classes associated with this DynamicProgram. Gives the stage the name provided as a parameter, usually generated automatically by the DP.
This method is called automatically by default, but is exposed as a public method primarily so you can control its usage if you desire, or so you can override its behavior in a subclass (such as if you wish to manually handle Stage creation in order to control the process for a specific dynamic programming problem).
Parameters: name – The name associated with the stage. Generated by the name prefix and the stage ID when called via build_stages Returns: None
-
add_state_variable
(variable, setup_state=True)[source]¶ - Adds a state variable object to this dynamic program - automatically sets up the dynamic program to run with the new state variable when setup_state is True.  If you provide your state variables at DynamicProgram creation, then this method does not need to be called.
Parameters: - variable – A StateVariable object - afterward, will be available in .state_variables
- setup_state – If True, runs _setup_state_variables after finishing. Default is True, but when adding a bunch of state variables, it’s faster just to manually run it once at the end. It runs it by default so that for simple DPs, you don’t need to think about it, but advanced, larger DPs, may wnat to set it to False and run _setup_state_variables once all are added
Returns:
-
class
dypy.
Prior
(stage, data=None, matrix=None)[source]¶ Bases:
object
The Prior classes provide different ways of applying future stage values to earlier stages. SimplePrior includes an implementation that will work for most single variable problems, but which may not work for multi-variable problems. This class can be subclassed and have the apply method overridden to provide a different implementation. The apply method should return the new matrix
Parameters: - stage – The Stage object to attach this prior to - allows for different stages to have different prior application methods, if needed
- data – The values from the future stage to apply back to the previous stage
- matrix – The matrix (2D numpy array) for consideration in the current stage
- transformation – A function - can be used by subclasses to transform values prior to applying them
-
class
dypy.
SimplePrior
(stage, data=None, matrix=None)[source]¶ Bases:
dypy.Prior
A simple implementation of the prior class - given a single set of optimal values from the future stage (as a 1D numpy array), it applies these values to the previous stage by flipping the axis of the decision and shifting the values down by 1 as we move across the decisions.
This prior application method won’t work for multiple state variables or for state variables with different discretization than decision variables. For more advanced situations with multiple states, we’ll need to use the linked_state attribute on the decision variables to understand how to apply priors. This functionality may need to be re-engineered or expanded.
-
class
dypy.
Stage
(name, decision_variable, parent_dp, previous=None, next_stage=None, prior_handler=None)[source]¶ Bases:
object
-
build
()[source]¶ - Builds the stage table - evaluates the objective function for each location, passing the various values to it so it can provide a result. Does not handle prior data though - that is handled when we actually run the DP. We separate this out so that people who want to intervene between generating the stage table and handling the prior can do so.
Returns:
-
get_optimal_values
(prior=0)[source]¶ - After running the backward DP, moves forward and finds the best choices at each stage.
Parameters: prior – The value of the choice at each stage Returns:
-
optimize
(prior=None)[source]¶ This handles the actual backward DP calculation - assumes that the stage has a matrix that is built already with appropriate values. Calls the Prior object to apply future values back to the current stage, when necessary.
- Need to think about where reducers fit in
- Need to figure out how we want to handle both selection constraints, but also decision/state interactions
Right now, we can say which state a decision feeds back on - but what’s going through my head about that is:
1. Do we need that if we expect an objective function? I think we do because that determines how we take values from the future and propogate them backward. This is where maybe we might not actually be able to use numpy broadcasting? Or maybe we have to shift the array we’re broadcasting to align based on the best decision - not sure - need to think of how we’re going to handle that a bit more
2. What about where there’s some limit imposed by decision var / state var interaction. For example, with the course studying test problem - in the last stage, the state variable can’t be less than the decision variable. Maybe that’s always the case though, and is only a last stage problem?
Parameters: prior – Returns:
-
-
dypy.
default_objective
(*args, **kwargs)[source]¶ - A bare objective function that makes all cells 0 - provided as a default so we can build stages where someone might do a manual override, but the DP should check to make sure the objective isn’t the default with all cells at 0 before solving.
Parameters: - args –
- kwargs –
Returns:
DyPy Variables¶
-
class
dypy.variables.
AbstractVariable
(name, variable_id=None, minimum=None, maximum=None, step_size=None, values=None, *args, **kwargs)[source]¶ Bases:
object
-
maximum
¶
-
minimum
¶
-
step_size
¶
-
values
¶
-
-
class
dypy.variables.
DecisionVariable
(*args, **kwargs)[source]¶ Bases:
dypy.variables.AbstractVariable
We’ll use this to manage the decision variable - we’ll need columns for each potential value hereParameters: - name –
- related_state – the StateVariable object that this DecisionVariable directly feeds back on
- variable_id – will be used as the kwarg name when passing the value of the state into the objective function. If not provided, is generated from name by removing nonalphanumeric or underscore characters, lowercasing, and removing numbers from the beginning. If it is provided, it is still validated into a Python kwarg by removing leading numbers and removing non-alphanumeric/underscore characters, while leaving any capitalization intact
-
add_constraint
(stage, value)[source]¶ Will be used to add constraints on how much or little of the decision variable is chosen in each stage. Not yet implemented
Want to figure out a way here to store also whether this constraint is a minimum or a maximum value constraint. Need to think how we’d handle that behavior
Parameters: - stage –
- value –
Returns:
-
class
dypy.variables.
StateVariable
(*args, **kwargs)[source]¶ Bases:
dypy.variables.AbstractVariable
Parameters: - name –
- values –
- initial_state – the initial value of this state variable at stage 0 - used when getting the ultimate solution - if not provided or None, then any state can be usd in the first stage, which is often not desired.
- availability_function –
A numpy function indicating which states in the next stage are valid selections given the value in the current stage plus decisions. Should be: - numpy.equal (default) - only values that match the current state of this variable are available selections - numpy.not_equal - only values not matching the current state are valid - numpy.greater - only state values greater than the current state are available selections - numpy.greater_equal - same as above, but greater than or equal - numpy.less - only state values less than the current state are available selections - numpy.less_equal - same as above, but less than or equal
Any function that takes a 2D numpy array as parameter one and the state value as parameter 2 and returns a new 2D array is valid.
- variable_id – will be used as the kwarg name when passing the value of the state into the objective function. If not provided, is generated from name by removing nonalphanumeric or underscore characters, lowercasing, and removing numbers from the beginning. If it is provided, it is still validated into a Python kwarg by removing leading numbers and removing non-alphanumeric/underscore characters, while leaving any capitalization intact
-
dypy.variables.
check_variable_id
(name, variable_id)[source]¶ - Given a full variable name and a current variable_id returns the keyword argument name for the variable. Designed for private within-package usage, but public for inspection and overriding.
Parameters: - name – Full name of a variable
- variable_id – the current variable ID
Returns: sanitized new variable_id, suitable for usage in a Python keyword argument
DyPy State Variable Reducers¶
-
class
dypy.reducers.
ProbabilisticReducer
(variable, stage)[source]¶ Bases:
dypy.reducers.Reducer
Given a StateVariable to process (S), and a set of StateVariables to hold constant (Cs), reduces S for each combination of Cs by multiplying the objective values in the records for S by their probabilities and summing them.
We should be able to actually just make this have a single column for probabilities so that we can do the same thing we planned to do for the variable reducer and just (ignoring the first paragraph of this docstring) select a master variable, get all rows for it, multiply those rows by the probability field, and sum them up.
-
class
dypy.reducers.
Reducer
(variable, stage)[source]¶ Bases:
object
Reduces multiple state variables to a single state variable so we can just minimize
-
class
dypy.reducers.
VariableReducer
(variable, stage)[source]¶ Bases:
dypy.reducers.Reducer
Given a StateVariable, reduces the table size by collapsing all other variables - can do this by min/max/mean/sum of all options.
Saving implementation here until after we have a better sense for how the rest of this will be implemented’
Parameters: - variable –
- stage –


Simple does not need to install. Make bootable media usb flash and ready to act.
Modern look and very easy in using it. There is a dark and light theme.
Anyone can use, copy, learn, modify, and redistribute.
This free operating system does not have to pay. But if you are interested we accept your donation.
We are open to anyone interested in developing this linux distro.
Contact and join now!
Copyright © <<Hack|Track GNU/Linux.


Bootstrap's global default font-size is 14px, with a line-height of 1.428 (about 20px).
This is applied to the
and all
paragraphs (

).
In addition, all

elements hava a
bottom margin that equals half their
computed line-height (10px by default).
In Bootstrap the HTML
element is used
to create a lighter, secondary text in any
heading.
Example Corp today announced record profits for the second quarter (Full Disclosure: Foo News is a subsidiary of Example Corp), leading to speculation about a third quarter merger with Demo Group.
Consider the following quote:
Look around and you will find, no-one's really
colour blind.
As we can tell from the spelling of the word, the person writing this quote is clearly not American.
The WHATWG started working on HTML5 in 2004.
He began his list of "lessons" with the following:
One should never assume that his side of the issue will be recognized, let alone that it will be conceded to have merits.
He continued with a number of similar points, ending with:
Finally, one should be prepared for the threat of breakdown in negotiations at any given moment and not be cowed by the possibility.
We shall now discuss these points...
.dl-horizontal
The code
element represents a fragment of computer code.
When you call the activate()
method on the
robotSnowman
object, the eyes glow.
The example below uses the begin
keyword to indicate the
start of a statement block. It is paired with an end
keyword, which is followed by the .
punctuation
character (full stop) to indicate the end of the program.
var i: Integer;
begin
i := 1;
end.
To make George eat an apple, press Shift+F3.
To make George eat an apple, select File|Eat Apple....
白日依山尽， Bai Ri Yi Shan Jin, 黄河入海流。 Huang He Ru Hai Liu. 欲穷千里目， Yu Qiong Qian Li Mu, 更上一层楼。 Geng Shang Yi Ceng Lou.
This text is normal.
This text is muted (.text-muted
).
This text is important (.text-primary
).
This text indicates success (.text-success
).
This text represents some information (.text-info
).
This text represents a warning (.text-warning
).
This text represents danger (.text-danger
).
This text is normal.
This text is important (.bg-primary
).
This text indicates success (.bg-success
).
This text represents some information (.bg-info
).
This text represents a warning (.bg-warning
).
This text represents danger (.bg-danger
).


Your ally in pumping corrosive and acidic slurries. The award-winning Hippo Slurry Pump Range is the perfect workhorse to deal with the continuous and harsh demands of the mining and mineral processing industries. Custom built, the Hippo Slurry Pump Range provides pumping solutions that are robust, rugged, reliable and flexible. The pumps capacities are extremely diverse and can assist in applications ranging from high-volume dewatering applications to settled out acidic and corrosive slurries. The Hippo Slurry Pump Range can be built to explosion-proof standard IEC 60097-1:2005 and is available in various formats and applications.
The Hippo Heavy Duty Slurry Pump Range was designed and developed to be capable of pumping corrosive and abrasive slurries. The heavy duty slurry pump range was named after the Hippopotamus that is habitant of the waterways in Africa and has similar characteristics namely being robust and strong. The Hippo pump range consists of both an all metal heavy duty slurry submersible as well as a vertical spindle cantilever pump range.
The Hippo Heavy Duty Slurry Vertical Spindle Pumps is the world most versatile pump range. The Hippo Vertical Spindle Slurry Pump Range is an all metal vertical spindle pump that consists of a Bottom Suction configuration, Bottom Discharge configuration, Top Suction configuration and a Vortex configuration. With proven reliability and efficiency the HIPPO pumps can effectively deal high density abrasive and corrosive slurries. With the capabilities of running dry and pumping heads up to 110 meters and flow 1500 litres a second it can handle any application


Code Overview¶
The bulk of pgAdmin is a Python web application written using the Flask framework on the backend, and HTML5 with CSS3, Bootstrap and jQuery on the front end. A desktop runtime is also included for users that prefer a desktop application to a web application, which is written in C++ using the QT framework.
Runtime¶
The runtime is essentially a Python webserver and browser in a box. Found in the /runtime directory in the source tree, it is a relatively simple QT application that is most easily modified using the QT Creator application.
Web Application¶
The web application forms the bulk of pgAdmin and can be found in the /web directory in the source tree. The main file is pgAdmin4.py which can be used to run the built-in standalone web server, or as a WSGI application for production use.
Configuration¶
The core application configuration is found in config.py. This file includes all configurable settings for the application, along with descriptions of their use. It is essential that various settings are configured prior to deployment on a web server; these can be overridden in config_local.py or config_system.py (see the config.py documentation) to avoid modifying the main configuration file.
User Settings¶
When running in desktop mode, pgAdmin has a single, default user account that is used for the desktop user. When running in server mode, there may be unlimited users who are required to login prior to using the application. pgAdmin utilised the Flask-Security module to manage application security and users, and provides options for self-service password reset and password changes etc.
Whether in desktop or server mode, each user’s settings are stored in a SQLite database which is also used to store the user accounts. This is initially created using the setup.py script which will create the database file and schema within it, and add the first user account (with administrative privileges) and a default server group for them. A settings table is also used to store user configuration settings in a key-value fashion. Although not required, setting keys (or names) are typically formatted using forward slashes to artificially namespace values, much like the pgAdmin 3 settings files on Linux or Mac.
Note that the local configuration must be setup prior to setup.py being run. The local configuration will determine how the script sets up the database, particularly with regard to desktop vs. server mode.
pgAdmin Core¶
The heart of pgAdmin is the pgadmin package. This contains the globally available HTML templates used by the Jinja engine, as well as any global static files such as images, Javascript and CSS files that are used in multiple modules.
The work of the package is handled in it’s constructor, __init__.py. This is responsible for setting up logging and authentication, dynamically loading other modules, and a few other tasks.
Modules¶
Units of functionality are added to pgAdmin through the addition of modules. Theses are Python object instance of classes, inherits the PgAdminModule class (a Flask Blueprint implementation), found in web/pgadmin/utils.py. It provide various hook points for other modules to utilise (primarily the default module - the browser).
To be recognised as a module, a Python package must be created. This must:
Be placed within the web/pgadmin/ directory, and
Implements pgadmin.utils.PgAdminModule class
An instance variable (generally - named blueprint) representing that particular class in that package.
Each module may define a template and static directory for the Blueprint that it implements. To avoid name collisions, templates should be stored under a directory within the specified template directory, named after the module itself. For example, the browser module stores it’s templates in web/pgadmin/browser/templates/browser/. This does not apply to static files which may omit the second module name.
In addition to defining the Blueprint, the views module is typically responsible for defining all the views that will be rendered in response to client requests, we must provide a REST API url(s) for these views. These must include appropriate route and security decorators. Take a look at the NodeView class, which uses the same approach as Flask’s MethodView, it can be found in web/pgadmin/browser/utils.py. This specific class is used by browser nodes for creating REST API url(s) for different operation on them. i.e. list, create, update, delete, fetch children, get statistics/reversed SQL/dependencies/dependents list for that node, etc. We can use the same class for other purpose too. You just need to inherit that class, and overload the member variables operations, parent_ids, ids, node_type, and then register it as node view with PgAdminModule instance.
Most pgAdmin modules will also implement the hooks provided by the PgAdminModule class. This is responsible for providing hook points to integrate the module into the rest of the application - for example, a hook might tell the caller what CSS files need to be included on the rendered page, or what menu options to include and what they should do. Hook points need not exist if they are not required. It is the responsibility of the caller to ensure they are present before attempting to utilise them.
Hooks currently implemented are:
class MyModule(PgAdminModule):
"""
This is class implements the pgadmin.utils.PgAdminModule, and
implements the hooks
"""
...
def get_own_stylesheets(self):
"""
Returns:
list: the stylesheets used by this module, not including any
stylesheet needed by the submodules.
"""
return [url_for('static', 'css/mymodule.css')]
def get_own_javascripts(self):
"""
Returns:
list of dict:
- contains the name (representation for this javascript
module), path (url for it without .js suffix), deps (array of
dependents), exports window object by the javascript module,
and when (would you like to load this javascript), etc
information for this module, not including any script needed
by submodules.
"""
return [
{
'name': 'pgadmin.extension.mymodule',
'path': url_for('static', filename='js/mymodule'),
'exports': None,
'when': 'server'
}
]
def get_own_menuitems(self):
"""
Returns:
dict: the menuitems for this module, not including
any needed from the submodules.
"""
return {
'help_items': [
MenuItem(
name='mnu_mymodule_help',
priority=999,
# We need to create javascript, which registers itself
# as module
module="pgAdmin.MyModule",
callback='about_show',
icon='fa fa-info-circle',
label=gettext('About MyModule'
)
]
}
def get_panels(self):
"""
Returns:
list: a list of panel objects to add implemented in javascript
module
"""
return []
...
blueprint = MyModule('mymodule', __name__, static_url_path='/static')
pgAdmin Modules may include any additional Python modules that are required to fulfill their purpose, as required. They may also reference other dynamically loaded modules, but must use the defined hook points and fail gracefully in the event that a particular module is not present.
Nodes¶
Nodes are very similar to modules, it represents an individual node or, collection object on the browser treeview. To recognised as a node module, a Python package (along with javascript modules) must be created. This must:
Be placed within the web/pgadmin/browser/ directory, and
Implements the BrowserPluginModule, and registers the node view, which exposes required the REST APIs
An instance of the class object
Front End¶
pgAdmin uses javascript extensively for the front-end implementation. It uses require.js to allow the lazy loading (or, say load only when required), bootstrap for UI look and feel, Backbone for data manipulation of a node, Backform for generating properties/create dialog for selected node. We have divided each module in small chunks as much as possible. Not all javascript modules are required to be loaded (i.e. loading a javascript module for database will make sense only when a server node is loaded completely.) Please look at the the javascript files node.js, browser.js, menu.js, panel.js, etc for better understanding of the code.


Review by John Beachem
* *
Directed by: William Malone Written by: Dick Beebe
In a Hollywood slowly growing devoid of original ideas, the current trend is to remake the movies of old. How the 1958 Vincent Price vehicle "House on Haunted Hill" was ever chosen for a remake will remain a mystery. While the original film was a fun, cheesy, "b" horror movie, the remake only possesses one of those qualities. I'll allow you to guess to which one I refer.
Steven Price (Geoffrey Rush) is a multi-millionaire, who has acquired his fortune by creating a series of terrifying amusement parks. His wife, Evelyn (Famke Janssen), is utterly miserable in their marriage, but remains with her husband for his money. Her latest idea for how to spend his cash, is to rent an old, abandoned mental institute and hold a party. Steven, however, has different plans. Inviting four strangers in place of Evelyn's chosen guests (Taye Diggs, Ali Larter, Bridgette Wilson, Peter Gallagher), Steven offers one million dollars to anyone who can survive a night in the house.
It will forever remain a mystery to me, how great actors are occasionally drawn to horrible scripts. Geoffrey Rush acts terrifically in almost anything he is cast in. Here, however, he so shamelessly overacts that you'll find your teeth grinding whenever a word comes out of his mouth. The other actors are uniformly terrible, the only exception being Chris Kattan (A Night at the Roxbury) as the owner of the house, who is given the film's few funny lines, and seems to realize what a terrible movie he's in.
I try to find something positive in every movie I see, so here goes. Chris Kattan's performance is one of the few hightlights here, along with three or four truly eerie scenes in the first 45 minutes of the movie. Among them, a scene in which a long dead doctor's ghost begins stalking one of the characters, and where an angry spirit flies from a corner at a character with a video camera. The amusement park rides shown during Steven Price's introduction are quite entertaining, as well.
Now, onto the majority of the movie. The characters here, with the exception of Kattan's Watson Pritchett and Rush's Steven Price, possess no character whatsoever. A character dies, and all one can think is "who was that?" while blood covers the screen. The story attempts one or two shocking moments, though they can be predicted far in advance. Speaking of predictable events, when the characters were first introduced, I was able to pick out the survivors right away.
As I said, there are a few eerie parts in the movie, but just as these begin to show promise, the last 45 minutes of the film turn into one long, boring chase scene for no apparent reason. I normally don't give away plot points like this, but I felt obliged to point the following out. The effects are, for the most part, rather well done, but the chase scene which is the film's finale offers one of the most moronic looking ghosts I have ever seen.
If you're desperate for another haunted house movie, I reccomend seeing the original version of "House on Haunted Hill" or the original "The Haunting". If you feel like dishonoring Vincent Price's memory, go ahead and catch this. Otherwise, I reccomend everyone steer clear. "The House on Haunted Hill" runs too long at 115 minutes. I grant it a charitable two stars.
Feel free to e-mail with comments at<EMAIL_ADDRESS>* * * * * - One of the greatest movies ever made, see it now. * * * * - Great flick. Try and catch this one. * * * - Okay movie, hits and misses. * * - Pretty bad. See it if you've got nothing better to do. * - One of the worst movies ever. See it only if you enjoy pain.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


the man, the glasses, and the oranges
What should I tell you about him? I could tell you how he's aged, or maybe I could tell you about the time he broke two of his fingers? I could tell you about all the books he never read to the end, or (hah) I could tell you about the books that he did finish. In either case, there's nothing I could tell you that you wouldn't be able to see for yourself.
It's 6AM and the alarm clock just started to ring. He's a bit confused, unsure of whether this is the right time to get up. His first priority, however, is to stop the annoying sounds of the time telling machine. He reaches out with his hand, starts to feel his way to the clock and in doing so he knocks over his glasses. He looks in the clock's direction now and all the numbers are blurry. Every morning starts off blurry. This morning is particularly dark.
He manages to find the button that silences the clock but is unable to find his glasses. It is too dark and blurry. Maybe they fell between some secret cracks? He just can't seem to find them. He remembers that he has a spare pair in the washroom drawer. It is dark and it does not occur to him that he could switch the lights on. Instead he feels his way into the hall way and stumbles into the washroom.
He turns on the lights. This was not a conscious decision. Though the situation had warranted light, he did so purely out of instinct. It was simply a matter of fact: you enter the washroom and you turn on the lights. Everything in that moment turned brighter yet remained blurry. He catches his reflection in the washroom mirror and it causes him to pause. The blurry reflection took him to a moment some 30 years ago. For a split instant he saw a clear reflection of himself as he was some 30 years ago. He quickly recollects himself. He makes a frowning facial expression and shrugs off the moment. This is no time for musings of past. The world is blurry and that must be undone.
There are three drawers. Is it in the first? the second? or the third? I should open all of them, but not all at once. That would defeat the purpose. This is no time for thought. Thinking slows down the process. Just act. He finds the glasses in the second drawer without needing to open the third. As he puts the glasses on he forgets that he couldn't find his other pair, as if this was his only one, as if he had never lost anything. He does remember that he needs to pick up groceries and other items. He proceeds to get dressed with a better grasp of the world than he had when he woke up.
He stands on the subway platform as the train approaches. Everyone on the platform takes a step forward in anticipation. He picks up his grocery bags from the floor and enters the train. This is his daily mode of transport, the subway lines are life lines that connect him to the city. The bags he's carrying make his movement slow. The rushing crowd occupy all the seats, like it were a gold rush. He finds a place to stand as comfortably as he can.
He feels a tug on his jacket. A young boy (a teenager perhaps?), feeling a little sheepish, stands up and offers his seat. He looks the boy in the eyes with a smile that spells a blessing. He accepts the offer. He places one bag on his lap and the rest on the subway car floor.
In what almost seems like a ritual, he starts to take out items he's purchased one by one and spend time with them. He takes out the apple juice carton and runs his hand across it, as if he were searching for a memory or hoping that one would be created. He replaces the juice carton and repeats the procedure with toothpaste.
He then reaches down and takes out a bag of oranges. He removes a single orange from the bag of oranges. He spins the orange on his palm and then grips it tight to stop the spin, still holding the bag of oranges in his other hand. The train comes to a screeching halt. His grip protects the singular orange, but the bag of oranges falls to the floor. One after another the oranges leave the bag and start to roll out in a line. Not a perfect line, but there's enough of a pattern.
All the heads in the subway car follow the oranges the length of the distance.


| Team # | PPG |
|---|---|
| {{ team[0] }} | {{ team[1] }} |
| Team # | PPG |
|---|---|
| {{ team[0] }} | {{ team[1] }} |
| Team # | PPG |
|---|---|
| {{ team[0] }} | {{ team[1] }} |
| Team # | PPG |
|---|---|
| {{ team[0] }} | {{ team[1] }} |
| Team # | PPG |
|---|---|
| {{ team[0] }} | {{ team[1] }} |
| Team # | PG |
|---|---|
| {{ team[0] }} | {{ team[1] }} |
| Team # | Records |
|---|---|
| {{ team[0] }} | {{ team[1] }} |


THE END OF THE AFFAIR (Columbia) Starring: Ralph Fiennes, Julianne Moore, Stephen Rea, Ian Hart. Screenplay: Neil Jordan, based on the novel by Graham Greene. Producers: Neil Jordan and Stephen Woolley. Director: Neil Jordan. MPAA Rating: R (sexual situations, nudity, adult themes) Running Time: 105 minutes. Reviewed by Scott Renshaw.
It's entirely possible that a film version of THE END OF THE AFFAIR -- Graham Greene's novel of passion, obsession and faith -- could be made without getting into the explicit details of its protagonists' extra-marital exploits. And in fact it already has, in a weepy 1955 version starring Deborah Kerr and Van Johnson. Some would no doubt argue that the more restrained approach has its merits, but there's something about this source material that demands an approach that couldn't be filmed in 1955. I can't remember the last time a mainstream film featured as much intense, forthright sexuality -- of the groping, grinding, gasping variety -- as THE END OF THE AFFAIR. And I can't remember the last time it would have been quite so thematically appropriate.
The story begins in 1946, with a chance meeting between writer Maurice Bendrix (Ralph Fiennes) and his neighbor Henry Miles (Stephen Rea). Henry is distraught over a notion that his wife Sarah (Julianne Moore) may be seeing another man, a notion in which Bendrix also has a certain interest. In flashback, we learn that Bendrix and Sarah engaged in a passionate five-year-long affair during the war, an affair which Sarah had abruptly ended with no explanation. Still obsessed with Sarah two years after the end of their affair, Bendrix decides he must know what Sarah is now up to, and hires a private detective (Ian Hart) to uncover her secrets.
Neil Jordan's approach to much of THE END OF THE AFFAIR is in fact fairly restrained. Michael Nyman's string score pulses throughout the film, adding a layer of heightened drama, but the performances play against the music effectively. Ralph Fiennes' work may be too reminiscent of his character in THE ENGLISH PATIENT, but it's right for the role, as is Stephen Rea's hangdog Henry. Jordan also takes a calculated risk by playing some scenes more than once, after a key piece of information has been revealed. Though the repetition of those scenes gives the film a slightly lurching pace, it also shows how easy it is to misinterpret key moments in our lives. Ultimately, the risk pays off.
His even bigger risk pays off even more definitively.  THE END OF THE AFFAIR is a story that depends on believing in the transcendent connection between Sarah and Bendrix, a connection Bendrix feels is broken any time they are apart. Jordan even manages to use the sex scenes for a couple of great punch lines (Bendrix, when Henry returns home at the height of the lovers' passion: "What if he heard us?" Sarah: "He wouldn't recognize the sound"). THE END OF THE AFFAIR circa 1999 combines the appeal of old-fashioned tragic romance with Greene's ahead-of-his-time psychology of irrational desire (whether temporal or spiritual). It may make you uncomfortable, but you can't deny its honesty.
The film does begin running out of gas in the third act, as the relationship between Sarah and Bendrix becomes subservient to the relationship between Sarah and God. Jordan does an impressive job of making the novel's philosophical musings solid cinema, retaining all the thematic weight without too much ponderous voice-over. There's also the ongoing pleasure of Ian Hart's sharp, understated work as the private detective who takes tremendous pride in his professionalism. And even when they no longer fill the screen, THE END OF THE AFFAIR's scenes of illicit eroticism linger like a memory of addictive high. Jordan does justice to Greene's 1950s narrative by doing what the 1950s couldn't do -- showing the middle of an affair that made the end of the affair a tragedy.
On the Renshaw scale of 0 to 10 not-for-the-family affairs: 7.
Visit Scott Renshaw's Screening Room http://www.inconnect.com/~renshaw/ *** Subscribe to receive new reviews directly by email! See the Screening Room for details, or reply to this message with subject "Subscribe".
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


We need to understand who you sell your work to because if you’re selling to the public you’re more like a business.


My Favorite Places
Here are some places that I like to go!
To Bed
To Happy Hour
Mars
Check them out sometime!


It's that time of the year once again, and on July 21st [SAND] will be turning 3 years old!
Come join us in celebration for prizes, puns, fun, and of course, Geodes!
Friday, July 20 @ 6 PM PDT - Come join us for help with certain achievements in Dry Top, T6 fun, trivia, and prizes!
Saturday, July 21 @ 6 PM PDT - Our main day, our 3rd Birthday! Once again, come out to join us for hours of T6 madness, drinking games, music, trivia, a group picture, and lots of prizes!
Sunday, July 22 @ 6 PM PDT - "Anything goes" day!
🎂🍰🎈🎁🎂🍰🎈🎁🎂🍰🎈🎁
To enter the [SAND] birthday raffle, please deposit 20g per ticket into the Treasure Trove of our guild bank. The buy in is 20g per ticket, and the cap for each individual is 10 tickets. The number you are given for your raffle ticket is based on the order the entries are received, and the number will be randomly generated at the end of July.
There will also be a second place prize of 400 gems for another winner!
Send your name via mail to LanceTheSpaz.4923 to be entered into our two dye raffles! In the standard raffle everyone that enters will win a random rare dye! And in our special and exclusive dye raffle where 13 lucky entries will win an exclusive dye, with the grand prize of a Celestial dye!
Please be sure to get your entries in this month (both ending 11 pm PDT July 31st)!
🎂🍰🎈🎁🎂🍰🎈🎁🎂🍰🎈🎁


MNIST 8 by 8 images (64-dimensional data
) are projected on 2-dimensional space
which is created with the first two principal components
.
Each point in the figure below corresponds to each MNIST image. You can disable the display of a particular data set by clicking its
corresponding legend.
The process of generating the figure is as follows:
U. S. V = svd()


Before Change
// https://github.com/apache/arrow/pull/2329
// https://groups.google.com/a/tensorflow.org/forum///!topic/developers/TMqRaT-H2bI
// So we use msgpack as default.
if os.environ.get("TENSORPACK_SERIALIZE", "msgpack") == "pyarrow":
try:
import pyarrow as pa
except ImportError:
loads_pyarrow = create_dummy_func("loads_pyarrow", ["pyarrow"]) // noqa
dumps_pyarrow = create_dummy_func("dumps_pyarrow", ["pyarrow"]) // noqa
if "horovod" in sys.modules:
logger.warn("Horovod and pyarrow may have symbol conflicts. "
"Uninstall pyarrow and use msgpack instead.")
loads = loads_pyarrow
dumps = dumps_pyarrow
else:
loads = loads_msgpack
dumps = dumps_msgpack
class NonPicklableWrapper(object):
TODO
After Change
_DEFAULT_S = os.environ.get("TENSORPACK_SERIALIZE", "msgpack")
if _DEFAULT_S == "pyarrow":
dumps = PyarrowSerializer.dumps_bytes
loads = PyarrowSerializer.loads
elif _DEFAULT_S == "pickle":
dumps = PickleSerializer.dumps
loads = PickleSerializer.loads
else:
dumps = MsgpackSerializer.dumps
loads = MsgpackSerializer.loads


Top New Ski Hotels, Best Date Night Restaurants, Gifts for Travelers And More
by Passport by ForbesLifeThe Top New Ski Hotels for 2019
Always in search of fresh powder? From Jackson Hole to Japan, here are the top new ski resorts this winter.
For those who prefer sand to snow, the editors of Forbes Travel Guide have rated the best hotels in the Caribbean, including a romantic getaway in Bermuda and a minimalist gem in St. Bart’s.
Whether your idea of glamorous train travel is more like Murder on the Orient Express or North By Northwest, there is a railway awaiting you. From journeys through Paris and Venice to adventures in Scotland and Siberia, here are some of the most luxurious train rides for one-track minds.
Subscribe: ForbesLife's Passport Newsletter
Travel Wise
Many of the passengers in First Class aren’t paying full price—or even earning an upgrade by flying frequently. Here’s how to earn the most airline miles without ever leaving the ground.
Don’t wait for Valentine’s Day (or even Saturday) to have a romantic evening out. OpenTable has released its 2019 list of the 50 Best Restaurants for Date Night in America.
This story was written in collaboration with Forbes Finds . If you buy something using a link on this page, Forbes may receive a small share of that sale.
From speakers and socks to luggage tags and shaving sets, those on your list with wanderlust will be thrilled to open these gifts ready for takeoff.
Passport by ForbesLife chronicles the latest in luxury travel, drinking and dining, fashion—and life's other indulgences. Click here to sign up for its weekly newsletter.


Toggle navigation
Leo Scores
Live scores
Schedule
International
Domestics
Portfolio
Series
Testimonial
Broucher
Contact
Sitemap
Career
Series details
Latest News
About Us
Privacy Policy
Feedback
Site map
© 2016
Yoursite.com
, All rights reserved


I'm AMY
I work with companies and agencies around the world, building Web sites and application UIs with strong focus on responsive design, accessibility, performance,
I build up the high performance website with blazing fast speed. Website with high performance can lead the visitor more.
I do ui/ux design for the website that assists website to get an outstanding look. Unique design creates an unique personality for websites.
With SEO, your business wants to increase its visibility in search results on search engines. I also provide SEO services to rank your website.
CTO, TechG
AMY conveys quality work. She is an excellent individual and an extraordinary cooperative person. She is extremely straightforward and puts all her energy to follow through on schedule.
CEO, WEBc.
I've worked with many individuals who are tendentious and driven by things other than the work they're doing. AMY is genuinely energetic about the web and the items she makes for it and that is quite darn marvelous.
Singer
AMY is a wonderfully creative, collaborative, and gifted developer who excels at creating inclusive digital solutions.
I worked on more than 50+ projects. I know how to make things fascinating and eye-catching. Making high performance website is always a sign of mine.
I worked with more than 30+ clients. Client satisfaction is my main priority. I generally attempt to complete the work before the deadline.
I worked with more than 30+ clients. Client satisfaction is my main priority. I generally attempt to complete the work before the deadline.
I’m a freelance web designer and developer based in Bangladesh. I love the Web platform and I need to improve it for everybody. What's more, I believe myself to be totally honored that I will assemble it professionally.
CEO of My Com
Hi! This is AMY
I work with companies and agencies around the world, building Web sites and application UIs with strong focus on responsive design, accessibility, performance, and the latest in the area of front-end (Javascript, react, gatsby, node, Python, djengo) I also speak and run workshops across the globe, also focusing on CSS, SVG, Responsive Design and accessibility, covering practical tips on how to build full stack using modern tools and techniques that scale and are future-proof.
I made this application for a USA customer. This application is truly Amazing. Here you can chat with your friend constantly inside a secure environment and there will be no information reserved after the end of the session.
Hotel zaman is one of the famous hotel in Chittagong. We created their website. The client wanted a clean and smooth design which I was able to provide at the end of the project.
Piranz is one of the famous music composer in UAE. The challenge was to keep the music environment in the web. It was hard but in the end we provided a good quality website that satisfied the client.
© Copyright 2021 AMY. All right Reserved


About me
Hi! I am Ke YAN, a PhD candidate in Dept. Electronic Engineering, Tsinghua Univ., China. My advisor is Prof. David Zhang, IEEE fellow.
In my PhD work, I focus on analyzing electronic nose (e-nose) data with machine learning algorithms. For example, compensating sensor drift with transfer learning.
E-mail<EMAIL_ADDRESS>Selected Papers
- Ke Yan, and David Zhang, “Calibration transfer and drift compensation of e-noses via coupled task learning,” Sensors and Actuators B: Chemical (IF=4.097), vol. 225, pp. 288-297, Mar., 2016.
- Ke Yan, and David Zhang, “Improving the transfer ability of prediction models for electronic noses,” *Sensors and Actuators B: Chemical (IF=4.097)*, vol. 220, pp. 115-124, Dec., 2015.
- Ke Yan, and David Zhang, “Feature selection and analysis on correlated gas sensor data with recursive feature elimination,” *Sensors and Actuators B: Chemical (IF=4.097)*, vol. 212, pp. 353-363, Jun., 2015.
- Ke Yan, David Zhang, Darong Wu, Hua Wei, and Guangming Lu, “Design of a breath analysis system for diabetes screening and blood glucose level prediction,” *Biomedical Engineering, IEEE Transactions on (IF=2.347)*, vol. 61, no. 11, pp. 2787-2795, Nov., 2014.
- Ke Yan and David Zhang, “Blood glucose prediction by breath analysis system with feature selection and model fusion," *Engineering in Medicine and Biology Society (EMBC), 2014 36th Annual International Conference of the IEEE*, oral presentation, Chicago, 2014, pp. 6406-6409.
- Ke Yan, Youbin Chen, and David Zhang, “Gabor surface feature for face recognition," in *Pattern Recognition (ACPR), 2011 First Asian Conference on*, oral presentation, 2011, pp. 288-292.
Papers under review
- Ke Yan, Lu Kou, and David Zhang, “Domain Adaptation via Maximum Independence of Domain Features,” submitted to *Cybernetics, IEEE Transactions on*.
- Ke Yan, and David Zhang, “Correcting Instrumental Variation and Time-varying Drift: A Transfer Learning Approach with Autoencoders,” major revision in *Instrumentation and Measurement, IEEE Transactions on*.
- Ke Yan, David Zhang, and Yong Xu, “Learning Classification and Regression Models for Data with Drift based on Transfer Samples,” submitted to *Cybernetics, IEEE Transactions on*.
Experiences
2011.09 till now: PhD student in Dept. Electronic Engineering, Tsinghua Univ.
2013.07-2013.08: intern in Xing Ke Inc., Shandong. Project: gesture detection based on Kinect and Unity3D</p>


Package containing everything related to the Basalt Server, such as the listener that listens for incoming events
as well as the BasaltServer
class itself.
class AudioSender : AudioSendHandler
Sender class which takes in Opus frames from Lavaplayer and passes them to Magma, where they are then subsequently sent to Discord. |
|
class BasaltServer : AbstractVerticle
Server instance which is the starting point for every other part of Basalt. |
|
enum class ErrorResponses
An enum of responses that are returned in Dispatched |
|
class WebSocketListener : AbstractReceiveListener
The listener class which responds to WebSocket Events, including (but not limited to) incoming messages. |
typealias SocketContextMap = Object2ObjectOpenHashMap<WebSocketChannel, SocketContext>
Type alias which is equal to |


Scale Ruby on Rails Applications across Multiple Servers - Arch Linux, Ruby on Rails, Scaling
Difficulty: 4
Time: 2 hr
In this article, you will see ways to scale the Rails application which is configured with database servers like PostgreSQL and MySQL and then enable the app to distribute the load across multiple Arch Linux servers using Unicorn to handle multiple incoming requests. It is assumed that you have the sudo
privileges to perform the steps given in this article
When it comes to building a scalable application server, two key elements are required:
Unicorn is often the preferred choice because of the ease-of-debugging, process management and load balancing capabilities. Nginx is popular because of its light weight web server which will be used as a load-balancer with Unicorn based application for the following example.
To install Ruby on Rails using RVM, see: Install Ruby on Rails using RVM - Arch Linux
Create a sample application in Rails using the below mentioned commands:
Note: Here we take the current directory of user as the web root.
# Create a sample resource rails generate scaffold Task title:string note:text
# Create a sample database RAILS_ENV=development rake db:migrate RAILS_ENV=production rake db:migrate
# Create a directory to hold the PID files mkdir pids
To access it from any public IP, you need to bind it to that public IP
This will boot up the default server on your machine. For this sample environment, WEBrick is the default server, which gets started as shown below:
Now you should be able to access it via web browser:
To stop the server, press CTRL+C. Once the server is stopped, it will not be accessible via the web browser.
To start using Unicorn, it must be configured with your environment. There are multiple ways to configure the Unicorn servers. Below are some easy steps to configure the Unicorn server using the vim editor:
Place below code in file (simply copy from here, and paste into the file).
# Set the working application directory # working_directory "/tmp/rails_application/HelloRails" working_directory "/tmp/rails_application/HelloRails" # Unicorn PID file location # pid "/tmp/pids/unicorn.pid" pid "/tmp/rails_application/HelloRails/pids/unicorn.pid" # Path to logs # stderr_path "/tmp/rails_application/HelloRails/log/unicorn.log" # stdout_path "/tmp/rails_application/HelloRails/log/unicorn.log" stderr_path "/tmp/rails_application/HelloRails/log/unicorn.log" stdout_path "/tmp/rails_application/HelloRails/log/unicorn.log" # Number of processes # Rule of thumb: 2x per CPU core available # worker_processes 4 worker_processes 5 # Time-out timeout 20
Save and Exit the Vim editor by pressing Esc and pressing ":wq".
Before configuring Nginx server, you need to keep a note of the public IP address of your droplet. For this, ifconfig command can be used.
The value provided under the head inet addr is the public IP address of your droplet.
Inside the block http {...}, insert the following code:
# Set your server # server_name www.example.com; upstream unicorn_servers { # Add a list of your application servers # Each server defined on its own line # Example: # server IP.ADDR:PORT fail_timeout=0; server <IP_ADDRESS>:8080 fail_timeout=0; } server { # Port to listen on listen 80; location / { # Set proxy headers proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://unicorn_servers; } }
Save and Exit the Vim editor by pressing Esc and pressing ":wq".
To check the Nginx server, you can type in the public IP address directly into the web browser:
The welcome message by Nginx should be visible:
Using the above procedure, you can build a scalable application server using Unicorn or Rails applications server and Nginx webserver. This would enable any critical app (like PostgreSQL and MySQL) to distribute the load across multiple servers to handle multiple incoming requests.


{% extends "base.html" %} {% block page_info %}
You seem to be trying to go somewhere that doesn't exist. Sorry about that!
Would you like to go back home?


BLUE SKY A film review by James Berardinelli Copyright 1994 James Berardinelli
Rating (0 to 10): 3.8
Date Released: 9/16/94 Running Length: 1:41 Rated: PG-13 (Mature themes, language, brief nudity, sexual situations)
Starring: Jessica Lange, Tommy Lee Jones, Powers Boothe, Carrie Snodgrass, Amy Locane, Anna Klemp, Chris O'Donnell Director: Tony Richardson Producer: Robert H. Solo Screenplay: Rama Laurie Stagner and Arlene Sarner & Jerry Leichtling Cinematography: Steve Yaconelli Music: Jack Nitzsche Released by Orion Pictures
Once again, Orion Pictures has gone to the shelves to dust off a print for distribution. This time, it's the last feature of the late director Tony Richardson--a muddled melodrama wrapped around a cautionary tale about the dangers of nuclear fallout. The 1991 film shows its age with shots of Chris O'Donnell and Amy Locane looking significantly less mature than in some of their more recent screen appearances.
BLUE SKY is a dreary, disjointed affair that tries to tie together an anti-nuclear message with a family-in-crisis melodrama. The most significant problem is that the script is more dysfunctional than the Marshall clan. At no time is there a clear sense that this movie is going in any particular direction. It lurches along until stumbling upon something that passes for a conclusion.
Set in the early Sixties, BLUE SKY approaches the issue of underground nuclear testing and fallout as if it was a timely subject for today. Had the story been compelling, the approach might have worked, but this part of the tale--about a United States Army officer with a conscience (Major Hank Marshall, played by Tommy Lee Jones)--is heavyhanded, contrived, and cliched.
The dissection of Marshall's home life is potentially more interesting. He has a manic-depressive wife (Jessica Lange) and a pair of teenage daughters (Amy Locane and Anna Klemp) who long for stability. However, a resolutely downbeat tone (not necessarily a bad thing in itself) coupled with an agonizing example of over-the-top acting by Lange (reminiscent of the quality of her "work" in 1976's KING KONG) conspire to ruin these portions of BLUE SKY.
The ubiquitous Tommy Lee Jones gives a surprisingly bland performance. Maybe it's the character, but there isn't much here for the audience to latch on to or care about. Powers Boothe, playing a stereotyped nasty commanding officer with an inflexible mindset, is lifeless. Despite being one of several obvious villains, his Vince Johnson is too dull to actively dislike.
For those who crave originality, there's very little of value in BLUE SKY. This is unfortunate, considering that the film was the final effort of a respected director. Since their Chapter 11 filing, it seems that every time Orion Pictures gropes for something to release, it comes up with a dud. (Remember such "classics" as ROBOCOP 3 and MARRIED TO IT?) I suppose the library of undistributed movies must be as bankrupt as the company itself.
- James Berardinelli<EMAIL_ADDRESS>.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Explore India from Kashmir To Kaniyakumari
The Khajuraho group of monuments was built during the rule of the Chandela dynasty. The building activity started almost immediately after the rise of their power, throughout their kingdom to be later known as Bundelkhand.[10] Most temples were built during the reigns of the Hindu kings Yashovarman and Dhanga. Yashovarman's legacy is best exhibited by the Lakshmana Temple. Vishvanatha temple best highlights King Dhanga's reign.[11]:22 The largest and currently most famous surviving temple is Kandariya Mahadeva built in the reign of King Vidyadhara.[12] The temple inscriptions suggest many of the currently surviving temples were complete between 970 and 1030 AD, with further temples completed during the following decades.[7] The Khajuraho temples were built about 35 miles from the medieval city of Mahoba,[13] the capital of the Chandela dynasty, in the Kalinjar region. In ancient and medieval literature, their kingdom has been referred to as Jijhoti, Jejahoti, Chih-chi-to and Jejakabhukti.[14] Khajuraho was mentioned by Abu Rihan-al-Biruni, the Persian historian who accompanied Mahmud of Ghazni in his raid of Kalinjar in 1022 CE; he mentions Khajuraho as the capital of Jajahuti.[15] The raid was unsuccessful, and a peace accord was reached when the Hindu king agreed to pay a ransom to Mahmud of Ghazni to end the attack and leave.[14]
The Great Stupa at Sanchi is one of the oldest stone structures in India, and an important monument of Indian Architecture.[1] It was originally commissioned by the emperor Ashoka in the 3rd century BCE. Its nucleus was a simple hemispherical brick structure built over the relics of the Buddha. It was crowned by the chhatri, a parasol-like structure symbolising high rank, which was intended to honour and shelter the relics. The original construction work of this stupa was overseen by Ashoka, whose wife Devi was the daughter of a merchant of nearby Vidisha. Sanchi was also her birthplace as well as the venue of her and Ashoka's wedding. In the 1st century BCE, four elaborately carved toranas (ornamental gateways) and a balustrade encircling the entire structure were added. The Sanchi Stupa built during Mauryan period was made of bricks. The composite flourished until the 11th century.
The Heliodorus pillar is a stone column that was erected around 113 BCE in central India[1] in Besnagar (near Vidisha, Madhya Pradesh). The pillar is named after Heliodorus, an ambassador of the Indo-Greek king Antialcidas from Taxila, who made a dedication inscribed in Brahmi script on the pillar, declaring himself to be a devotee of Vāsudeva, the Deva deva or "God of Gods", the Supreme Deity.[2][3][4][5] The Heliodorus pillar, joining earth, space and heaven, is thought to symbolize the "cosmic axis" and express the cosmic totality of the Deity.[2] The Heliodorus pillar site is located near the confluence of two rivers, about 60 kilometres (37 mi) northeast from Bhopal, 11 kilometres (6.8 mi) from the Buddhist stupa of Sanchi, and 4 kilometres (2.5 mi) from the Hindu Udayagiri site.[6] The pillar was discovered by Alexander Cunningham in 1877. Two major archaeological excavations in the 20th-century have revealed the pillar to be a part of an ancient Vāsudeva temple site.[3][7][8] The temple and the inscriptions are among the earliest known evidence of Vāsudeva-Krishna devotion and early Vaishnavism in India,[9][10][11][12][5] and one of the earliest surviving records of a western convert to Vaishnavism.[13][5] Alternatively, making dedications to foreign gods was only a logical practice for the Greeks, intended to appropriate their local power, and this cannot be regarded as a "conversion" to Hinduism.[14]


2.4 Post processing
Next we’ll read the files back in and put them into a list. After that I will walk through some steps we used to process the data a little further. Here we made a decision in the project to focus only on protein encoding SNVs, of course there is likely rich data in the splice mutations and that is for further followup. Importantly, we also made the decision to focus only on cells with complete genotype information, and exclude cells that had missing genotypes for a cell of interest. A complimentary manuscript by Koichi Takahashi’s group at MD Anderson analyzed their dataset, and I encourage whoever is reading this to take a look at their bioRxiv preprint. I’ll update this reference once they paper is published.
Our steps for post processing are below: + Filter variants through a blacklist removing recurrent variants that we think are likely sequencing errors + Annotating SNVS for protein encoding functions, and removing synonymous and splice variants + Remove variants that are mutated in <2 cells + Remove remaining cells with any unknown genotypes + Remove variants that are mutated in <2 cells again now that we have removed cells that were low quality
<-grep("MSK",list.files("./analysis/",full.names = TRUE),value=TRUE)
processed_SNV_files names(processed_SNV_files)<-do.call(rbind,strsplit(grep("MSK",list.files("./analysis/"),value=TRUE),split="\\."))[,1]
<-setNames(lapply(names(processed_SNV_files),function(x){
SNV<-readRDS(processed_SNV_files[x])
ydata.frame("Cell"=rownames(y), # moving the cell name into data.frame prevents some errors later
$data) # extracts the genotype matrix from the analyte object
ynames(processed_SNV_files)) }),
So one important note is that the variant annotation we used in the manuscript was done with Tapesstri Insights. Which was quite convenient as it put out a 1:1 mapping of SNV to amino acid changes, presumably by having a list of preferred TXIDs for each gene. So I’ve outlined what I think is a decent approach to this here. Importantly, this approach removes variants that are not protein encoding, and thus removes splice variants
<- TxDb.Hsapiens.UCSC.hg19.knownGene
txdb <-read.delim("./data/banned_list.csv",sep=",")
banned
<- lapply(SNV,function(x){
variants <- colnames(x)[ !grepl("Cell",colnames(x))& #remove the Cell column
experimental_variants !grepl("^chr",colnames(x))& #remove control loci
!colnames(x)%in%banned[,1]] #remove banned SNVs
<-data.frame(experimental_variants,
variants_matrixdo.call(rbind,strsplit(experimental_variants,split="\\.")))
colnames(variants_matrix) <- c("SNV","gene","chr","start","ref","alt")
$ref<-as(variants_matrix$ref, "DNAStringSet")
variants_matrix$alt<-as(variants_matrix$alt, "DNAStringSet")
variants_matrix<-makeGRangesFromDataFrame(variants_matrix,
variant_gRangeseqnames.field = "chr",
start.field="start",
end.field="start",
keep.extra.columns=TRUE)
<- predictCoding(variant_gRange, txdb, seqSource=Hsapiens,varAllele=variant_gRange$alt)
out<-out%>%filter(CONSEQUENCE=="nonsynonymous")%>%
out2mutate(AA=paste0(gene,".",REFAA,PROTEINLOC,VARAA))%>%
select(SNV,AA)
return(data.frame(out2)%>%distinct(SNV,AA))
})
# Select the correct variants, this is an example.
# Probably better off coming up with a list of TXIDs or CDSIDs you want for each gene.
"MSK15"]]<-variants[["MSK15"]] %>% filter(!AA%in%c("DNMT3A.R693C","DNMT3A.R446Q"))
variants[["MSK18"]]<-variants[["MSK18"]] %>% filter(!AA%in%c("DNMT3A.R693C"))
variants[["MSK71"]]<-variants[["MSK71"]] %>% filter(!AA%in%c("DNMT3A.Y685C"))
variants[["MSK91"]]<-variants[["MSK91"]] %>% filter(!AA%in%c("IDH2.R88Q","IDH2.R10Q")) variants[[
Now we’ll take this list of variants and subset the genotype matrices and proceed through the following steps: + Remove variants that are mutated in <2 cells + Remove remaining cells with any unknown genotypes + Remove variants that are mutated in <2 cells again now that we have removed cells that were low quality
<-setNames(lapply(names(SNV),function(sample){
filtered_NGTsetNames(data.frame(SNV[[sample]][,c("Cell",as.character(variants[[sample]]$SNV))]),
c("Cell",variants[[sample]]$AA))
names(SNV))
}),
<-setNames(lapply(names(filtered_NGT),function(x){
final_NGTs%>%
filtered_NGT[[x]] select_if(~ !is.numeric(.) || sum(.%in%c(1,2))>=2) %>%
filter_all(all_vars(.!=3)) %>%
select_if(~ !is.numeric(.) || sum(.%in%c(1,2))>=2)
names(filtered_NGT)) }),


Diff - Left File: CorporateIncomeTax/Common/IRS8594/IRS8594.xsd (2011v1.0) Right File: CorporateIncomeTax/Common/IRS8594/IRS8594.xsd (2011v1.1)
OLD: CorporateIncomeTax/Common/IRS8594/IRS8594.xsd (2011v1.0)
NEW: CorporateIncomeTax/Common/IRS8594/IRS8594.xsd (2011v1.1)
OLD line(s): 366
<LineNumber>Part II Line 6a</LineNumber>
NEW line(s): 366
<LineNumber>Part II Line 6</LineNumber>


Issue 4826: Changing the ID of a node in HTML Panel doesn't update Element Path
Steps to reproduce
- Open Firebug
- Switch to the HTML panel
- Inspect the blue

above (#testnode
)
- Click the
id
attribute's value (testnode
)) to start inline editing
- Type
foo
-
Click somewhere outside the inline editor to stop inline editing
⇒ Inside the Element Path the node should be shown as div#foo
.
-
Click
section#content
inside the Element Path
⇒ The

node (#content
) should be selected inside the HTML panel.
- Click the
id
attribute's value (foo
)) to start inline editing
- Type
bar
-
Click somewhere outside the inline editor to stop inline editing
⇒ Inside the Element Path the node should be shown as div#bar
.
Expected result
- The id of a node should always be updated inside the Element Path, when it's changed.


Kurstin:
He said that he needs it to preserve the power of this forest.
That is all I know. I am not privy to his plans. I only know this because a friend of mine told me what our lord told him...
Ask why he doesn't do it himself.


“Okay.”
When Emilia dumped him over text, she was expecting a lot more than an “Okay.”
 It was their first relationship, their first kiss…
Moonlight scattered the street where they huddled in the bus stop, his clammy hand reaching to link with hers as her face flushed. He turned to look at her and asked for permission with his eyes, lifting her chin and slowly kissing her with an intimacy Emilia had never known.
…It was strange how the guy who randomly blurted out “I love you” after only a few weeks of dating had just accepted the end of their relationship with a simple “Okay.”
Emilia had maybe been holding on to the hope that he would fight for her with that desperation, when he screamed, “You’re really ending it like this?” that last time. Were the tears even real?
Maybe it was for the better that he didn’t. Just knowing that he’d fight for her would’ve made it all worth it.
But he didn’t love her like that anymore…
Emilia nestled her head in the crook of his neck, New Girl playing in the background. He gently kissed her forehead and joked that they were “like Nick and Jess,” maybe unexpected, but meant to be.
…He didn’t even care enough to argue with her. Before, they’d explosively fight, a little pestering from her bursting into a screaming match…
Emilia walked into his room with dark circles under her eyes. She had just come back from the library and had finally finished her assignment.
He looked up from his laptop as she entered. “Oh, thank god you’re here. I need help.”
Emilia groaned as she plopped onto his bed. “Why didn’t you start your assignment earlier?”
“I was busy!” He rolled his eyes.
“Busy playing League, you mean.” It wasn’t Emilia’s fault that she was so snarky. Watching someone spend hours having fun when she spent all of her days and nights working was less than satisfying.
“God, why do you always have to go there? I needed to destress.” He paced around the room, scratching his head.
“Why do you need to ‘destress’ all day? I’m stressed too, y’know.”
The air quotes definitely set him off. He scathingly retorted, “You’re no better than my father,” as he stormed out of his room.
Emilia silently worked on his assignment, tears streaming down her face.
He later came back, like he always did, with chocolate and a honeyed apology. And she always forgave him, because he seemed genuine, and weren’t couples supposed to fight anyways?
...The fire between them had dimmed over the summer when they first went long distance. He had assured her that nothing would change, but Emilia had never felt so cheated. They only ever exchanged a “Hey” and “What’s up”, and while Emilia was anxiously waiting for a buzz, it felt like he was just unbothered. When she told him she felt like their text conversations were dead ends, he sent her a Google link on “how to start a conversation.”
And in the back of her mind, at that point, she knew he didn’t care about her. But she couldn’t forget how he told her they were meant to be. She just wanted it to work, so that she could get that “fairytale” ending she always dreamed of.
Nonetheless, the “okay” was just a slap to the face. It’s almost as if he knew what she’d do. He knew Emilia’s friends would convince her to dump him over text, where he couldn’t manipulate her into staying.
 Maybe he wasn’t “okay” with being dumped over text. Maybe this was his way of making sure she would never be “okay” with how everything ended.
Or maybe he was “okay” with everything, and like Emilia, felt that strange weight lift from his chest. Maybe his nonchalance was his relief that their whirlwind, fiery relationship had finally breathed its last.
Emilia last saw him across the street, walking to the bus stop. They looked through each other as if they were strangers. Her friends tiptoe around talking about him and she pretends as if it’s okay. But their last iMessage conversation is burned into her phone, and he’s forever etched in her memories as the first boy she ever loved.


Pirate (ARRR) is a cryptocurrency that solves the issue of financial privacy on the blockchain through forced anonymous transactions. Protect your wallet and transactions with Pirate’s completely anonymous network. With forced private transactions, your privacy cannot be compromised by another users’ activity on the network. If you wish to learn more, please join the official Pirate Discord at https://pirate.black/discord/ or message FishyGuts#5085, who will be happy to help out.
100 messages
Before 05-Dec-19 12:00 AM
plazma11-Nov-18 07:56 AM
Will my kmd litemode work if i still have kmd native in agama
CHMEX11-Nov-18 07:59 AM
yes litemode works even if you have a native synced.
Look at litemode as a 'website' that you run on your PC(edited)
plazma11-Nov-18 08:01 AM
Can i access my wallet in litemode even in native mode @CHMEX
example i have low net
So i use litemode kmd but no z address
CHMEX11-Nov-18 08:02 AM
yes litemode only works with t addresses no zaddresses on litemode
plazma11-Nov-18 08:02 AM
Then i switch to native and use z address
@CHMEX i m using native i got wallets jumbler import key (jumbler new i dint saw in pirate)
kaks11-Nov-18 08:06 AM
Hi guys is there any site can help to create a pirate pool?
A NOMP based stratum for the Komodo platform. Contribute to webworker01/knomp development by creating an account on GitHub.
CHMEX11-Nov-18 08:07 AM
@plazma Ok than it looks like something is strange. You can ask in #support or open a Ticket on komodoplatform.com they are very fast to answer and they most likely know how to solve your issue fast.
kaks11-Nov-18 08:08 AM
@ronyi thanks
plazma11-Nov-18 08:09 AM
Thanks
mrlynch11-Nov-18 09:07 AM
@FishyGuts do we have a ref link for crex yet? Want to take advantage of the early bird dumpers
Get some funds ready
FishyGuts11-Nov-18 09:09 AM
Pinned a message.
mrlynch11-Nov-18 09:11 AM
Thanks!
FishyGuts11-Nov-18 09:12 AM
Dr4gonTrader11-Nov-18 09:12 AM
are we listed there @FishyGuts ?
FishyGuts11-Nov-18 09:13 AM
Not yet @Dr4gonTrader but we want people to use that ref link.
@mrlynch is right in asking early. I am sure people are signing up.
I have different ones for Discord, Website and Twitter.
Dr4gonTrader11-Nov-18 09:15 AM
ok, noted, thanks. Will go sign up with that link. Anything to help out
mrlynch11-Nov-18 09:17 AM
All signed up :D now we wait...
Is it true crex doesn't want id verification?
Where are they based?
FishyGuts11-Nov-18 09:18 AM
0.00014707 BTC made on DigPri so far through affiliates.
Crex has no KYC.
Estonia
mrlynch11-Nov-18 09:22 AM
Sweet!
Keeping the pirate private. Not that it bothers me. I'm not into nefarious biz but is sure not nice when coinbase gets into my life
FishyGuts11-Nov-18 09:27 AM
At some point we will have to hit exchanges with KYC options.
CiPhEr11-Nov-18 09:31 AM
i just signed up through the affiliate link, plan to start doin some trading on digiprice
Is anyone still having issues with Polly? Was going to fire up mining again.
FishyGuts11-Nov-18 09:34 AM
Looks like I’m hashing. Haven’t checked for blocks.
actionslacks11-Nov-18 09:37 AM
So crex this week?
plazma11-Nov-18 09:41 AM
Wow nice vid
FishyGuts11-Nov-18 10:16 AM
The video does an ok job I think of discussing privacy, pirate and general Komodo stuff. It was my first ever interview and I was still a greengill.
Crex maybe next week... based on where they are at and where digpri was at the same point.
I still don’t even know if they can. They are much less communicative than DigitalPrice. Maybe because they have a bigger team and can handle the issues that they are encountering.
Some reason I'm not getting anything but us showing my hash rate
Bradbury11-Nov-18 02:38 PM
@stephenleeholmes118 no shares?
stephenleeholmes11811-Nov-18 02:40 PM
Got all that but no immature and balance hasn't changed at all
Bradbury11-Nov-18 02:42 PM
@stephenleeholmes118 umm didn't this happen a couple of days ago. All got sorted in the end. see if anyone else having issues
stephenleeholmes11811-Nov-18 02:44 PM
No the other day I just had a massive build up of immature that panned out but now I have 0 immature and bal 19 and it's been like that for a little bit now
Bradbury11-Nov-18 02:47 PM
my balance has not changed either. Not sure how often it updates as I don't look at it much
stephenleeholmes11811-Nov-18 02:48 PM
Do you have immature as well or does that say 0
Bradbury11-Nov-18 02:48 PM
0 as well
stephenleeholmes11811-Nov-18 02:49 PM
Well as I see it immature is a build up of what you have mined then it goes over to ballence but as it looks to me I haven't mined anything and with yours saying 0 you havnt who owns the pool
Bradbury11-Nov-18 02:50 PM
webworker's pool he'll be asleep probably?
webworker01#3884
stephenleeholmes11811-Nov-18 02:52 PM
@webworker01
Bradbury11-Nov-18 02:53 PM
immature shares now coming in
think there was a glitch as my shares went up to over 10,000 on 1 z9
stephenleeholmes11811-Nov-18 02:55 PM
My immature is now at 1.0
1
Yeah we're going now I thought the ship had sunk
LoPhatMelk11-Nov-18 03:05 PM
Hey @FishyGuts just watched your interview with CR, great job man. I didnt even know about it. Looking forward to more!
11AM - Farrel Polk11-Nov-18 03:21 PM
Just raised the
LoPhatMelk11-Nov-18 03:53 PM
geez people just giving away pirate still on dp.... dirt cheap
BlockTech11-Nov-18 04:04 PM
Yes, almost mining cost (rental).
Acura11-Nov-18 04:28 PM
WTS DEX for Pirate
FishyGuts11-Nov-18 06:01 PM
!arrrtip @Flashy Gordy 9.9901
ARRR TipBotBOT11-Nov-18 06:01 PM
TipBot
@FishyGuts (FishyGuts#5085)
You tipped @Flashy Gordy9.99 ARRR
A network fee of 0.0001 ARRR was deducted from the amount.
This operation is pending. You will be notified when when it has finished.
Hello kind sirs! Is the lottery/tip bot already ready for try?(edited)
Please enlighten me sirs
actionslacks11-Nov-18 07:19 PM
Volume is volume, dumpers or not.
Cryptofist11-Nov-18 07:25 PM
Not quite yet, but soon I believe @Lord Catoshi
Nov 9th
''' The Pirate Lottery bot may be ready in the next 7-14 days. It’s a discord lottery bot just for fun. We will offer it to ALL discord’s to use. '''
KSanJuan11-Nov-18 07:31 PM
We needed a big 'ole "WhaleBro" to come in a set a foor on this price action.
ComputerGenie 👴👴👴11-Nov-18 07:31 PM
reads "7-14 days", waits 2 days and asks 'Are we there yet?'
Lord Catoshi11-Nov-18 07:31 PM
Cool thanks @Cryptofist !
Hello @ComputerGenie 👴👴👴 sorry I am just cat
ComputerGenie 👴👴👴11-Nov-18 07:32 PM
We needed a big 'ole "WhaleBro" to come in a set a foor on this price action.
They are already taking action under the unending floor offer that james set (and never rescinded afaik); so there's that...
KSanJuan11-Nov-18 07:40 PM
The invisible 0.10 offer that's apparrently too much effort to execute?
 Or investing, or patience or the value of something.
plazma11-Nov-18 07:47 PM
@ComputerGenie 👴👴👴 where r pirate metup held....
ComputerGenie 👴👴👴11-Nov-18 07:47 PM
not sure about where most are from, but here they teach 7 yr olds that 0.0anything < 0.1(edited)
1
bishop11-Nov-18 07:48 PM
There is a common core joke in there
ComputerGenie 👴👴👴11-Nov-18 07:49 PM
the only thing wrong with common core is adults are too under-educated to understand it
FishyGuts11-Nov-18 07:50 PM
!arrrtip @Lord Catoshi 7.7701
ARRR TipBotBOT11-Nov-18 07:50 PM
TipBot
Error sending coin. [object Object]
FishyGuts11-Nov-18 07:50 PM
oops haha.
Lord Catoshi11-Nov-18 07:51 PM
Can't tip animals
lol
FishyGuts11-Nov-18 07:51 PM
!arrrtip @Lord Catoshi 9.9901
ARRR TipBotBOT11-Nov-18 07:51 PM
TipBot
@FishyGuts (FishyGuts#5085)
You tipped @Lord Catoshi9.99 ARRR
A network fee of 0.0001 ARRR was deducted from the amount.
This operation is pending. You will be notified when when it has finished.
ComputerGenie 👴👴👴11-Nov-18 07:51 PM
!arrrtip @CAT 7.7701@CAT < 1
Lord Catoshi11-Nov-18 07:51 PM
This is cool sirs!
FishyGuts11-Nov-18 07:51 PM
!arrrtip cannon 7.77
ARRR TipBotBOT11-Nov-18 07:51 PM
TipBot
:clock10: You have an ongoing operation. Please wait until current operation is finished.


MENU
VIDEO
AUDIO
TELEGRAPH
VIDEO CHANNEL TRANSCEIVER
FREQUENCY
446.460 MHz
CRYPT KEY
2B0N2B
OPEN CHANNEL
SECURE CHANNEL
TERMINATE CHANNEL
MODULATION
AM
AM:SSB
FM
PM
QAM
AM
ASK
APSK
CPM
FSK
MFSK
MSK
PPM
PSK
QAM
TCM
EMF EMISSIONS ACTIVE
UHF transmit
FM SIMPLEX
Normal space
ELF SLF ULF VLF LF MF HF VHF UHF SHF EHF THF
SCAN ANALYSIS
100
75
50
25
0
-25
3874
034
STATIC EM SATURATION
34893 X
_
_
—
-
-
Signal strength r-current


| Field | Type | Label | Description |
| addresses | bytes | repeated |
|
| Field | Type | Label | Description |
| address | bytes |
|
|
| balance | uint64 |
|
|
| nonce | uint64 | FIXME: Discuss. 32 or 64 bits? |
|
| pubhashes | bytes | repeated |
|
| transaction_hashes | bytes | repeated |
|
| Field | Type | Label | Description |
| header | BlockHeader |
|
|
| transactions | Transaction | repeated |
|
| dup_transactions | Transaction | repeated | TODO: Review this |
| vote | Transaction | repeated |
|
| genesis_balance | GenesisBalance | repeated | This is only applicable to genesis blocks |
| Field | Type | Label | Description |
| block | Block |
|
|
| voted_weight | uint64 |
|
|
| total_stake_weight | uint64 |
|
| Field | Type | Label | Description |
| block_number | uint64 | Header |
|
| epoch | uint64 |
|
|
| timestamp | Timestamp | FIXME: Temporary |
|
| hash_header | bytes |
|
|
| hash_header_prev | bytes |
|
|
| reward_block | uint64 |
|
|
| reward_fee | uint64 |
|
|
| merkle_root | bytes |
|
|
| hash_reveal | bytes |
|
|
| stake_selector | bytes |
|
| Field | Type | Label | Description |
| header | BlockHeader |
|
|
| transaction_count | TransactionCount |
|
|
| voted_weight | uint64 |
|
|
| total_stake_weight | uint64 |
|
| Field | Type | Label | Description |
| block_number | uint64 |
|
|
| hash_header | bytes |
|
| Field | Type | Label | Description |
| block_number_hashes | BlockMetaData | repeated |
|
| Field | Type | Label | Description |
| id | bytes |
|
|
| ttl | uint64 |
|
| Field | Type | Label | Description |
| aes256_symkey | bytes |
|
|
| data | bytes | Encrypted String containing aes256_symkey, prf512_seed, xmss_address, signature |
| Field | Type | Label | Description |
| address | string | Address is string only here to increase visibility |
|
| balance | uint64 |
|
| Field | Type | Label | Description |
| address | bytes |
|
| Field | Type | Label | Description |
| state | AddressState |
|
| Field | Type | Label | Description |
| index | uint64 | Indicates the index number in mainchain |
|
| after_hash | bytes | request the node that comes after hash |
| Field | Type | Label | Description |
| node_info | NodeInfo |
|
|
| block | Block |
|
| Field | Type | Label | Description |
| node_info | NodeInfo |
|
|
| known_peers | Peer | repeated |
|
| Field | Type | Label | Description |
| filter | GetLatestDataReq.Filter |
|
|
| offset | uint32 | Offset in the result list (works backwards in this case) |
|
| quantity | uint32 | Number of items to retrive. Capped at 100 |
| Field | Type | Label | Description |
| blockheaders | BlockHeaderExtended | repeated |
|
| transactions | TransactionExtended | repeated |
|
| transactions_unconfirmed | TransactionExtended | repeated |
|
| Field | Type | Label | Description |
| addresses | bytes | repeated |
|
| Field | Type | Label | Description |
| info | NodeInfo |
|
| Field | Type | Label | Description |
| query | bytes |
|
| Field | Type | Label | Description |
| found | bool |
|
|
| address_state | AddressState |
|
|
| transaction | TransactionExtended |
|
|
| block | Block |
|
| Field | Type | Label | Description |
| filter | GetStakersReq.Filter | Indicates which group of stakers (current / next) |
|
| offset | uint32 | Offset in the staker list |
|
| quantity | uint32 | Number of stakers to retrive. Capped at 100 |
| Field | Type | Label | Description |
| stakers | StakerData | repeated |
|
| Field | Type | Label | Description |
| node_info | NodeInfo |
|
|
| epoch | uint64 | Current epoch |
|
| uptime_network | uint64 | Indicates uptime in seconds |
|
| stakers_count | uint64 | Number of active stakers |
|
| block_last_reward | uint64 |
|
|
| block_time_mean | uint64 |
|
|
| block_time_sd | uint64 |
|
|
| coins_total_supply | uint64 |
|
|
| coins_emitted | uint64 |
|
|
| coins_atstake | uint64 |
|
| Field | Type | Label | Description |
| address | bytes |
|
| Field | Type | Label | Description |
| wallet | Wallet | FIXME: Encrypt |
| Field | Type | Label | Description |
| address_from | bytes |
|
|
| kyber_pk | bytes |
|
|
| dilithium_pk | bytes |
|
|
| xmss_pk | bytes |
|
|
| xmss_ots_index | uint64 |
|
FIXME: This is legacy. Plan removal
| Field | Type | Label | Description |
| hash | bytes | FIXME: rename this to block_headerhash |
|
| type | string | FIXME: type/string what is this |
|
| stake_selector | bytes |
|
|
| block_number | uint64 |
|
|
| prev_headerhash | bytes |
|
|
| reveal_hash | bytes |
|
| Field | Type | Label | Description |
| ephemeral | EphemeralMessage | Overlapping - objects used for 2-way exchanges P2PRequest request = 1; P2PResponse response = 2; |
| Field | Type | Label | Description |
| version | string |
|
|
| state | NodeInfo.State |
|
|
| num_connections | uint32 |
|
|
| num_known_peers | uint32 |
|
|
| uptime | uint64 | Uptime in seconds |
|
| block_height | uint64 |
|
|
| block_last_hash | bytes |
|
|
| stake_enabled | bool |
|
|
| network_id | string |
|
| Field | Type | Label | Description |
| ip | string |
|
| Field | Type | Label | Description |
| transaction_signed | Transaction |
|
| Field | Type | Label | Description |
| some_response | string |
|
| Field | Type | Label | Description |
| address | bytes |
|
|
| slave_public_key | bytes |
|
|
| terminator_hash | bytes |
|
|
| balance | uint64 |
|
|
| activation_blocknumber | uint64 |
|
|
| nonce | uint64 |
|
|
| is_banned | bool |
|
|
| is_active | bool |
|
| Field | Type | Label | Description |
| stake_validators | StakeValidator | repeated |
|
| Field | Type | Label | Description |
| sv_dict | StakeValidatorsTracker.SvDictEntry | repeated |
|
| future_stake_addresses | StakeValidatorsTracker.FutureStakeAddressesEntry | repeated |
|
| expiry | StakeValidatorsTracker.ExpiryEntry | repeated |
|
| future_sv_dict | StakeValidatorsTracker.FutureSvDictEntry | repeated |
|
| total_stake_amount | uint64 |
|
| Field | Type | Label | Description |
| key | uint64 |
|
|
| value | AddressList |
|
| Field | Type | Label | Description |
| key | string |
|
|
| value | StakeValidator |
|
| Field | Type | Label | Description |
| key | uint64 |
|
|
| value | StakeValidatorsList |
|
| Field | Type | Label | Description |
| key | string |
|
|
| value | StakeValidator |
|
| Field | Type | Label | Description |
| address_state | AddressState |
|
|
| terminator_hash | bytes |
|
| Field | Type | Label | Description |
| peers | Peer | repeated |
|
TODO: Avoid using timestamp until the github issue is fixed
import "google/protobuf/timestamp.proto";
| Field | Type | Label | Description |
| seconds | int64 |
|
|
| nanos | int32 |
|
| Field | Type | Label | Description |
| type | Transaction.Type |
|
|
| nonce | uint64 |
|
|
| addr_from | bytes |
|
|
| public_key | bytes |
|
|
| transaction_hash | bytes |
|
|
| ots_key | uint32 |
|
|
| signature | bytes |
|
|
| transfer | Transaction.Transfer |
|
|
| stake | Transaction.Stake |
|
|
| coinbase | Transaction.CoinBase |
|
|
| latticePK | Transaction.LatticePublicKey |
|
|
| duplicate | Transaction.Duplicate |
|
|
| vote | Transaction.Vote |
|
| Field | Type | Label | Description |
| addr_to | bytes |
|
|
| amount | uint64 |
|
| Field | Type | Label | Description |
| block_number | uint64 |
|
|
| prev_header_hash | uint64 |
|
|
| coinbase1_hhash | bytes |
|
|
| coinbase2_hhash | bytes |
|
|
| coinbase1 | Transaction |
|
|
| coinbase2 | Transaction |
|
| Field | Type | Label | Description |
| kyber_pk | bytes |
|
|
| dilithium_pk | bytes |
|
| Field | Type | Label | Description |
| activation_blocknumber | uint64 |
|
|
| slavePK | bytes |
|
|
| hash | bytes |
|
| Field | Type | Label | Description |
| addr_to | bytes |
|
|
| amount | uint64 |
|
|
| fee | uint64 |
|
| Field | Type | Label | Description |
| block_number | uint64 |
|
|
| hash_header | bytes |
|
| Field | Type | Label | Description |
| count | TransactionCount.CountEntry | repeated |
|
| Field | Type | Label | Description |
| key | uint32 |
|
|
| value | uint32 |
|
| Field | Type | Label | Description |
| header | BlockHeader |
|
|
| tx | Transaction |
|
| Field | Type | Label | Description |
| address_from | bytes | Transaction source address |
|
| address_to | bytes | Transaction destination address |
|
| amount | uint64 | Amount. It should be expressed in Shor |
|
| fee | uint64 | Fee. It should be expressed in Shor |
|
| xmss_pk | bytes | XMSS Public key |
|
| xmss_ots_index | uint64 | XMSS One time signature index |
| Field | Type | Label | Description |
| transaction_unsigned | Transaction |
|
| Field | Type | Label | Description |
| address | string | FIXME move to bytes |
|
| mnemonic | string |
|
|
| xmss_index | int32 |
|
| Field | Type | Label | Description |
| wallets | Wallet | repeated |
|
| Name | Number | Description |
| ALL | 0 | |
| BLOCKHEADERS | 1 | |
| TRANSACTIONS | 2 | |
| TRANSACTIONS_UNCONFIRMED | 3 |
| Name | Number | Description |
| CURRENT | 0 | |
| NEXT | 1 |
| Name | Number | Description |
| UNKNOWN | 0 | |
| UNSYNCED | 1 | |
| SYNCING | 2 | |
| SYNCED | 3 | |
| FORKED | 4 |
| Name | Number | Description |
| UNKNOWN | 0 | |
| TRANSFER | 1 | |
| STAKE | 2 | |
| DESTAKE | 3 | |
| COINBASE | 4 | |
| LATTICE | 5 | |
| DUPLICATE | 6 | |
| VOTE | 7 |
This is a place holder for testing/instrumentation APIs
| Method Name | Request Type | Response Type | Description |
| GetLocalAddresses | GetLocalAddressesReq | GetLocalAddressesResp | FIXME: Use TLS and some signature scheme to validate the cli? At the moment, it will run locally |
This service describes the P2P API
| Method Name | Request Type | Response Type | Description |
| GetNodeState | GetNodeStateReq | GetNodeStateResp | |
| GetKnownPeers | GetKnownPeersReq | GetKnownPeersResp | |
| GetBlock | GetBlockReq | GetBlockResp | rpc PublishBlock(PublishBlockReq) returns (PublishBlockResp); |
| ObjectExchange | MsgObject | MsgObject | A bidirectional streaming channel is used to avoid any firewalling/NAT issues. |
This service describes the Public API used by clients (wallet/cli/etc)
| Method Name | Request Type | Response Type | Description |
| GetNodeState | GetNodeStateReq | GetNodeStateResp | |
| GetKnownPeers | GetKnownPeersReq | GetKnownPeersResp | |
| GetStats | GetStatsReq | GetStatsResp | |
| GetAddressState | GetAddressStateReq | GetAddressStateResp | |
| GetObject | GetObjectReq | GetObjectResp | |
| GetLatestData | GetLatestDataReq | GetLatestDataResp | |
| GetStakers | GetStakersReq | GetStakersResp | |
| TransferCoins | TransferCoinsReq | TransferCoinsResp | |
| PushTransaction | PushTransactionReq | PushTransactionResp | |
| GetLatticePublicKeyTxn | LatticePublicKeyTxnReq | TransferCoinsResp |
| Field | Type | Label | Description |
| version | string |
|
|
| grpcProto | string |
|
| Method Name | Request Type | Response Type | Description |
| GetNodeInfo | GetNodeInfoReq | GetNodeInfoResp |
| Field | Type | Label | Description |
| mrData | MRData |
|
|
| block | Block |
|
| Field | Type | Label | Description |
| index | uint64 |
|
Adding old code to refactor while keeping things working
| Field | Type | Label | Description |
| func_name | LegacyMessage.FuncName |
|
|
| noData | NoData |
|
|
| veData | VEData |
|
|
| pongData | PONGData |
|
|
| mrData | MRData |
|
|
| sfmData | MRData |
|
|
| bkData | BKData |
|
|
| fbData | FBData |
|
|
| pbData | PBData |
|
|
| pbbData | PBData |
|
|
| syncData | SYNCData |
|
| Field | Type | Label | Description |
| hash | bytes | FIXME: rename this to block_headerhash |
|
| type | LegacyMessage.FuncName | FIXME: type/string what is this |
|
| stake_selector | bytes |
|
|
| block_number | uint64 |
|
|
| prev_headerhash | bytes |
|
|
| reveal_hash | bytes |
|
| Field | Type | Label | Description |
| index | uint64 |
|
|
| block | Block |
|
| Field | Type | Label | Description |
| peer_ips | string | repeated |
|
| Field | Type | Label | Description |
| version | string |
|
|
| genesis_prev_hash | bytes |
|
| Name | Number | Description |
| VE | 0 | Version |
| PL | 1 | Peers List |
| PONG | 2 | Pong |
| MR | 3 | Message received |
| SFM | 4 | Send Full Message |
| BK | 5 | Block |
| FB | 6 | Fetch request for block |
| PB | 7 | Push Block |
| PBB | 8 | Push Block Buffer |
| ST | 9 | Stake Transaction |
| DST | 10 | Destake Transaction |
| DT | 11 | Duplicate Transaction |
| TX | 12 | Transfer Transaction |
| VT | 13 | Vote |
| SYNC | 14 | Add into synced list, if the node replies |
| .proto Type | Notes | C++ Type | Java Type | Python Type |
| double | double | double | float | |
| float | float | float | float | |
| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int |
| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long |
| uint32 | Uses variable-length encoding. | uint32 | int | int/long |
| uint64 | Uses variable-length encoding. | uint64 | long | int/long |
| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int |
| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long |
| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int |
| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long |
| sfixed32 | Always four bytes. | int32 | int | int |
| sfixed64 | Always eight bytes. | int64 | long | int/long |
| bool | bool | boolean | boolean | |
| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode |
| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str |