Chennai Metro Water
Log Out
Logout
menu
Admin Control Panel
mode_edit
add
remove_red_eye
delete
mode_edit
add
remove_red_eye
delete


WITNESS LIST
Opioids & Substance Abuse, Select Committee
August 8, 2018 - 9:00 AM
Opioids and Substance Abuse -- Public Testimony
On:
Anderson, Andrea (Self; The Alliance for the Treatment of Intractable Pain)
Anderson, Jarvis (Bexar County CSCD & TPA)
Becker, Kaleigh (Texans Standing Tall)
Benton, Craig (Texas Chiropractic Association)
Biera Miracle, Anais (The Children's Shelter)
Boutte, Matt (Texas Academy of Physician Assistants)
Dutton, Drew (Phoenix Houses of Texas)
Fabrizio, Ralph (Self; RecoveryPeople)
Guerra-Cardus, Dr. Laura (Self; Children's Defense Fund Texas)
Hansch, Greg (National Alliance on Mental Illness (NAMI) Texas)
Hansch, Greg (National Alliance on Mental Illness (NAMI) Texas)
Heath, Julia (Self; Chronic pain patients)
Howell, Jason (Self; RecoveryPeople)
Hunter, Carl (Self; RecoveryPeople)
Johnson, Kenneth (Quest Diagnostics Inc)
Kohler, Adriana (Texans Care for Children)
Laker, Richard (Self; National Alliance on Mental Illness (NAMI) Texas)
Lawson, Pace (Self; RecoveryPeople)
May, Teresa (Harris County CSCD and TPA)
McGarity, Kristin (Self)
Morales Urby, Rodolfo (Self; Texas Doctors for Social Responsibility)
Peyson, Robin (Self; Communities for Recovery)
Reed, Doug (Phoenix Houses of Texas)
Rose, Lauren (Texans Care for Children)
Shipley, Donald (Self)
Strader, James (Self)
Sughrue, Alissa (NAMI Texas)
Tapia, Ivonne (ASAP)
Vance, Rebecca (Self; Drug Prevention Resources and ASAP)
Registering, but not testifying:
On:
McPeters, Pamela (TexProtects, Texas Assiciation for the Protection of Children)
1


|
retinanet-cell-detection
1
retinanet-cell-detection: RetinaNet for cell detection.
|
Functions | |
| def | check (fn) |
| def | reflow (paragraph) |
| def | pip (args) |
| def | which (name) |
| def | autoidentify () |
| def | general () |
| def | package_management () |
| def | installed_packages () |
| def | tensorboard_python_version () |
| def | tensorflow_python_version () |
| def | tensorboard_binary_path () |
| def | readable_fqdn () |
| def | stat_tensorboardinfo () |
| def | source_trees_without_genfiles () |
| def | full_pip_freeze () |
| def | set_up_logging () |
| def | main () |
Variables | |
| list | CHECKS = [] |
| Suggestion = collections.namedtuple("Suggestion", ("headline", "description")) | |
| def diagnose_tensorboard.autoidentify | ( | ) |
Print the Git hash of this version of `diagnose_tensorboard.py`. Given this hash, use `git cat-file blob HASH` to recover the relevant version of the script.
| def diagnose_tensorboard.check | ( | fn | ) |
Decorator to register a function as a check. Checks are run in the order in which they are registered. Args: fn: A function that takes no arguments and either returns `None` or returns a generator of `Suggestion`s. (The ability to return `None` is to work around the awkwardness of defining empty generator functions in Python.) Returns: A wrapped version of `fn` that returns a generator of `Suggestion`s.
| def diagnose_tensorboard.full_pip_freeze | ( | ) |
| def diagnose_tensorboard.general | ( | ) |
| def diagnose_tensorboard.installed_packages | ( | ) |
| def diagnose_tensorboard.main | ( | ) |
| def diagnose_tensorboard.package_management | ( | ) |
| def diagnose_tensorboard.pip | ( | args | ) |
Invoke command-line Pip with the specified args. Returns: A bytestring containing the output of Pip.
| def diagnose_tensorboard.readable_fqdn | ( | ) |
| def diagnose_tensorboard.reflow | ( | paragraph | ) |
| def diagnose_tensorboard.set_up_logging | ( | ) |
| def diagnose_tensorboard.source_trees_without_genfiles | ( | ) |
| def diagnose_tensorboard.stat_tensorboardinfo | ( | ) |
| def diagnose_tensorboard.tensorboard_binary_path | ( | ) |
| def diagnose_tensorboard.tensorboard_python_version | ( | ) |
| def diagnose_tensorboard.tensorflow_python_version | ( | ) |
| def diagnose_tensorboard.which | ( | name | ) |
Return the path to a binary, or `None` if it's not on the path. Returns: A bytestring.
| list diagnose_tensorboard.CHECKS = [] |
| diagnose_tensorboard.Suggestion = collections.namedtuple("Suggestion", ("headline", "description")) |


# -*- coding: utf-8 -*-
"""Copyright 2019 DScribe developers
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
"""
from ase import Atoms
import ase.geometry
import numpy as np
import dscribe.utils.geometry
[docs]class System(Atoms):
"""Represents atomic systems that are used internally by the package.
Inherits from the ase.Atoms class, but adds the possibility to cache
various time-consuming quantities that can be shared when creating multiple
descriptors.
"""
def __init__(
self,
symbols=None,
positions=None,
numbers=None,
tags=None,
momenta=None,
masses=None,
magmoms=None,
charges=None,
scaled_positions=None,
cell=None,
pbc=None,
celldisp=None,
constraint=None,
calculator=None,
info=None,
wyckoff_positions=None,
equivalent_atoms=None):
super().__init__(
symbols,
positions,
numbers,
tags,
momenta,
masses,
magmoms,
charges,
scaled_positions,
cell,
pbc,
celldisp,
constraint,
calculator,
info)
self.wyckoff_positions = wyckoff_positions
self.equivalent_atoms = equivalent_atoms
self._cell_inverse = None
self._displacement_tensor = None
self._distance_matrix = None
self._inverse_distance_matrix = None
[docs] @staticmethod
def from_atoms(atoms):
"""Creates a System object from ASE.Atoms object.
"""
system = System(
symbols=atoms.get_chemical_symbols(),
positions=atoms.get_positions(),
tags=atoms.get_tags(),
momenta=atoms.get_momenta(),
masses=atoms.get_masses(),
magmoms=atoms.get_initial_magnetic_moments(),
charges=atoms.get_initial_charges(),
cell=atoms.get_cell(),
pbc=atoms.get_pbc(),
celldisp=atoms.get_celldisp(),
constraint=atoms._get_constraints(),
calculator=atoms.get_calculator(),
info=atoms.info)
return system
[docs] def get_cell_inverse(self):
"""Get the matrix inverse of the lattice matrix.
"""
if self._cell_inverse is None:
self._cell_inverse = np.linalg.inv(self.get_cell())
return self._cell_inverse
[docs] def to_scaled(self, positions, wrap=False):
"""Used to transform a set of positions to the basis defined by the
cell of this system.
Args:
positions (numpy.ndarray): The positions to scale
wrap (numpy.ndarray): Whether the positions should be wrapped
inside the cell.
Returns:
numpy.ndarray: The scaled positions
"""
fractional = np.linalg.solve(
self.get_cell().T,
positions.T).T
if wrap:
for i, periodic in enumerate(self.pbc):
if periodic:
# Yes, we need to do it twice.
fractional[:, i] %= 1.0
fractional[:, i] %= 1.0
return fractional
[docs] def to_cartesian(self, scaled_positions, wrap=False):
"""Used to transofrm a set of relative positions to the cartesian basis
defined by the cell of this system.
Args:
positions (numpy.ndarray): The positions to scale
wrap (numpy.ndarray): Whether the positions should be wrapped
inside the cell.
Returns:
numpy.ndarray: The cartesian positions
"""
if wrap:
for i, periodic in enumerate(self.pbc):
if periodic:
# Yes, we need to do it twice.
scaled_positions[:, i] %= 1.0
scaled_positions[:, i] %= 1.0
cartesian_positions = np.dot(scaled_positions, self.get_cell())
return cartesian_positions
[docs] def get_displacement_tensor(self):
"""A matrix where the entry A[i, j, :] is the vector
self.cartesian_pos[j] - self.cartesian_pos[i].
For periodic systems the distance of an atom from itself is the
smallest displacement of an atom from one of it's periodic copies, and
the distance of two different atoms is the distance of two closest
copies.
Returns:
np.array: 3D matrix containing the pairwise distance vectors.
"""
if self._displacement_tensor is None:
D, D_len = ase.geometry.geometry.get_distances(
self.get_positions(),
cell=self.get_cell(),
pbc=self.get_pbc()
)
# Figure out the smallest basis vector and set it as
# displacement for diagonal
if self.get_pbc().any():
cell = self.get_cell()
basis_lengths = np.linalg.norm(cell, axis=1)
min_index = np.argmin(basis_lengths)
min_basis = cell[min_index]
diag_indices = np.diag_indices(len(D))
D[diag_indices] = min_basis
diag_indices = np.diag_indices(len(D_len))
D_len[diag_indices] = basis_lengths[min_index]
self._displacement_tensor = D
self._distance_matrix = D_len
return self._displacement_tensor
[docs] def get_distance_matrix(self):
"""Calculates the distance matrix A defined as:
.. math::
A_{ij} = \lvert \mathbf{r}_i - \mathbf{r}_j \\rvert
For periodic systems the distance of an atom from itself is the
smallest displacement of an atom from one of it's periodic copies, and
the distance of two different atoms is the distance of two closest
copies.
Returns:
np.array: Symmetric 2D matrix containing the pairwise distances.
"""
if self._distance_matrix is None:
self.get_displacement_tensor()
return self._distance_matrix
[docs] def get_distance_matrix_within_radius(self, radius, pos=None, output_type="coo_matrix"):
"""Calculates a sparse distance matrix by only considering distances
within a certain cutoff. Uses a k-d tree to reach O(n log(N)) time
complexity.
Args:
radius(float): The cutoff radius within which distances are
calculated. Distances outside this radius are not included.
output_type(str): Which container to use for output data. Options:
"dok_matrix", "coo_matrix", "dict", or "ndarray". Default:
"dok_matrix".
Returns:
dok_matrix | np.array | coo_matrix | dict: Symmetric sparse 2D
matrix containing the pairwise distances.
"""
dmat = dscribe.utils.geometry.get_adjacency_matrix(radius, self.get_positions(), pos2=pos, output_type=output_type)
return dmat
[docs] def get_inverse_distance_matrix(self):
"""Calculates the inverse distance matrix A defined as:
.. math::
A_{ij} = \\frac{1}{\lvert \mathbf{r}_i - \mathbf{r}_j \\rvert }
For periodic systems the distance of an atom from itself is the
smallest displacement of an atom from one of it's periodic copies, and
the distance of two different atoms is the distance of two closest
copies.
Returns:
np.array: Symmetric 2D matrix containing the pairwise inverse
distances.
"""
if self._inverse_distance_matrix is None:
distance_matrix = self.get_distance_matrix()
with np.errstate(divide='ignore'):
inv_distance_matrix = np.reciprocal(distance_matrix)
self._inverse_distance_matrix = inv_distance_matrix
return self._inverse_distance_matrix
[docs] def set_positions(self, newpositions, apply_constraint=True):
self._reset_structure()
super().set_positions(newpositions, apply_constraint)
[docs] def set_scaled_positions(self, scaled):
self._reset_structure()
super().set_scaled_positions(scaled)
[docs] def set_pbc(self, pbc):
self._reset_structure()
super().set_pbc(pbc)
[docs] def set_cell(self, cell, scale_atoms=False):
self._reset_structure()
super().set_cell(cell, scale_atoms)
def _reset_structure(self):
"""Resets the common structural information that is cached by this
object. The caching is done in order to share common structural
quantities that are needed by multiple descriptors.
"""
self._cell_inverse = None
self._displacement_tensor = None
self._distance_matrix = None
self._inverse_distance_matrix = None


27 Mar 2017
|
knowledge
BackboneFast enables fast reconvergence due to indirect link failures. The key operation happens when a switch begins receiving inferior BPDUs. When a switch loses the link off its Root Port, it immediately starts sending BPDUs announcing itself as the new Root. Usually, when a switch receives inferior BPDUs, it will wait for its Max Age timer to expire before beginning STP convergence. Once its Max Age timer expires, the inferior BPDU ages out and the switch will then forward its superior BPDU to the neighbor switch who was sending the inferior BPDU.
When BackboneFast is enabled, as soon as a switch receives an inferior BPDU, it will send RLQ (Root Link Query) messages out all it’s non-designated ports. The RLQ asks other switches if the current Root Bridge is accessible via that switch. Note it doesn’t wait for its Max Age timer to expire - it begins sending RLQ messages immediately. The RLQ is a new type of PDU defined within the BackboneFast specification. The RLQ is essentially a proactive way to age out ports compared to just waiting on the Max Age timer to expire.
Based on the received RLQ responses, the switch will update its root ports and designated ports accordingly.. However all ports still transition through the regular IEEE 802.1D STP port states - listening, learning, and forwarding/blocking.
To enable BackboneFast use the command spanning-tree backbonefast
on all switches in the Layer 2 domain. The easiest way to verify that BackboneFast is enabled is to use the show spanning-tree summary
command.
This is a great Cisco article describing the operation: BackboneFast.
27 Mar 2017
|
knowledge
UplinkFast provides fast convergence in case the link on which the root port is connected suffers a failure. It does this with the use of an uplink group. An uplink group is a set of Layer 2 interfaces, of which only one is forwarding at a particular time. If the root port (forwarding port) goes down, then a successor root port is chosen which immediately goes into Forwarding state, bypassing the Listening and Learning phases.
UplinkFast functionality is built into RSTP, so UplinkFast is only applicable with legacy IEEE 802.1D.
When UplinkFast is enabled on a switch, that switch’s bridge priority will automatically be increased to 49152 and its port cost will be increased to 3000. This is to ensure that the switch does not become a transit switch.
To enable UplinkFast, go to the switch on which you want it to run and run spanning-tree uplinkfast
in global configuration mode.
27 Mar 2017
|
knowledge
PortFast is used in Spanning Tree to avoid the lengthy delay of the Listening and Learning phases during STP convergence. When PortFast is enabled on an interface, the interface skips the Listening and Learning phases and goes straight into the Forwarding state. PortFast should be used on access switches on ports where you know end devices will be plugged in.
To enable PortFast on an interface, in interface sub configuration mode use spanning-tree portfast
. If it is a trunk you must append the trunk
keyword after the command, and if it is an access port you should use the edge
keyword.
Another way to enable PortFast for access ports is to use spanning-tree portfast default
in global configuration mode. Once enabled, all access ports will automatically have PortFast enabled.
27 Mar 2017
|
knowledge
Here is a configuration for debugging Spanning Tree events:
SW1# debug spanning-tree events
SW1# debug condition vlan 2
SW1# config t
SW1(config)# service timestamps debug datetime msec
26 Mar 2017
|
knowledge
There are 3 timers we need to be concerned with in Spanning Tree: the Hello Time, the Forward Delay, and the Max-Age Time.
The Hello Time is the frequency with which BPDUs are transmitted from the root bridge. It can be adjusted with the command spanning-tree vlan 1-4094 hello-time 3
where 3 is in seconds. The default is 2 seconds, but in can be adjusted between 1 and 10 seconds. Non-root bridges will never generate BPDUs, but only relay BPDUs they receive on their root port.
The Forward Delay is the time that is spent in the listening and learning states. Its value is 15 seconds by default, but it can be adjusted to anywhere between 4 and 30 seconds.
The Max Age timer controls the maximum length of time that passes before a bridge port saves its configuration BPDU. This time is 20 seconds by default, but it can be tuned to be anytime between 6 and 40 seconds.
There is another item that is not a timer but is related. This is the message age. The root bridge sends all of its BPDUs with a message age of 0. Each downstream switch then adds 1 to this message age value. The actual age out time of the downstream switches is then (max age - message age).
Here is a good article that describes the Max Age timer as it relates to superior BPDUs: Max Age. If a switch’s root port goes down, there is no need for it to go through the Max Age timer process - if there are no better BPDUs received, the switch will immediately start announcing itself as root and begin sending BPDUs. In the scenario in the article, the switch that went down is sending inferior BPDUs, but yet the receiving switch goes through the Max Age process before it transforms its non-designated port to a Designated Port and begins sending the superior BPDUs towards the switch that suffered the down link.


The Central Registry of Divorce Proceedings
The Registry keeps nation-wide records of divorce applications filed after July 2, 1968. If there is another divorce application involving the same two spouses, the Registry lets the courts know.
To enable the Registry to detect duplicate divorce proceedings, courts must let the Registry know of each divorce application they receive. They do so by completing a registration application, which can now be filled in online.
If you are having difficulties opening this form, you can right-click the link above and select "Save target as..." to download it to a folder on your computer.
Once all fields are completed, the application must be printed. The Court must then verify it to ensure it is complete and accurate, and send it with the applicable fee to the Registry within seven (7) days of the filing of the divorce application.
Finding information about your divorce
The Registry cannot give you detailed information about a divorce or a copy of your divorce certificate. You must contact the court that processed the divorce application to get that information.
If you cannot remember which court processed the application for your divorce, the Registry may be able to give you the address of the court. They may also give you a reference number. You should give this number to court officials to help them find your file.
To contact the Registry:
- call<PHONE_NUMBER>; or
- for the hearing impaired only 1-800-267-7676; or
- complete a Search Request Form (HTML) (PDF) and send it to the address provided on the form
If you ask for the information by telephone, please make sure you have the following information at hand when you call:
- the full name and date of birth for both you and your former spouse; and
- the date you married
Finding information about someone else's divorce
The Registry may only give you information about someone else's divorce if you need it to enforce a law or if you have the consent of one of the parties.
If you qualify for those reasons, you must make your request in writing by filling out a Search Request and Consent Form (HTML) (PDF).
The consent portion of the form must be signed, except in specific situations explained on the form.
- Date modified:


Installation
Download the package from https://github.com/nextjob/NxtReport.
Compile NxtDesigner, NxtReportGen, NxtRunCommand using the Lazarus IDE.
Place the created executables into the same directory.
Copy the correct version (32/64) of qmclilib.dll (from OpenQM install directory) into the directory now containing the executables.
Copy files CREATE_QMFILES_JSON and NXTREPORT into a QM accessible directory and compile and catalog the programs.
Create a directory that is accessible from both the QMserver and the NxtDesigner and NxtReportGen programs, use this directory for report creation and generation.


Content-type: text/html
Manpage of TIFFWriteTile
TIFFWriteTile
Section: Misc. Reference Manual Pages (3T)
Updated: November 29, 1999
Index
Return to Main Contents
NAME
TIFFWriteTile - encode and write a tile of data to an open
TIFF
file
SYNOPSIS
#include <tiffio.h>
tsize_t TIFFWriteTile(TIFF* tif, tdata_t buf, uint32 x, uint32 y, uint32 z, tsample_t sample)
DESCRIPTION
Write the data for the tile
containing
the specified coordinates.
The data in
buf
are is (potentially) compressed, and written to the indicated file, normally
being appended to the end of the file.
The buffer must be contain an entire tile of data.
Applications should call the routine
TIFFTileSize
to find out the size (in bytes) of a tile buffer.
The
x
and
y
parameters are always used by
TIFFWriteTile.
The
z
parameter is used if the image is deeper than 1 slice (ImageDepth>1).
The
sample
parameter is used only if data are organized in separate planes (PlanarConfiguration=2).
RETURN VALUES
TIFFWriteTile
returns -1 if it detects an error; otherwise the number of
bytes in the tile is returned.
DIAGNOSTICS
All error messages are directed to the
TIFFError(3T)
routine.
SEE ALSO
libtiff(3T),
TIFFCheckTile(3T),
TIFFComputeTile(3T),
TIFFOpen(3T),
TIFFReadTile(3T),
TIFFWriteScanline(3T),
TIFFWriteEncodedTile(3T),
TIFFWriteRawTile(3T)
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- RETURN VALUES
-
- DIAGNOSTICS
-
- SEE ALSO
-
Time: 18:38:00 GMT, November 30, 1999


Public Member Functions | |
| abstract void | registerMote (Mote mote, Simulation sim) |
| abstract void | unregisterMote (Mote mote, Simulation sim) |
| abstract void | registerRadioInterface (Radio radio, Simulation sim) |
| abstract void | unregisterRadioInterface (Radio radio, Simulation sim) |
| abstract void | addRadioMediumObserver (Observer observer) |
| abstract Observable | getRadioMediumObservable () |
| abstract void | deleteRadioMediumObserver (Observer observer) |
| abstract RadioConnection | getLastConnection () |
| abstract Collection< Element > | getConfigXML () |
| abstract boolean | setConfigXML (Collection< Element > configXML, boolean visAvailable) |
| void | removed () |
| void | simulationFinishedLoading () |
Static Public Member Functions | |
| static final RadioMedium | generateRadioMedium (Class<?extends RadioMedium > radioMediumClass, Simulation simulation) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException, InstantiationException |
The abstract class RadioMedium should be implemented by all COOJA radio mediums. Radios registered in this medium can both send and receive radio data. Depending on the implementation of this interface, more or less accurate radio behaviour imitation is aquired.
|
abstract |
Adds an observer which is notified each time a radio connection has finished.
| observer | New observer |
|
abstract |
Deletes an radio medium observer.
| observer | Observer to delete |
|
inlinestatic |
This method creates an instance of the given class with the given simulation constructor argument. Instead of calling the constructors directly this method may be used.
|
abstract |
Returns XML elements representing the current config of this radio medium. This is fetched by the simulator for example when saving a simulation configuration file. For example a radio medium may return user altered range parameters. This method should however not return state specific information such as a current radio status. (All nodes are restarted when loading a simulation.)
|
abstract |
|
abstract |
|
abstract |
Registers a mote to this medium.
How radio data will be received from and sent to this mote depends on the medium implementation. Common factors may be random, distance from sending to receiving mote and interference with other radio transmitters in some range.
| mote | Mote to register |
| sim | Simulation holding mote |
|
abstract |
Register a radio to this radio medium.
Concerning radio data, this radio will be treated the same way as a mote's radio. This method can be used to add non-mote radio devices, such as a packet generator or a sniffer.
| radio | Radio |
| sim | Simulation holding radio |
|
inline |
Called when radio medium is removed.
|
abstract |
Sets the current radio medium config depending on the given XML elements.
| configXML | Config XML elements |
|
inline |
Notifies radio medium that the simulation finished loading.
|
abstract |
Unregisters a mote from this medium.
| mote | Mote to unregister |
| sim | Simulation holding mote |
|
abstract |
Unregister given radio interface from this medium.
| radio | Radio interface to unregister |
| sim | Simulation holding radio |


Travelling Salesman Problem
A* algorithm
Hill climbing search
Reset
Get Solution
Iterations : {{iterations}}


class Solution: def findBall(self, grid: List[List[int]]) -> List[int]: num_rows = len(grid) num_cols = len(grid[0]) answer = [] for c in range(num_cols): curr_c = c for r in range(num_rows): # redirect to right if grid[r][curr_c] == 1: if curr_c == num_cols-1 or grid[r][curr_c+1] == -1: curr_c = -1 break else: curr_c += 1 elif grid[r][curr_c] == -1: if curr_c == 0 or grid[r][curr_c-1] == 1: curr_c = -1 break else: curr_c -= 1 answer.append(curr_c) return answer


STAFF
Manager
Name:Ian
Employee #:1
Office #:13
<EMAIL_ADDRESS>Engineer
Name:Bert
Employee #:2
<EMAIL_ADDRESS><EMAIL_ADDRESS>Intern
Name:shelby
Employee #:3
School:wash u
<EMAIL_ADDRESS>Engineer
Name:Turner
Employee #:4
<EMAIL_ADDRESS>email@email.com


Car Picker through dropbox
Car Make:
Car Model:
prepare($sql); $stmt->execute(); $results=$stmt->fetchAll(); } foreach($results as $make): ?> ">'. $make['make'].''; ?>


{{animal_class.name}} currently onboard
Created by: {{creator.name}}{% if creator.id == user_id %} {% endif %}
{% for i in class_family %}
Description: {{i.description}}
Distinctive features: {{i.distinctive_feature}}
Quanity: {{i.quantity_on_board}} Reproduction ensured? {{i.male_female}}
{% endfor %}
{{i.name}}
Created by User: #{{i.user_id}}Description: {{i.description}}
Distinctive features: {{i.distinctive_feature}}
Quanity: {{i.quantity_on_board}} Reproduction ensured? {{i.male_female}}


An online algebra text by James W. Brennan
Book ContentsChapter 1- The Numbers of Arithmetic Chapter 2- Introduction to Algebra Chapter 3- Word Problems Chapter 4- Graphing and Straight Lines Chapter 5- Systems of Linear Equations Chapter 6- Polynomials Chapter 7- Rational Expressions Chapter 8- Exponents and Roots Chapter 9- Quadratic Equations |
The complete contents
of this algebra textbook are
available here online. This text is suitable for high-school Algebra I,
preparing for the GED, a refresher
for college students who need help preparing for college-level
mathematics, or
for anyone who wants to learn introductory algebra. I am especially
pleased to
help homeschoolers.
I am paying for this website out of my own pocket, and I would like to be able to leave it up as long as people find it helpful. If you find it useful and you are able to help out by donating a few bucks, please click on the link above. The payment is processed by Amazon.com, so you can be confident that it is safe and secure. Thanks.
| Extras
Graphing Applet (Java applet for exploring slope and intercepts of straight lines)
Quadratic Equation Solver/Plotter
|
Copyright
© James W. Brennan
All Rights Reserved
Unauthorized Duplication Prohibited


| protect_math {xfun} | R Documentation |
For Markdown renderers that do not support LaTeX math, we need to protect math expressions as verbatim code (in a pair of backticks), because some characters in the math expressions may be interpreted as Markdown syntax (e.g., a pair of underscores may make text italic). This function detects math expressions in Markdown (by heuristics), and wrap them in backticks.
protect_math(x)
x |
A character vector of text in Markdown. |
Expressions in pairs of dollar signs or double dollar signs are treated as math, if there are no spaces after the starting dollar sign, or before the ending dollar sign. There should be spaces before the starting dollar sign, unless the math expression starts from the very beginning of a line. For a pair of single dollar signs, the ending dollar sign should not be followed by a number. With these assumptions, there should not be too many false positives when detecing math expressions.
Besides, LaTeX environments (\begin{*}
and \end{*}
) are also
protected in backticks.
A character vector with math expressions in backticks.
If you are using Pandoc or the rmarkdown package, there is no need to use this function, because Pandoc's Markdown can recognize math expressions.
library(xfun) protect_math(c("hi $a+b$", "hello $$\\alpha$$", "no math here: $x is $10 dollars")) protect_math(c("hi $$", "\\begin{equation}", "x + y = z", "\\end{equation}"))


Snack Time: Sydney’s Latest in Food – November 25, 2019
All you need to know, in news as brief as a tweet.
by Che-Marie TriggNow open
Japanese meets Peruvian at this Surry Hills newbie, where you’ll find ceviche, coastal wines and a cocktail with cumin-spiced quinoa milk.
Combine a butcher with a fishmonger and this new inner-city eatery and store is what you’ll get. Expect $40 scampi burgers, crumbed veal schnitzel and fish’n’chips.
A David Thompson protégé has opened a lunch-only Thai eatery in a historic CBD building.
At this underground CBD diner there are deconstructed Martinis and one cut of meat is the star.
Coming soon
A hospitality giant is set to open three new venues any day now – the second iteration of an Italian favourite, top-notch falafel and a Mexican diner.

Old favourites, new tricks
Nineteen screens, a Hulk Hogan beer tap and a life-size replica of Richie Benaud: the quirk is real at this made-over North Shore icon.
This Surry Hills tequila bar has introduced a cracking food menu, with deep-fried pizzas and guacamole, “the most delicious food in the world”.
A vegan favourite has launched a weekend lunch session, with potato churros and charred mushroom skewers.
Icebergs’ iconic terrace has transformed into a beautiful oasis for summer.
An iconic Western Sydney charcoal chicken joint has opened its closest outlet to the city yet.
Awards
A Sydney brewery has taken out the top prize in the inaugural Drink Easy awards with a wild beer made from indigenous yeast.
Local knowledge
This Brazilian restaurant was born out of heartache and has a wicked $30 all-you-can-eat deal.


The link to the Shiny website is rstudio.com/shiny. I strongly recommend that you take a look at it!
num <- 4


fn main() {
let program = "+ + * - /";
let mut accumulator = 0;
for token in program.chars() {
match token {
'+' => accumulator += 1,
'-' => accumulator -= 1,
'*' => accumulator *= 2,
'/' => accumulator /= 2,
_ => { }
}
}
println!("The program \"{}\" calculates the value {}",
program, accumulator);
}


Notanos has had a substantial reconfigure, If you are interested in seeing what I said about it ages ago you can look at the old Readme
A lot of the plans from that readme have now been implemented. The server is no-longer WebDav. You login with your unix username and password. Data travels via https(using SOCAT to forward to a local port). Processes on the host machine can open up windows on the browser machine.
Notanos is a desktop environment of sorts, using HTML+CSS+JavaScript. It can be used to provide a desktop interface to a Linux device that has a network connection. I have run Notanos on A x86 desktop, a Arm based CubieBoard, and on a 7 inch tablet (running Debian underneath Android).
Of particular interest to me is the possibility of providing an interface to devices like the Rasberry-Pi, and portable devices such as phones and Tablets enabling A portable, yet cloudless work environment
Eveything is still in a very early stage of development, but has progressed to being actually usable. Some Notanos development does occur from within Notanos itself now.
This is the new architecture for notanos
The userserv process is specifically designed to be small and simple. The listening process needs to run as Root to allow user logins. The actual serving of static files and process launching are only done after dropping privelages to that of the authenticated user. This allows the user access to things they would normally be allowed to access with a regular shell login
Any statically served web page could be converted to an app for Notanos. A web application window is simply an iframe. Additional functionality is provided by sending messages to the frame's parent window. The API available to such programs is rather rudimentary at this stage but is being filled out when particular funtionality is required.
A clientframe.js file exists to manage the message interface and translate function calls into messages, As of now only a few functions are provided
Adding support for more functions is easy. Determining the right functions to add, less so.


--- layout: page status: publish published: true title: 'SAMPLE: Enumerating Network Resources' author: display_name: Tomas Restrepo login: tomasr email<EMAIL_ADDRESS>url: http://winterdom.com/ author_login: tomasr author_email<EMAIL_ADDRESS>author_url: http://winterdom.com/ wordpress_id: 1124 wordpress_url: http://winterdom.com/?page_id=1124 date: '2009-04-28 02:43:49 +0000' date_gmt: '2009-04-28 02:43:49 +0000' categories: - Uncategorized tags: [] comments: [] ---
This is a sample program to demonstrate how to enumerate resources on the
network, using the WNetOpenEnum() Win32 API function. The program is short, and almost self explanatory, but there are a couple of things worth mentioning.
When using WNetResourceEnum()
, you should allocate a buffer to receive the data, 16K is a typical value used, and then call WNetResourceEnum()
as many times are needed to get all the info. Also notice, that the function only gets resources one level deep. To go deeper, you have to recursively call WNetOpenEnum()
for each container, passing to it the NETRESOURCE structure you get from WNetResourceEnum()
One more thing: because the sample is written in a recursive way, it could cause a stack overflow when run on a large network. Without anything further, here's the code:
nrsenum.c
Update: May 12 - 2000: Thanks to Stefan Kuhr for pointing out to me a little bug that would cause a buffer overrun on large networks. It's now corrected. Thanks Stephan!


| Overview | Module | Use | Devguide | Index |
| uses of interface XShapeDescriptor |
back to interface XShapeDescriptor |
| Derived Interfaces |
XShape XConnectorShape XControlShape ::com::sun::star::chart::XDiagram ::com::sun::star::report::XReportComponent ::com::sun::star::report::XReportControlModel ::com::sun::star::report::XFixedLine ::com::sun::star::report::XFixedText ::com::sun::star::report::XFormattedField ::com::sun::star::report::XImageControl ::com::sun::star::report::XShape ::com::sun::star::report::XReportDefinition XShapeGroup XUniversalShapeDescriptor |
Copyright © 2013, The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, Apache OpenOffice and OpenOffice.org are trademarks of The Apache Software Foundation. Other names may be trademarks of their respective owners.


Secure Transection
This page will update once your payment has been confirmed.
Payment Successful!
Redirecting to confirmation page...


GRN(1) GRN(1) NAME grn - groff preprocessor for gremlin files SYNOPSIS grn [ -Cv ] [ -Tdev ] [ -Mdir ] [ -Fdir ] [ file... ] It is possible to have whitespace between a command line option and its parameter. DESCRIPTION grn is a preprocessor for including gremlin pictures in groff input. grn writes to standard output, processing only input lines between two that start with .GS and .GE. Those lines must contain grn commands (see below). These commands request a gremlin file, and the picture in that file is converted and placed in the troff input stream. The .GS request may be followed by a C, L, or R to center, left, or right justify the whole gremlin picture (default justification is center). If no file is mentioned, the standard input is read. At the end of the picture, the position on the page is the bottom of the gremlin picture. If the grn entry is ended with .GF instead of .GE, the position is left at the top of the picture. Please note that currently only the -me macro package has support for .GS, .GE, and .GF. The following command-line options are understood: -Tdev Prepare output for printer dev. The default device is ps. See groff(1) for acceptable devices. -Mdir Prepend dir to the default search path for gremlin files. The default path is (in that order) the current directory, the home directory, /usr/lib/groff/site-tmac, /usr/share/groff/site-tmac, and /usr/share/groff/1.21/tmac. -Fdir Search dir for subdirectories devname (name is the name of the device) for the DESC file before the default font directories /usr/share/groff/site-font, /usr/share/groff/1.21/font, and /usr/lib/font. -C Recognize .GS and .GE (and .GF) even when followed by a character other than space or newline. -v Print the version number. GRN COMMANDS Each input line between .GS and .GE may have one grn command. Commands consist of one or two strings separated by white space, the first string being the command and the second its operand. Commands may be upper or lower case and abbreviated down to one character. Commands that affect a picture's environment (those listed before default, see below) are only in effect for the current picture: The envi‐ ronment is reinitialized to the defaults at the start of the next pic‐ ture. The commands are as follows: 1 N 2 N 3 N 4 N Set gremlin's text size number 1 (2, 3, or 4) to N points.   The command stipple may be abbreviated down as far as `st' (to avoid confusion with special). There is no default for stipples (unless one is set by the default command), and it is invalid to include a gremlin picture with polygons without specifying a stip‐ ple font. x N scale N Magnify the picture (in addition to any default magnification) by N, a floating point number larger than zero. The command scale may be abbreviated down to `sc'. narrow N medium N thick N Set the thickness of gremlin's narrow (medium and thick, respec‐ tively) lines to N times 0.15pt (this value can be changed at com‐ pile time). The default is 1.0 (3.0 and 5.0, respectively), which corresponds to 0.15pt (0.45pt and 0.75pt, respectively). A thick‐ ness value of zero selects the smallest available line thickness. Negative values cause the line thickness to be proportional to the current point size. pointscale <off/on> Scale text to match the picture. Gremlin text is usually printed in the point size specified with the commands 1, 2, 3, or 4, regardless of any scaling factors in the picture. Setting pointscale will cause the point sizes to scale with the picture (within troff's limitations, of course). An operand of anything but off will turn text scaling on. default Reset the picture environment defaults to the settings in the cur‐ rent picture. This is meant to be used as a global parameter set‐ ting mechanism at the beginning of the troff input file, but can be used at any time to reset the default settings. width N Forces the picture to be N inches wide. This overrides any scal‐ ing factors present in the same picture. `width 0' is ignored. height N Forces picture to be N inches high, overriding other scaling fac‐ tors. If both `width' and `height' are specified the tighter con‐ straint will determine the scale of the picture. Height and width commands are not saved with a default command. They will, how‐ ever, affect point size scaling if that option is set. file name Get picture from gremlin file name located the current directory (or in the library directory; see the -M option above). If two file commands are given, the second one overrides the first. If name doesn't exist, an error message is reported and processing continues from the .GE line. NOTES ABOUT GROFF Since grn is a preprocessor, it doesn't know about current indents, point sizes, margins, number registers, etc. Consequently, no troff input can be placed between the .GS and .GE requests. However, gremlin text is now processed by troff, so anything valid in a single line of troff input is valid in a line of gremlin text (barring `.' directives at the beginning of a line). Thus, it is possible to have equations within a gremlin fig‐ ure by including in the gremlin file eqn expressions enclosed by previ‐ ously defined delimiters (e.g. $$). When using grn along with other preprocessors, it is best to run tbl before grn, pic, and/or ideal to avoid overworking tbl. Eqn should always be run last. A picture is considered an entity, but that doesn't stop troff from try‐ ing to break it up if it falls off the end of a page. Placing the pic‐ ture between `keeps' in -me macros will ensure proper placement. grn uses troff's number registers g1 through g9 and sets registers g1 and g2 to the width and height of the gremlin figure (in device units) before entering the .GS request (this is for those who want to rewrite these macros). GREMLIN FILE FORMAT There exist two distinct gremlin file formats, the original format from the AED graphic terminal version, and the SUN or X11 version. An exten‐ sion to the SUN/X11 version allowing reference points with negative coor‐ dinates is not compatible with the AED version. As long as a gremlin file does not contain negative coordinates, either format will be read correctly by either version of gremlin or grn. The other difference to the SUN/X11 format is the use of names for picture objects (e.g., POLY‐ GON, CURVE) instead of numbers. Files representing the same picture are shown in Table 1 in each format. center, tab(@); l lw(0.1i) l. sungremlinfile@@gremlinfile 0 240.00 128.00@@0 240.00 128.00 CENTCENT@@2 240.00 128.00@@240.00 128.00 185.00 120.00@@185.00 120.00 240.00 120.00@@240.00 120.00 296.00 120.00@@296.00 120.00 *@@-1.00 -1.00 2 3@@2 3 10 A Triangle@@10 A Triangle POLYGON@@6 224.00 416.00@@224.00 416.00 96.00 160.00@@96.00 160.00 384.00 160.00@@384.00 160.00 *@@-1.00 -1.00 5 1@@5 1 0@@0 -1@@-1 css. Table 1. File examples · The first line of each gremlin file contains either the string gremlinfile (AED version) or sungremlinfile (SUN/X11) · The second line of the file contains an orientation, and x and y values for a positioning point, separated by spaces. The orienta‐ tion, either 0 or 1, is ignored by the SUN/X11 version. 0 means that gremlin will display things in horizontal format (drawing area wider than it is tall, with menu across top). 1 means that gremlin will display things in vertical format (drawing area taller than it is wide, with menu on left side). x and y are floating point values giving a positioning point to be used when this file is read into another file. The stuff on this line really isn't all that important; a value of ``1 0.00 0.00'' is suggested. · The rest of the file consists of zero or more element specifica‐ tions. After the last element specification is a line containing the string ``-1''. · Lines longer than 127 characters are chopped to this limit. ELEMENT SPECIFICATIONS · The first line of each element contains a single decimal number giving the type of the element (AED version) or its ASCII name (SUN/X11 version). See Table 2. center, tab(@); css ccc nll. gremlin File Format − Object Type Specification AED Number@SUN/X11 Name@Description 0@BOTLEFT@bottom-left-justi‐ fied text 1@BOTRIGHT@bottom-right-justified text 2@CENTCENT@cen‐ ter-justified text 3@VECTOR@vector 4@ARC@arc 5@CURVE@curve 6@POLY‐ GON@polygon 7@BSPLINE@b-spline 8@BEZIER@Bézier 10@TOPLEFT@top- left-justified text 11@TOPCENT@top-center-justified text 12@TOPRIGHT@top-right-justified text 13@CENTLEFT@left-center-jus‐ tified text 14@CENTRIGHT@right-center-justified text 15@BOT‐ CENT@bottom-center-justified text css. Table 2. Type Specifications in gremlin Files · After the object type comes a variable number of lines, each spec‐ ifying a point used to display the element. Each line contains an x-coordinate and a y-coordinate in floating point format, sepa‐ rated by spaces. The list of points is terminated by a line con‐ taining the string ``-1.0 -1.0'' (AED version) or a single aster‐ isk, ``*'' (SUN/X11 version). · After the points comes a line containing two decimal values, giv‐ ing the brush and size for the element. The brush determines the style in which things are drawn. For vectors, arcs, and curves there are six valid brush values: center, tab(@); ncw(0.1i)l. 1 −@@thin dotted lines 2 −@@thin dot- dashed lines 3 −@@thick solid lines 4 −@@thin dashed lines 5 −@@thin solid lines 6 −@@medium solid lines For polygons, one more value, 0, is valid. It specifies a polygon with an invisible border. For text, the brush selects a font as follows: center, tab(@); ncw(0.1i)l. 1 −@@roman (R font in groff) 2 −@@italics (I font in groff) 3 −@@bold (B font in groff) 4 −@@spe‐ cial (S font in groff) If you're using grn to run your pictures through groff, the font is really just a starting font: The text string can contain for‐ matting sequences like ``\fI'' or ``\d'' which may change the font (as well as do many other things). For text, the size field is a decimal value between 1 and 4. It selects the size of the font in which the text will be drawn. For polygons, this size field is interpreted as a stipple number to fill the polygon with. The number is used to index into a stipple font at print time. · The last line of each element contains a decimal number and a string of characters, separated by a single space. The number is a count of the number of characters in the string. This informa‐ tion is only used for text elements, and contains the text string. There can be spaces inside the text. For arcs, curves, and vec‐ tors, this line of the element contains the string ``0''. NOTES ON COORDINATES gremlin was designed for AEDs, and its coordinates reflect the AED coor‐ dinate space. For vertical pictures, x-values range 116 to 511, and y- values from 0 to 483. For horizontal pictures, x-values range from 0 to 511 and y-values range from 0 to 367. Although you needn't absolutely stick to this range, you'll get best results if you at least stay in this vicinity. Also, point lists are terminated by a point of (-1, -1), so you shouldn't ever use negative coordinates. gremlin writes out coordi‐ nates using format ``%f1.2''; it's probably a good idea to use the same format if you want to modify the grn code. NOTES ON SUN/X11 COORDINATES There is no longer a restriction on the range of coordinates used to cre‐ ate objects in the SUN/X11 version of gremlin. However, files with nega‐ tive coordinates will cause problems if displayed on the AED. FILES /usr/share/groff/1.21/font/devname/DESC Device description file for device name. SEE ALSO gremlin(1), groff(1), pic(1), ideal(1) HISTORY David Slattengren and Barry Roitblat wrote the original Berkeley grn. Daniel Senderowicz and Werner Lemberg modified it for groff. Groff Version 1.21 31 December 2010 GRN(1)


J's Pizzas
Menu
Place order
Checkout
J's Pizzas
Pizza Made With Love.
MENU
Small 600ksh
Medium 900ksh
Large 1200ksh
Place Order
Choose your pizza type
Chicken Tikka
BBQ Steak
Pepperoni
Hawaiian
Upgrade Crust
None
Crispy 120ksh
Stuffed 150ksh
Gluten-free 180ksh
Pizza Size:
Small 600ksh
Medium 900ksh
Large 1200ksh
Extra Toppings
None
Cheese 50ksh
Pepperoni 80ksh
Mushroom 60ksh
Chicken 100ksh
Number of Pizza's
Checkout
Order Summary
Good day, please review your order before checkout. Delivery fee 200ksh
Submit


This is an unofficial tool to help avoid starvation in Don't Starve, an uncompromising wilderness survival game full of science and magic, by Klei Entertainment, available on the Chrome Web Store and Steam.
This tool requires a modern web browser and is officially supported in recent versions of: Chrome/Chromium (and mobile), Firefox, Safari (and mobile), and Internet Explorer 9+
Perish time is the time before a food item becomes Rot. Halfway through this period, it will go stale, and give {{ stalehealth }} health and {{ stalehunger }} hunger. Food spoils at three quarters, giving only {{ spoiledhunger }} hunger and no longer giving any health. Eating spoiled food will decrease sanity by {{ spoiledsanity }}. Food dropped on the ground will perish at a rate of {{ perishground }} (or {{ perishwinter }} in winter), while keeping it in the Ice Box will reduce the rate to {{ perishfridge }}.
Recipe priority determines which recipe a food combination will make; only the highest-priority possible recipes can be produced by a batch of ingredients.
In recipe requirements, cooked/uncooked usually doesn't make a difference. If it does, then only the valid form will be listed.
The Simulator works like a Crock Pot: add items, and it will tell you what food will be prepared. Note that only the highest-priority recipes will be candidates when actually cooking in-game. The combined totals at the top reflect the ingredients added, where perish time is the shortest. The suggestions below the real results show what recipes could be made by adding different items to those already in the Crock Pot.
The Discovery tab is finds what recipes can be prepared using a collection of ingredients. It doesn't take item quantity into account, instead assuming you have four of each. You are also able to calculate efficient recipes using your ingredients to get the most health or hunger benefit from cooking them in the crock pot. This works identically to the Statistics Analyzer tab, but limited to your inventory.
The Statistics Analyzer tab is for those who just want to explore ingredient combinations. It will calculate every valid ingredient combination possible (using an "ideal" ingredient selection, generally excluding uncooked food) and allows filtration by recipe and ingredient contents. Computation may take some time on slower computers.


Managing Git Repos Over Jump Hosts Using Persistant Sockets
I was recently helping a customer who had a somewhat complicated git workflow to production. All their Puppet code was in a locally accessible Gitlab server which was used by all the Automation dev’s to develop, test and push to.
However, their integration and production environments were located behind a jumphost which also required a custom VPN connection.
The problem was that this deployment relied on r10k and the Puppet master needed access to the Gitlab server to create the local environments in both integration and eventually production.
Enabling a streamlined process to move the Gitlab codebase from our dev area into the corralled VM behind the jumphost was needed.
This workflow involves several steps:
Connect NA Client VPN to Jumphost
SSH to Jumphost and enter auth credentials
SSH into yum repo server behind jumphost
Enter in yum repo auth credentials
scp your data - many ways to skin that cat, all are somewhat complicated
Automate with persistant SSH sockets
I decided to write a SSH script which will do this, and I wanted to ensure we didn’t fall into ‘password’ hell and have to enter in a new password every time. I had heard you could do this by using the ‘ControlMaster’ SSH param in SSH_config, open a persistant socket, and reuse it as needed. If I could enable this over a jumphost was another question but I gave it a shot.
Create a persistant socket to jumphost with tunnel on localhost through the jumphost, pushing traffic from port 22 -> 5000
Now that I can create persistant sockets I wrote a script to SSH into the local git, run rake::restore, scp the backup to my host, scp the backup from my host into the integration git over the jumphost connection, and run rake::restore.
Check to ensure I’m connected to the correct VPN Gateway
1234567891011
test -e ~/.ssh || { echo "Create an ssh dir"; exit 1; }
VPNENV=`echo $(naclient status | awk 'NR==4' | cut -d: -f2)`
VPNREMOTE="data_center"
LOCALGIT="<IP_ADDRESS>"
INTGIT="<IP_ADDRESS>"
JUMPHOST="<IP_ADDRESS>"
if [ "$VPNENV" == "$VPNREMOTE" ]
then
echo "Connected to $VPNENV"
A note before moving on about the ‘stagelatest’ function. I had a complicated command that I didn’t want to toss into the SSH line, so I wrote a fuction and ran the $(typeset -f) command to make that function available on the remote SSH shell executing the commands. The function looked like this:
My final script includes a cleanup() function that is exectued via trap and at the end of the script on a good run. Cleaning up the sockets and ensuring nothing is left is always good practice.
I also modified my SSH commands to not use the known_hosts file. This way I could reuse the tunnle on localhost:5000 to other jumphost connections inside the corralled integration or production environments. Had I used the known_hosts file every time and not pipped it to /dev/null, everytime I reused localhost:5000 to tunnel to a new server behind the jumphost the public key would change and SSH would think someone is trying to do something funny.
I also include some more logic to really make sure that the rake::restore should run on the integration/production gitlab server. Nerver hurts to double check!


Welcome.
Create a new project, or load a previous one.
Project Name:
Project Author:
Project Location:


About Magenta
Magenta is a Google Brain project to ask and answer the questions, “Can we use machine learning to create compelling art and music? If so, how? If not, why not?” Our work will be done in TensorFlow, and we’ll release our models and tools in open source. These will be accompanied by demos, tutorial blog postings and technical papers. To follow our progress, watch our GitHub and or join our discussion group.
Magenta encompasses two goals. It’s first a research project to advance the state-of-the art in music, video, image and text generation. So much has been done with machine learning to understand content— for example speech recognition and translation; in this project we want to explore content generation and creativity. Second, Magenta is an attempt to build a community of artists, coders and machine learning researchers. To facilitate that, the core Magenta team will build open-source infrastructure around TensorFlow for making art and music. This will start with audio and video support in TensorFlow, tools for working with data formats like MIDI, and platforms that help artists connect to machine learning models. For example, one of our goals is to make it super simple to play music along with a Magenta performance model.


public class RankingMetrics<T>
extends Object
implements scala.Serializable
Java users should use RankingMetrics$.of
to create a RankingMetrics
instance.
param: predictionAndLabels an RDD of (predicted ranking, ground truth set) pairs.
| Constructor and Description |
|---|
RankingMetrics(RDD<scala.Tuple2<Object,Object>> predictionAndLabels,
scala.reflect.ClassTag<T> evidence$1) |
| Modifier and Type | Method and Description |
|---|---|
double |
meanAveragePrecision()
Returns the mean average precision (MAP) of all the queries.
|
double |
ndcgAt(int k)
Compute the average NDCG value of all the queries, truncated at ranking position k.
|
static <E,T extends Iterable<E>> |
of(JavaRDD<scala.Tuple2<T,T>> predictionAndLabels)
Creates a
RankingMetrics instance (for Java users). |
double |
precisionAt(int k)
Compute the average precision of all the queries, truncated at ranking position k.
|
public static <E,T extends Iterable<E>> RankingMetrics<E> of(JavaRDD<scala.Tuple2<T,T>> predictionAndLabels)
RankingMetrics
instance (for Java users).predictionAndLabels
- a JavaRDD of (predicted ranking, ground truth set) pairspublic double precisionAt(int k)
If for a query, the ranking algorithm returns n (n is less than k) results, the precision value will be computed as #(relevant items retrieved) / k. This formula also applies when the size of the ground truth set is less than k.
If a query has an empty ground truth set, zero will be used as precision together with a log warning.
See the following paper for detail:
IR evaluation methods for retrieving highly relevant documents. K. Jarvelin and J. Kekalainen
k
- the position to compute the truncated precision, must be positivepublic double meanAveragePrecision()
public double ndcgAt(int k)
If a query has an empty ground truth set, zero will be used as ndcg together with a log warning.
See the following paper for detail:
IR evaluation methods for retrieving highly relevant documents. K. Jarvelin and J. Kekalainen
k
- the position to compute the truncated ndcg, must be positive