Projects
Click on any of the headings below to learn more about 1072's Software projects.
Summer Robot Code (6/8/18 - ) ▾
Description
We set out to master the fundamentals of FRC Programming over seven weeks. Track our progress and work along with us.
Code
To view our summer robot code, type the following into the command line:
_
Timeline
Day 1 - 6/8/18 - Getting Started ▾
- Obtained robot and other equipment from the lab
- Cleared workspace for optimal robot use
Day 2 - 6/11/18 - Software Installation, Joysticks, and Talons ▾
- Installed Java, Eclipse, Phoenix, and FRC Driver Station to main computer
- Tested and debuggd basic programs with roboRIO
- Removed JDK 9 in favor of the supported JDK 8.
- Created Drivetrain subsystem and ArcadeDriveVelocity to move
- Cannot send constant to the TalonSRX: must use joysticks due to update frequency
- Followed Talon SRX Manual up to part 7
Day 3 - 6/12/18 - SmartDashboard, Configuring Velocity PID ▾
- Installed SmartDashboard and learned how to print and graph data from code
- Configured basic settings for velocity PID using the Talon SRX Manual
- Tested on an elevated platform to start
- Aligned sensor phase with Talons, configured nominal output and peak output in both directions
- Created GitHub to store code
Day 4 - 6/13/18 - Mastering Velocity and Position PID ▾
- Continued Velocity PID, tuning F, P, and D constants to minimize error
- Later removed robot from blocks and retuned constants
- Began Position PID, carefully tuning P, I, and D constants using the joystick as a position input
- Researched optimal carpet to most accurately simulate field conditions
- Successfully transported the switch from the lab to our workspace
Day 5 - 6/14/18 - Elevator PID and Intake ▾
- Added current limit to drive train, completed position PID
- Improved code design with easy-to-read comments and encapsulation
- Completed pneumatics control
- Tested compressor with pressure switch
- Actuated solenoids for compression and intake raising using joystick D-Pad
- Implemented working Elevator subsystem
- Created commands to move the elevator given a set position or velocity
- Created 5-amp current limit to minimize damage
- Configured sensor phase to align with motors
- Began elevator position PID
- Tuned ArbitraryFeedForward constant to counteract effects of gravity
- Began tuning P constant until damaging chain with poorly selected range
- Continued Intake subsystem to add cube intaking functionality
- Successfully implemented left half of intake
Day 6 - 6/15/18 - Wrapping Up Teleop ▾
- Repaired elevator chain after damaging a link during yesterday's tuning
- Completed code for both sides of the intake, swapping in a new 775 pro motor for the right half due to a damaged header
- Borrowed a one-third field carpet to optimize robot performance from Team 115
- Completed tuning of position PID by setting soft limits and preventing the joystick from zeroing to prevent damage during tuning
- Further tuning and research is necessary for the arbitrary feed forward constant intended to counteract gravity
- Incorporated everything into a single controller, animating the robot with a fully functional drive train, elevator, and intake
Day 7 - 6/16/18 - Moving to Command-Based Architecture ▾
- Created a wrapper class to encapsulate the gamepad
- Discussed pros and cons of various programming systems, such as command-based and action-based
- Began to port existing features over to a command-based system with a scheduler
- Created preset elevator positions using gamepad buttons
Day 8 - 6/18/18 - Setting up the Pigeon ▾
- Moved robot and other materials to more expansive space, allowing for full carpet use and practice with switch and scale
- Wired Pigeon into CAN bus using Gadgeteer ribbon cable
- Read pitch, roll, yaw, as well as other status features directly from the Pigeon
- Configured Pigeon as an auxiliary sensor through the Talon, stored in PID slot 2
- Began testing, struggled with reading Pigeon value directly through Talon
Day 9, 10 - 6/19/18, 6/20/18 - Planning and Configuring Autonomous ▾
- Installed Jaci's Pathfinder software for efficient motion profile creation
- Studied 1072's in-season code, CTRE's examples, as well as numerous other teams' published code to decide on optimal buffering and profile processing system
- Created baseline path, stored motion profile constants in FPID slot 3 (where F represents velocity constants and PID represents position constants)
- Handled trajectory processing using Pathfinder, created unit convertions from feet, seconds, and radians to encoder ticks, 100 milliseconds, and degrees
- Encountered issue where points buffered only half the time
Day 11 - 6/21/18 - Beginning Path Creation ▾
- Created simple autonomous sequence to intake a cube, raise elevator, and outtake
- Created basic center-switch path to test accuracy of curvature
Day 12 - 6/22/18 - Advanced Path Creation and Command-Based Optimization ▾
- Developed 16 different autonomous one-cube paths approaching the switch and the scale at various angles
- Determined the root of the issue where autonomous only buffered half the time
- Poorly chosen end case and syntax issues with switch-case block caused early termination
- Worked on optimizing parallel and sequential CommandGroup system to minimize length of autonomous sequence
Day 13 - 6/23/18 - Pigeon Debugging and Autonomous Tuning ▾
- Modified code to better accomodate pigeon with greater understanding of inner and outer loops gained through autonomous
- Unable to test due to CAN hardware issues
- Tuned velocity and position drive train constants to improve accuracy on carpet (as opposed to concrete)
- Marked out center starting positions and switch using tape
- Began to test paths with newly tuned constants
2018 Robot Code (1/6/18 - 4/21/18) ▾
Description
Our in-season code for 2018's POWER UP! game, including autonomous paths.
Code
To view our robot code, type the following into the command line:
_
2018 Scouting App (1/6/18 - 4/19/18) ▾
Description
Our scouting app for 2018's POWER UP! game with an easy-to-use, intuitive UI for tracking matches.
Code
To view our scouting app, type the following into the command line:
For Android:
_
For iOS:
_


{% extends 'apidoc.html' %} {% block title %}Tile5 API Documentation{% endblock %} {% block api %}
The T5 core module contains classes and functionality that support basic drawing operations and math that are used in managing and drawing the graphical and tiling interfaces that are provided in the Tile5 library.
A vector is used to encapsulate X and Y coordinates for a point, and rather than bundle it with methods it has been kept to just core data to ensure it has a lightweight memory footprint.
T5.Vector(x, y)
This module contains simple functions for creating and manipulating an object literal that
contains an x
and y
value. Previously this functionaliy lived in the T5.V module but has
been moved to communicate it's more generic implementation. The T5.V module still exists, however,
and also exposes the functions of this module for the sake of backward compatibility.
Return a new xy composite that is the value of all the xy values added together.
Return a new xy composite that is a copy of the one passed to the function
Return a point that is difference between the x and y values of xy1
and xy2
.
Return the total euclidean distance between all the xy values passed to the function.
Return true if the two points are equal, false otherwise. NOTE: This function does not automatically floor the values so if the point values are floating point then floating point precision errors will likely occur.
This function is used to take all the points in the array and convert them to integer values
Get a XYRect composite that is large enough to contain the xy values passed to the function.
Initialize a new point that can be used in Tile5. A point is simply an
object literal with the attributes x
and y
. If initial values are passed
through when creating the point these will be used, otherwise 0 values will
be used.
Return a new composite xy value that is the inverted value of the one passed to the function.
Return a new composite xy which is offset by the specified amount.
This function is used to simplify a xy array by removing what would be considered 'redundant' xy positions by elimitating at a similar position.
Return the string representation of the xy
This module defines functions that are used to maintain T5.Vector objects and this is removed from the actual Vector class to keep the Vector object lightweight.
This module provides helper functions for working with an object literal that represents a set of xy values that represent the top-left and bottom-right corners of a rectangle respectively.
An XYRect object literal has the following properties.
x1
- The x vaule for the top left cornery1
- The y value for the top left cornerx2
- The x value for the bottom right cornery2
- The y value for the bottom right cornerwidth
- The width of the rectheight
- The height of the rectReturn a xy composite for the center of the rect
Return a duplicate of the XYRect
Create a new XYRect composite object
Returns the intersecting rect between the two specified XYRect composites
A module of utility functions for working with dimensions composites
width
height
Return the aspect ratio for the dimensions
(width / height)
Get the a XY composite for the center of the dimensions
(width / 2, height / 2)
Get the size for the diagonal for the dimensions
Create a new dimensions composite (width, height)
{% endblock %}


{% extends "base.html" %}
{% block content %}
{% if name %}
{{ render_text("Hi " + name + ",") }}
{% else %}
{{ render_text("Hi,") }}
{% endif %}
{{ render_text("My name is Son. I’m the founder of SimpleLogin and I wanted to be the first to welcome you on board.") }}
{{ render_text('To better secure your account, I recommend enabling Multi-Factor Authentication (MFA) on your Setting page.') }}
{{ render_text('If you use Chrome or Firefox, SimpleLogin extension could be handy to quickly create aliases. Chrome extension can be installed on Chrome Store and Firefox on Firefox Store.') }}
{{ render_text('If you have a domain, for example for your business or your project, you can import your domain into SimpleLogin
and create your business emails backed by your personal email. This is cheaper and more convenient than buying a GSuite account. By the way, all our business emails are actually aliases :).') }}
{{ render_text('Importing domain is only available for Premium plan though, shoot me an email by replying to this email if you need a trial period.') }}
{% endblock %}


Web developers working for Zühlke since 2013
made with reveal.js
The scripting language specification which is implemented by JavaScript. It is standardized by the organization Ecma International.
All new proposals are considered by the Ecma TC39 committee. They go through the following process before they are included in the Ecma Standard Link 👉🏼
The most common use of JavaScript is to add client-side behavior to HTML pages: The browser interprets and runs the JavaScript code.
Demo in the Console.
JavaScript can also be used on the server-side with NodeJS, which is built on Chrome's V8 Engine.


Why do they paint all walls in offices this color! Which way am I supposed to be going again? You wonder aloud.


public class InfoTraderFileWriter
extends java.lang.Object
A class for writing staged gedcom file lines out to a file. The { infotrader.parser.writer.InfoTraderWriter} class prepares a buffer of gedcom lines (a { List} of String) that this class writes out to a file, a stream, etc., after encoding the data into ANSEL, ASCII, or UNICODE, as needed. A separate class is needed because GEDCOM requires ANSEL support which Java doesn't have, and also limits the encodings to the three choices mentioned.
Note that GEDCOM standard does not allow for BOM's or other preambles for encodings, so none is created by this class.
| Constructor and Description |
|---|
InfoTraderFileWriter(InfoTraderWriter writer,
java.util.List<java.lang.String> InfoTraderLines) |
| Modifier and Type | Method and Description |
|---|---|
infotrader.parser.io.writer.LineTerminator |
getTerminator()
Get the terminator
|
boolean |
isUseLittleEndianForUnicode()
Get the useLittleEndianForUnicode
|
void |
setTerminator(infotrader.parser.io.writer.LineTerminator terminator)
Set the terminator
|
void |
setUseLittleEndianForUnicode(boolean useLittleEndianForUnicode)
Set the useLittleEndianForUnicode
|
void |
write(java.io.OutputStream out)
Write the gedcom lines to an output stream, encoding as needed
|
public InfoTraderFileWriter(InfoTraderWriter writer, java.util.List<java.lang.String> InfoTraderLines)
public infotrader.parser.io.writer.LineTerminator getTerminator()
public boolean isUseLittleEndianForUnicode()
public void setTerminator(infotrader.parser.io.writer.LineTerminator terminator)
terminator
- the terminator to setpublic void setUseLittleEndianForUnicode(boolean useLittleEndianForUnicode)
useLittleEndianForUnicode
- the useLittleEndianForUnicode to setpublic void write(java.io.OutputStream out) throws java.io.IOException, WriterCancelledException
out
- the output streamjava.io.IOException
- if the data can't be written to the streamWriterCancelledException
- if the write operation was cancelled


Class CoreAsyncHost
Package: grammarkdown
A Host is a user-provided service that indicates how various Grammarkdown services can interact with a file system. The CoreAsyncHost
class provides the API surface that Grammarkdown uses to interact with a host that is able to access the file system asynchronously.
Examples
The following example shows how you can create a CoreAsyncHost from a Map
:
const files = new Map([
["a.grammar", "..."],
["b.grammar", "..."]
]);
const host = new CoreAsyncHost({
ignoreCase: false,
useBuiltinGrammers: false,
resolveFile: file => file,
readFile: file => files.get(file)
});
Constructors
constructor(options, hostFallback)
Constructs a new instance of the CoreAsyncHost
class
Declaration
constructor(options: CoreAsyncHostOptions, hostFallback?: CoreAsyncHost);
Parameters
- hostFallback
- CoreAsyncHost
An optional host to use as a fallback for operations not supported by this host.
Properties
ignoreCase
Indicates whether comparisons for this host should be case insensitive.
Declaration
get ignoreCase(): boolean;
Property Value
parser
Gets the parser instance associated with this host.
Declaration
protected get parser(): Parser;
Property Value
Methods
createParser()
Creates a Parser for this host.
Declaration
/** @virtual */
protected createParser(): Parser;
Returns
| Improve this DocforFile(content, file, hostFallback)
Creates a StringAsyncHost for the provided content.
Declaration
static forFile(content: PromiseLike<string> | string, file?: string, hostFallback?: CoreAsyncHost): StringAsyncHost;
Parameters
- content
- PromiseLike<string> | string
The content of the file.
- file
- string
The file name for the content.
- hostFallback
- CoreAsyncHost
An optional host to use as a fallback for operations not supported by this host.
Returns
Examples
The following example shows how you can create a CoreAsyncHost for a string
:
const content = "...";
const host = CoreAsyncHost.forFile(content);
from(custom, hostFallback)
Creates a CoreAsyncHost
.
Declaration
static from(custom: CoreAsyncHostOptions, hostFallback?: CoreAsyncHost): CoreAsyncHost;
Parameters
- custom
- CoreAsyncHostOptions
- hostFallback
- CoreAsyncHost
An optional host to use as a fallback for operations not supported by this host.
Returns
getSourceFile(file, cancelable)
Reads and parses a source file from the host.
Declaration
getSourceFile(file: string, cancelable?: Cancelable): Promise<SourceFile | undefined>;
Parameters
- file
- string
The path to the file.
Returns
A Promise
for either the parsed SourceFile of the file if the file could be read, or undefined
if it could not be read.
normalizeFile(file)
Normalize a file path's string representation for use as a key based on the case sensitivity of the host.
Declaration
normalizeFile(file: string): string;
Parameters
- file
- string
The file path.
Returns
normalizeFileCore(file)
When overridden in a derived class, normalizes a file path's string representation for use as a key based on the case sensitivity of the host.
Declaration
/** @virtual */
protected normalizeFileCore(file: string): string;
Parameters
- file
- string
The file path.
Returns
parseSourceFile(file, text, cancelable)
Parse a source file.
Declaration
parseSourceFile(file: string, text: string, cancelable?: Cancelable): SourceFile;
Parameters
- file
- string
The path to the source file.
- text
- string
The text of the source file.
Returns
readFile(file, cancelable)
Reads a file from the host.
Declaration
readFile(file: string, cancelable?: Cancelable): Promise<string | undefined>;
Parameters
- file
- string
The path to the file.
Returns
A Promise
for either a string
containing the content if the file could be read, or undefined
if the file could not be read.
readFileCore(file, cancelToken)
When overridden in a derived class, reads a file from the host.
Declaration
/** @virtual */
protected readFileCore(file: string, cancelToken?: CancelToken): Promise<string | undefined>;
Parameters
- file
- string
The path to the file.
- cancelToken
- CancelToken
A cancellation token that can be used by the caller to abort the operation.
Returns
A Promise
for either a string
containing the content if the file could be read, or undefined
if the file could not be read.
registerKnownGrammar(name, file)
Registers a known grammar for use with @import
directives.
Declaration
registerKnownGrammar(name: string, file: string): void;
Parameters
- name
- string
The name for the grammar.
- file
- string
The file path of the grammar.
Returns
registerKnownGrammarCore(name, file)
When overridden in a derived clas, registers a known grammar for use with @import
directives.
Declaration
/** @virtual */
protected registerKnownGrammarCore(name: string, file: string): void;
Parameters
- name
- string
The name for the grammar.
- file
- string
The file path of the grammar.
Returns
resolveFile(file, referrer)
Resolve the full path of a file relative to the provided referrer.
Declaration
resolveFile(file: string, referrer?: string): string;
Parameters
- file
- string
The path to the requested file.
- referrer
- string
An optional path indicating the file from which the path should be resolved.
Returns
resolveFileCore(file, referrer)
When overridden in a derived class, resolves the full path of a file relative to the provided referrer.
Declaration
/** @virtual */
protected resolveFileCore(file: string, referrer?: string): string;
Parameters
- file
- string
The path to the requested file.
- referrer
- string
An optional path indicating the file from which the path should be resolved.
Returns
resolveKnownGrammar(name)
Returns the path for a known or built-in grammar based on its name (i.e., "es2015"
, etc.)
Declaration
resolveKnownGrammar(name: string): string | undefined;
Parameters
- name
- string
The name of the grammar.
Returns
resolveKnownGrammarCore(name)
When overridden in a derived class, returns the path for a known or built-in grammar based on its name (i.e., "es2015"
, etc.)
Declaration
/** @virtual */
protected resolveKnownGrammarCore(name: string): string | undefined;
Parameters
- name
- string
The name of the grammar.
Returns
writeFile(file, text, cancelable)
Writes a file to the host.
Declaration
writeFile(file: string, text: string, cancelable?: Cancelable): Promise<void>;
Parameters
- file
- string
The path to the file.
- text
- string
The contents of the file.
Returns
A Promise
that is settled when the operation completes.
writeFileCore(file, content, cancelToken)
When overridden in a derived class, writes a file to the host.
Declaration
/** @virtual */
protected writeFileCore(file: string, content: string, cancelToken?: CancelToken): Promise<void>;
Parameters
- file
- string
The path to the file.
- content
- string
- cancelToken
- CancelToken
A cancellation token that can be used by the caller to abort the operation.
Returns
A Promise
that is settled when the operation completes.


During this year at university, I have not only developed coding skills but also I have developed people skills and relationships with my colleague e.g. arranging meetings, make plans share ideas and coworking. I have done some coursework with my colleagues, for example, we prepared a couple of presentation about historical facts of famous people in computing and programming languages. Presentation skill is important for marketing if in need of presenting a product or for conferences. Knowing how to talk in public is also important to create relationships between people and to give the right motivation to your team. Speaking is not the only skill required for interacting with other people, so this year I also practised academic writing. This second semester I wrote a literature review about Human-Computer Interaction learning how to find good and right sources and combine the work that people have already done with the one researchers are still doing.
The literature review is available only on request.


Panel 2
Overview
At its simplest, Panel is a Matlab utility that simplifies the layout of multi-axis figures, for which you might otherwise use subplot(). An example layout is shown in the illustration (click to enlarge).
Resources
- These HTML pages provide a brief introduction to Panel. This page gives an overview of features, Layout covers how axes are organised within a figure, and Export briefly describes exporting to image files.
- The more complete User Guide for Panel comprises a collection of demo scripts; use help panel/demo at the prompt to see a list of the demos, and then use edit demopanel1 to get started.
- Detailed reference information is available through Matlab's documentation system (doc panel) or at the prompt (help panel).
If you are new to Panel, start with demopanel1, and work your way through until you grow bored. If you want to know how to do something in particular, try help panel/demo and look through the headings.
Features
- Simple control over layout, for rapid development of complex nested layouts - see example top right, thirty seconds work (see demopanel1).
- Easy rearrangement of layout, as opposed to sometimes tricksy subplot renumbering operation.
- Figure-wide control of rendering (font size, face, etc.).
- Work in physical units (millimetres, inches, etc.) or relative sizes, where appropriate.
- An important feature is WYSIWYG rendering to image files. Coupled with the easy control over layout, this allows the generation of camera-ready artwork direct from Matlab.
- Labelling/Titling of subplot groups, rather than individual subplots.
- Interation with other graphics objects (e.g. uipanels), not just axes.
Changes since Panel 1
Upgrading users of Panel 1 will notice the following changes.- Moved to a classdef single-file implementation. The modern world, eh...
- Neater, but different, interface, mainly as a result of the above change.
- In Panel 1 you told Panel how to achieve the layout you want (rootmargin, axismargin, parentmargin). In Panel 2, you tell Panel what to aim for (one margin setting only, per axis) and it figures out for itself how to do it.

- Miscellaneous feature additions (support for resize callbacks, layout reveal information, axis group labelling/titling, and some slight improvements to the export facility).
- Integrated various suggestions from Matlab Central users.
- One feature has not yet been integrated into Panel 2 - that's engineering scales. This will probably turn up in a later version; it's not a core part of Panel in any case. Let me know if you miss it.
Gotchas
- Matlab's hold() function messes up panel's control over font properties. If you are having trouble, use panel's hold() function instead, which works in just the same way (see doc panel).
- Panel solves a Linear Programming (LP) problem to maximise use of space. If you have the Mathworks Optimisation Toolbox installed, linprog() is used, which is very fast. If you do not, Panel uses its own internal solver, which is not optimised for large problems and so it can be noticeably slow for complex layouts. If you are having trouble with this, let me know and I will prioritise incorporating an optimised solver.
Acknowledgements
Several Matlab Central users have made helpful suggestions which have led to Panel being improved. These are Arthur Ward, Niko, LP Pakula, Ian, Daniel, Mukhtar Ullah and Brendan Sullivan. The incorporated LP solver is due to Jeff Stuart, formerly of USM. Export to SVG (Scalable Vector Graphics) requires plot2svg() by Juerg Schwizer (this does not ship with Panel, but is free to download here).


--- title: keywords: getting started sidebar: left-navigation-sidebar toc: false permalink: index.html folder: getting-started layout: landing-page ---
Fundamental UI is an unified, flexible design system that solves complex
problems in a meaningful way and creates simple intuitive experience.


CameraFollow()
语法
CameraFollow(#Camera, ObjectID, Angle, Height, Distance, RotationPercent, PositionPercent [, Mode])概要
Follow the specified object in a smooth manner, using interpolation.
参数
#Camera The camera to use. ObjectID The object to follow. It can be one of the following type: - Entity : use EntityID() to get a valid ID. - Light : use LightID() to get a valid ID. - Node : use NodeID() to get a valid ID. - ParticleEmitter: use ParticleEmitterID() to get a valid ID. - BillboardGroup : use BillboardGroupID() to get a valid ID. - Text3D : use Text3DID() to get a valid ID.Angle The angle of the camera relative to the followed object. Height The absolute height of the camera. Distance The distance of the camera relative to the followed object. RotationPercent Value to apply when the camera rotate to get it again in the correct angle. Valid values are from 0 to 1. PositionPercent Value to apply when the camera moves to get it again in the correct position. Valid values are from 0 to 1. When value is 0, the camera doesn't move. When value is 1, the camera is set to the final position, without interpolation. 模式 （可选） 它可以是以下值之一︰ #True : the camera will automatically look at the followed entity (default). #False: the camera will not automatically look at the followed entity.
返回值
无.
参阅
CreateCamera()
已支持操作系统
所有


It isn't grafana, htop, atop, iotop or gnome-system-monitor. It's all together with web interface
Live W3 Top app on Xeon... , on PI-board...
Single-liner of SystemD service installer from source
It isn't known why, but built-in Windows' event viewer doesn't show amount of time since windows boot time. This React + Material UI app displays events grouped by a boot time and includes duration since corresponding boot
Open an Reactive Report
It allows us to manage frequency range of CPU and memory and to control number of online cores.
It displays temperature, frequency and usage of memory and CPU.
It designed for touch and also supports ancient browsers including IE9, iOS 7+ and Android 4.4+.
Live: An Orange PI+. Please don't downclock it below 480Mhz as it is the only bare metal linux at my home ( ͡° ͜ʖ ͡°)
We like kittens, history and trucks. Google Cloud's nosql DataStore is engaged for counting of likes and stars.
Open ...


pureXML in DB2
Almost all major relational database systems have been providing XML support for several years, predominantly by mapping XML to existing database objects such as large objects (LOBs) or (object-)relational tables. Limitations of these approaches are well known in the industry and research. Starting in verion 9.1, DB2 provides pureXML support which fully integrates XML in all layers of DB2.
Native XML storage
"Native" means that XML documents are stored on disk pages in tree structures matching the XML data model.
This avoids the mapping between XML and relational structures, and the corresponding limitations. The native XML storage
is complemented with XML indexes, full XQuery, SQL/XML, and XML Schema support, as well as utilities such as a parallel
high-speed XML bulk loader. This makes DB2 a true hybrid database system which places equal weight on XML and relational
data management.


Invalid username and password.
You have been logged out.
You have successfully created an account.
Login
Login
Register


We welcome your input on corrections, translation errors, etc., as well as transcriptions of additional folios. Please notify us at<EMAIL_ADDRESS>about any issues you encounter with content on the site or for additions to the content.
Requirements for viewing this site are listed on the help page. For technical problems with using this site, send your question or comment to the webmaster at pizanmanuscripts@gmail.com


ObjectStorage.Rd
R6Class for storing similar R6 objects. These objects all need to implement the method get_id() and get_name(). The id of an object is unique in a storage whereas multiple objects can share the same name.
storage = ObjectStorage$new(allowed_classes = NULL) storage$add_object(object) storage$get_object(id)
new(allowed_classes = NULL)
Initialize the storage.
allowed_classes | Character vector. class(object) has to
return at least one of these classes for being added to the storage. |
add_object(object)
Add an object to the storage:
object | R6 object with public methods get_id() ,
and get_name() . |
get_ids()
Get the ids of the stored objects as a character vector named with the object's names.
get_length()
Get the length of the storage.
get_names()
Get the objects' names, which aren't necessarily
unique. See also this$get_ids()
.
get_nth_object(n)
Get the object with index n
going
from 1
to this$get_length()
.
get_object(id)
Get an object from the storage
with object$get_id() == id
.
id | id of an R6 object. |
get_objects(ids)
Get a list of objects from the storage
with object$get_id() %in% ids
. If ids
is missing get
a list with all objects.
ids | Character vector. Each element has to be a id of an object in the storage. |


@benchmarking {
To evaluate the performance of a DMU over multiple time periods, the Malmquist Index (MQI) can be used. It compares the performances of two time periods and quantifies the changes between them. The Malmquist index is a product of two components: The Catch-up term, which measures the efficiency change of one particular DMU within the sample, and the Frontier-shift term which quantifies the shift in the whole sample’s production frontier. Hence, it is a comparative measure for the development of a DMUs performance in relation to the performance-shift of the whole sample. In the simple case of one input and one output, the MQI is calculated as follows [29]: P stands for the considered DMU's input/output-combination in period 1, while Q stands for its input/output-combination in the second period.


In this section you download, install, and set up the HTTP Session Management modules.
Quick Start Instructions
Download and install one of the application servers.
Supported Application Server Version Download Location tc Server 3.2 https://network.pivotal.io/products/pivotal-tcserver Tomcat 8.5 http://tomcat.apache.org/download-80.cgi The generic HTTP Session Management Module for AppServers is implemented as a servlet filter and should work on any application server platform that supports the Java Servlet 2.4 specification.
The HTTP Session Management Modules installation .zip files are located in the
tools/Modules
directory of the product installation directory. Locate the .zip file for the HTTP Session Management Module that you wish to install. Unzip the appropriate HTTP Session Management Module into the specified directory for your application server:Supported Application Server Version Module Target Location for Module tc Server 3.2 HTTP Session Management Module for Pivotal tc Server <tc Server root dir>/templates
Tomcat 8.5 HTTP Session Management Module for Tomcat $CATALINA_HOME
Complete the appropriate set up instructions for your application server described in the following sections:
Additional Quick Start Instructions for tc Server Module
These steps provide a basic starting point for using the tc Server module. For more configuration options, see HTTP Session Management Module for Pivotal tc Server. As a prerequisite, module set up requires a JAVA_HOME environment variable set to the java installation.
- Navigate to the root directory of tc Server.
Create a Geode instance using one of the provided templates and start the instance after starting up a locator. For example:
$ gfsh start locator --name=locator1 $ ./tcruntime-instance.sh create my_instance_name --template geode-p2p $ ./tcruntime-ctl.sh my_instance_name start
This will create and run a Geode instance using the peer-to-peer topology and default configuration values. Another Geode instance on another system can be created and started in the same way.
If you need to pin your tc Server instance to a specific tc Server runtime version, use the
--version
option when creating the instance.
Additional Quick Start Instructions for Tomcat Module
These steps provide a basic starting point for using the Tomcat module. For more configuration options, see HTTP Session Management Module for Tomcat.
Modify Tomcat’s
server.xml
andcontext.xml
files. Configuration is slightly different depending on the topology you are setting up and the version of Tomcat you are using.For example, in a peer-to-peer configuration using Tomcat 7, you would add the following entry within the
<server>
element of server.xml:<Listener className="org.apache.geode.modules.session.catalina. PeerToPeerCacheLifecycleListener" locator="localhost[10334]" />
and the following entry within the
<context>
tag in the context.xml file:<Manager className="org.apache.geode.modules.session.catalina. Tomcat7DeltaSessionManager"/>
See Setting Up the HTTP Module for Tomcat for additional instructions.
Restart the application server.
Additional Instructions for AppServers Module
These steps provide a basic starting point for using the AppServers module with WebLogic, WebSphere or JBoss. For more configuration options, see HTTP Session Management Module for AppServers.
Note:
- The
modify_war
script relies upon a GEODE environment variable. Set the GEODE environment variable to the Geode product directory; this is the parent directory ofbin
. - The
modify_war
script, described below, relies on files within the distribution tree and should not be run outside of a complete distribution. - The
modify_war
script is abash
script and does not run on Windows.
To set up the AppServers module, perform the following steps:
Run the
modify_war
script against an existing.war
or.ear
file to integrate the necessary components. The example below will create a configuration suitable for a peer-to-peer Geode system, placing the necessary libraries intoWEB-INF/lib
for wars andlib
for ears and modifying anyweb.xml
files:$ bin/modify_war -w my-app.war -p gemfire.property.locators=localhost[10334] \ -t peer-to-peer
A new war file will be created called
session-my-app.war
. This file can now be deployed to the server.


Pricing
A Link
We are the 04/02/2017
Some inner content
Hacker
Free
Pro
$39
Phone USA: (912) 148-456
Phone FR: +332 38 30 37 90
Email: lspurcell@suddenlink.net


Point-of-care Blood Analysis
Blood testing is the most common medical routine performed in the world and in many ways, forms the cornerstone of modern medicine. In the United States, blood tests influence 80% of medical decisions made in hospital and primary care settings. However, diagnostic results are generated almost exclusively in centralized labs from large-volume blood samples. This approach requires the transport of samples to a centralized facility and highly trained personnel to run the analyses on bench-top instruments, resulting in long turnaround times on the order of hours to days.
Point-of-care testing has shown the potential to reduce turnaround times and expedite the clinical decision making process.4 Yet despite the commercialization of a wide range of analyzers, these devices are used for less than 10% of all blood tests.5 One limitation with these devices is that they only perform a narrow set of assays. However, oftentimes diagnostic tests are nearly always ordered in combination with other panels. In order to perform these tests, multiple instruments and blood samples would be required. This lack of integration with different assays is a major drawback for current systems.
Our team at Rutgers is developing a portable analyzer using centrifugal microfluidics and fluorescence microscopy for the detection of cells, chemistries, and proteins on one disc. Much of the work so far, as seen in the figures above, has focused on the detection of white blood cells---a ubiquitous assay when diagnosing the common flu or bacterial infection.


miniWiki
Source: GitHub
Create read-only "wiki" from text files in subfolders.
This allows me to keep better track of my own notes.
Each Subfolder will be maintitle and files in folder titles under that.
Saves display state of elements to local storage, so will remember how you left the page.
Sample
TODO:
Fix html, so using more general jQuery functions is possible.
Add arrow images to give clearer meaning of minimize / maximize.


{% extends 'base.html'%} {% import 'bootstrap/wtf.html' as wtf%} {% block content %}
Quotes Blog
______________________
{{quote.quote}}
Author: {{quote.author}}
Click here to add blogs:
Blog
{% for blog in all_blogs %}{% endfor %} {% endblock%}{{blog.blog}}
{{blog.user}}


Please fill out the below form and we'll get back to you as soon as we can
Showing of 'interpolate' filter: {{ 'Current version is v%VERSION%.' | interpolate }}


Analyst Unveils His 2 Upset Picks For Week 13
by Andrew Holleran
A college football analyst for the Associated Press has unveiled his game picks for Week 13 and he’s predicting two notable upsets this weekend.
Week 13 doesn’t feature a ton of notable contests – outside of Ohio State-Penn State – but there could be a few top 25 upsets.
Ralph D. Russo of the AP is predicting two of them.
Texas over No. 13 Baylor
Score prediction: Texas 28, Baylor 24
Utah State over No. 20 Boise State
Score prediction: Utah State 28, Boise State 23
***
What upsets will you be picking in Week 13?
You can view Russo’s full game picks here.


public interface Neo4jClient
| Modifier and Type | Field and Description |
|---|---|
static String |
DEFAULT_POOL_NAME
The default shared client name.
|
| Modifier and Type | Method and Description |
|---|---|
Neo4jClient |
begin(Handler<AsyncResult<Neo4jTransaction>> resultHandler)
Begins a new transaction
|
Neo4jClient |
bulkWrite(List<Query> queries,
Handler<AsyncResult<SummaryCounters>> resultHandler)
Executes a list of queries in one transaction
|
void |
close()
Closes this client
|
static Neo4jClient |
createNonShared(Vertx vertx,
Neo4jClientOptions config)
Creates a Neo4j client which maintains its own driver session.
|
static Neo4jClient |
createShared(Vertx vertx,
Neo4jClientOptions config)
Same as
createShared(Vertx, Neo4jClientOptions, String) but with a default data source name |
static Neo4jClient |
createShared(Vertx vertx,
Neo4jClientOptions config,
String dataSourceName)
Creates a Neo4j client that shares its driver session with any other client having the same name.
|
Neo4jClient |
delete(String query,
Handler<AsyncResult<List<Record>>> resultHandler)
Executes and returns deleted results
|
Neo4jClient |
delete(String query,
Value parameters,
Handler<AsyncResult<List<Record>>> resultHandler)
Executes and returns deleted results
|
Neo4jClient |
execute(String query,
Handler<AsyncResult<ResultSummary>> resultHandler)
Executes a write transaction
|
Neo4jClient |
execute(String query,
Value parameters,
Handler<AsyncResult<ResultSummary>> resultHandler)
Executes a write transaction
|
Neo4jClient |
find(String query,
Handler<AsyncResult<List<Record>>> resultHandler)
Finds a list of records
|
Neo4jClient |
find(String query,
Value parameters,
Handler<AsyncResult<List<Record>>> resultHandler)
Finds a list of records
|
Neo4jClient |
findOne(String query,
Handler<AsyncResult<Record>> resultHandler)
Finds exactly one record
|
Neo4jClient |
findOne(String query,
Value parameters,
Handler<AsyncResult<Record>> resultHandler)
Finds exactly one record
|
Neo4jClient |
queryStream(String query,
Handler<AsyncResult<Neo4jRecordStream>> recordStreamHandler)
Opens a new stream of records
|
Neo4jClient |
queryStream(String query,
Value parameters,
Handler<AsyncResult<Neo4jRecordStream>> recordStreamHandler)
Opens a new stream of records
|
static final String DEFAULT_POOL_NAME
static Neo4jClient createShared(Vertx vertx, Neo4jClientOptions config)
createShared(Vertx, Neo4jClientOptions, String)
but with a default data source namevertx
- the Vert.x instanceconfig
- the driver configurationstatic Neo4jClient createShared(Vertx vertx, Neo4jClientOptions config, String dataSourceName)
vertx
- the Vert.x instanceconfig
- the driver configurationdataSourceName
- the data source namestatic Neo4jClient createNonShared(Vertx vertx, Neo4jClientOptions config)
It is not recommended to create several non shared clients in an application.
vertx
- the Vert.x instanceconfig
- the driver configurationNeo4jClient execute(String query, Handler<AsyncResult<ResultSummary>> resultHandler)
query
- the cypher queryresultHandler
- the handler to be called when the query has completedNeo4jClient execute(String query, Value parameters, Handler<AsyncResult<ResultSummary>> resultHandler)
query
- the cypher queryparameters
- the cypher parametersresultHandler
- the handler to be called when the query has completedNeo4jClient delete(String query, Handler<AsyncResult<List<Record>>> resultHandler)
query
- the cypher queryresultHandler
- the handler to be called when the query has completedNeo4jClient delete(String query, Value parameters, Handler<AsyncResult<List<Record>>> resultHandler)
query
- the cypher queryparameters
- the cypher parametersresultHandler
- the handler to be called when the query has completedNeo4jClient findOne(String query, Handler<AsyncResult<Record>> resultHandler)
query
- the cypher queryresultHandler
- the handler to be called when the query has completedNeo4jClient findOne(String query, Value parameters, Handler<AsyncResult<Record>> resultHandler)
query
- the cypher queryparameters
- the cypher parametersresultHandler
- the handler to be called when the query has completedNeo4jClient find(String query, Handler<AsyncResult<List<Record>>> resultHandler)
query
- the cypher queryresultHandler
- the handler to be called when the query has completedNeo4jClient find(String query, Value parameters, Handler<AsyncResult<List<Record>>> resultHandler)
query
- the cypher queryparameters
- the cypher parametersresultHandler
- the handler to be called when the query has completedNeo4jClient bulkWrite(List<Query> queries, Handler<AsyncResult<SummaryCounters>> resultHandler)
queries
- the list of queries to executeresultHandler
- the handler to be called when the query has completedNeo4jClient begin(Handler<AsyncResult<Neo4jTransaction>> resultHandler)
resultHandler
- the handler to be called when the transaction has begunNeo4jClient queryStream(String query, Handler<AsyncResult<Neo4jRecordStream>> recordStreamHandler)
query
- the cypher queryrecordStreamHandler
- the handler to be called when the stream of records is availableNeo4jClient queryStream(String query, Value parameters, Handler<AsyncResult<Neo4jRecordStream>> recordStreamHandler)
query
- the cypher queryparameters
- the cypher parametersrecordStreamHandler
- the handler to be called when the stream of records is availablevoid close()
Copyright © 2020 Eclipse. All rights reserved.


gestalt.publish package¶
Submodules¶
gestalt.publish.publish module¶
gestalt.publish.rpc module¶
-
class
gestalt.publish.rpc.
fileRPCDispatch
¶ Bases:
object
Reads in remote procedure calls from a file and executes them.
-
addFunctions
(*args)¶ Adds functions provided as arguments to the list of externally accessible functions.
Input to the function is a series of tuples (externalName, function).
-
executeLine
(line)¶ Reads a string input and parses and then executes.
-
loadFromFile
(fileName)¶
-
loadFromURL
(URL)¶
-
reset
()¶
-
runFile
()¶
-
runSingle
()¶
-
-
class
gestalt.publish.rpc.
httpRPCDispatch
(address='localhost', port=7272)¶ Bases:
object
Receives remote procedure calls over HTTP and calls them from the server thread.
-
class
HTTPHandler
(request, client_address, server)¶ Bases:
BaseHTTPServer.BaseHTTPRequestHandler
RPC Handler for requests using an HTTP protocol.
-
allowAllOrigins
= False¶
-
allowOrigins
= []¶
-
do_GET
()¶
-
functions
= {}¶
-
jsonEncoder
= <json.encoder.JSONEncoder object>¶
-
log_message
(format, *args)¶
-
-
httpRPCDispatch.
addFunctions
(*args)¶ Adds functions provided as arguments to the list of externally accessible functions.
Input to the function is a series of tuples (externalName, function).
-
httpRPCDispatch.
addOrigins
(*args)¶ Adds origins provided as arguments to the list of origins which can access the rpc interface.
-
httpRPCDispatch.
allowAllOrigins
()¶
-
httpRPCDispatch.
start
()¶
-
class


#include <view.h>
Public Member Functions | |
| View () | |
| ~View () | |
| void | swap () |
| bool | load (std::string fileName) |
| bool | loadPackage (std::string fileName) |
| void | draw (Rect r, std::string res) |
| void | draw (float x, float y, float w, float h, std::string res) |
| void | resize_event (int &w, int &h) |
| void | drawAnim () |
| void | stopAnim () |
| TIME | getNow () |
| void | setNow () |
| void | setTickInterval (int i) |
| void | Screenshot () |
| void | Toggle () |
| void | frameBegin () |
| void | frameEnd () |
| TIME | frameDelay () |
Main class for handling graphics
| View::View | ( | ) |
Constructor, initialize screen
| View::~View | ( | ) |
Destructor, unload objects
| void View::draw | ( | Rect | r, |
| std::string | res | ||
| ) |
Draw on frame
| r | rectangle of drawing position |
| res | full drawing string |
| void View::draw | ( | float | x, |
| float | y, | ||
| float | w, | ||
| float | h, | ||
| std::string | res | ||
| ) |
Draw on frame
| x | coordinate |
| y | coordinate |
| w | width |
| h | height |
| res | full drawing string |
| void View::drawAnim | ( | ) |
Draw animations on frame, delete ended animations
| void View::frameBegin | ( | ) |
Begin of frame, actualilze time variables for current and previous frame
| TIME View::frameDelay | ( | ) |
Amount of sleep needed for enough frames per second
| void View::frameEnd | ( | ) |
End of frame, sleep for a while to save CPU time
|
inline |
Get current frame time
| bool View::load | ( | std::string | fileName | ) |
Load image, animation or text file
| fileName | name of file, extension determines the type |
| bool View::loadPackage | ( | std::string | fileName | ) |
Load resources from list
| fileName | name of package |
| void View::resize_event | ( | int & | w, |
| int & | h | ||
| ) |
Resize callback function
| w | width |
| h | height |
| void View::Screenshot | ( | ) |
Request to take screenshot at the end of frame
|
inline |
Set current frame time to actual time
|
inline |
Set refresh rate
| void View::stopAnim | ( | ) |
Stop all animations
| void View::swap | ( | ) |
Swap buffers, draw on screen
|
inline |
Request to toggle fullscreen


4.1. ArraysAn array is a compound type (Section 2.5, p. 58) that consists of a type specifier, an identifier, and a dimension. The type specifier indicates what type the elements stored in the array will have. The dimension specifies how many elements the array will contain.
4.1.1. Defining and Initializing ArraysThe dimension must be a constant expression (Section 2.7, p. 62) whose value is greater than or equal to one. A constant expression is any expression that involves only integral literal constants, enumerators (Section 2.7, p. 62), or const objects of integral type that are themselves initialized from constant expressions. A nonconst variable, or a const variable whose value is not known until run time, cannot be used to specify the dimension of an array. The dimension is specified inside a [] bracket pair: // both buf_size and max_files are const const unsigned buf_size = 512, max_files = 20; int staff_size = 27; // nonconst const unsigned sz = get_size(); // const value not known until run time char input_buffer[buf_size]; // ok: const variable string fileTable[max_files + 1]; // ok: constant expression double salaries[staff_size]; // error: non const variable int test_scores[get_size()]; // error: non const expression int vals[sz]; // error: size not known until run time Although staff_size is initialized with a literal constant, staff_size itself is a nonconst object. Its value can be known only at run time, so it is illegal as an array dimension. Even though size is a const object, its value is not known until get_size is called at run time. Therefore, it may not be used as a dimension. On the other hand, the expression max_files + 1 is a constant expression because max_files is a const variable. The expression can be and is evaluated at compile time to a value of 21. Explicitly Initializing Array ElementsWhen we define an array, we can provide a comma-separated list of initializers for its elements. The initializer list must be enclosed in braces: const unsigned array_size = 3; int ia[array_size] = {0, 1, 2}; If we do not supply element initializers, then the elements are initialized in the same way that variables are initialized (Section 2.3.4, p. 50).
An explicitly initialized array need not specify a dimension value. The compiler will infer the array size from the number of elements listed:
int ia[] = {0, 1, 2}; // an array of dimension 3
If the dimension size is specified, the number of elements provided must not exceed that size. If the dimension size is greater than the number of listed elements, the initializers are used for the first elements. The remaining elements are initialized to zero if the elements are of built-in type or by running the default constructor if they are of class type: const unsigned array_size = 5; // Equivalent to ia = {0, 1, 2, 0, 0} // ia[3] and ia[4] default initialized to 0 int ia[array_size] = {0, 1, 2}; // Equivalent to str_arr = {"hi", "bye", "", "", ""} // str_arr[2] through str_arr[4] default initialized to the empty string string str_arr[array_size] = {"hi", "bye"}; Character Arrays Are SpecialA character array can be initialized with either a list of comma-separated character literals enclosed in braces or a string literal. Note, however, that the two forms are not equivalent. Recall that a string literal (Section 2.2, p. 40) contains an additional terminating null character. When we create a character array from a string literal, the null is also inserted into the array: char ca1[] = {'C', '+', '+'}; // no null char ca2[] = {'C', '+', '+', '\0'}; // explicit null char ca3[] = "C++"; // null terminator added automatically The dimension of ca1 is 3; the dimension of ca2 and ca3 is 4. It is important to remember the null-terminator when initializing an array of characters to a literal. For example, the following is a compile-time error: const char ch3[6] = "Daniel"; // error: Daniel is 7 elements While the literal contains only six explicit characters, the required array size is sevensix to hold the literal and one for the null. No Array Copy or AssignmentUnlike a vector, it is not possible to initialize an array as a copy of another array. Nor is it legal to assign one array to another: int ia[] = {0, 1, 2}; // ok: array of ints int ia2[](ia); // error: cannot initialize one array with another int main() { const unsigned array_size = 3; int ia3[array_size]; // ok: but elements are uninitialized! ia3 = ia; // error: cannot assign one array to another return 0; }
4.1.2. Operations on ArraysArray elements, like vector elements, may be accessed using the subscript operator (Section 3.3.2, p. 94). Like the elements of a vector, the elements of an array are numbered beginning with 0. For an array of ten elements, the correct index values are 0 through 9, not 1 through 10. When we subscript a vector, we use vector::size_type as the type for the index. When we subscript an array, the right type to use for the index is size_t (Section 3.5.2, p. 104). In the following example, a for loop steps through the 10 elements of an array, assigning to each the value of its index: int main() { const size_t array_size = 10; int ia[array_size]; // 10 ints, elements are uninitialized // loop through array, assigning value of its index to each element for (size_t ix = 0; ix != array_size; ++ix) ia[ix] = ix; return 0; } Using a similar loop, we can copy one array into another: int main() { const size_t array_size = 7; int ia1[] = { 0, 1, 2, 3, 4, 5, 6 }; int ia2[array_size]; // local array, elements uninitialized // copy elements from ia1 into ia2 for (size_t ix = 0; ix != array_size; ++ix) ia2[ix] = ia1[ix]; return 0; } Checking Subscript ValuesAs with both strings and vectors, the programmer must guarantee that the subscript value is in rangethat the array has an element at the index value. Nothing stops a programmer from stepping across an array boundary except attention to detail and thorough testing of the code. It is not inconceivable for a program to compile and execute and still be fatally wrong.
|


TimerCallback examples
Sample timer
reset timer
Sample timer two
...
Set time in seconds
start timer
reset timer


Main
Samantha C. Tyner, PhD
Education
Iowa State University
Postdoctoral Research Associate, CSAFE
Ames, Iowa
Present - Dec. 2017
PI: Alicia Carriquiry
Iowa State University
Ph.D. in Statistics, M.S. in Statistics
Ames, Iowa
Dec. 2017 - Aug. 2012
Dissertation: Graphical discovery in stochastic actor-oriented models for social network analysis
Augustana College
B.A. in Mathematics, Economics, & French, summa cum laude
Rock Island, Illinois
May 2012 - Aug. 2008
Honors: Phi Beta Kappa, Pi Mu Epsilon, Omicron Delta Kappa, Dean’s List all terms
Professional Experience
Postdoctoral Research Associate
Center for Statistics & Applications in Forensic Evidence (CSAFE), Iowa State University
Ames, Iowa
Present - Dec. 2017
- Author educational materials for legal professionals on the use of statistics in forensic science
- Conduct research relating to human factors, statistical computing in forensic science
- Mentor graduate students on their research projects
- Coordinate the summer research experience for undergraduates (REU) from partner schoo
Graduate Research Assistant
CSAFE, Iowa State University
Ames, Iowa
Dec. 2017 - Aug. 2015
- Author educational materials for legal professionals on the use of statistics in forensic science
- Conduct research relating to human factors, statistical computing in forensic science
REU Graduate Student Advisor
CSAFE, Iowa State University
Ames, Iowa
Aug. 2017 - May 2017
- Instructed a group of ten students on R coding, statistics, and Github project management
- Supervised research projects on automated shoeprint matching and steganalysis
Graduate Student Fellow
Social and Decision Analytics Laboratory, Biocomplexity Institute, Virginia Polytechnic Institute and State University
Arlington, Virginia
Aug. 2016 - May 2016
- Participated in the interdisciplinary Data Science for Public Good summer program
- Led groups of undergraduate researchers on data-driven policy projects
- Analyzed and combined data from a variety of administrative, census, and GIS sources
- Consulted with county staff on projects to improve government services in Arlington, VA
Graduate Research Assistant
NORC at the University of Chicago
Chicago, Illinois
Apr. 2016 - Aug. 2015
- Developed a dynamic reporting system to adapt to changes in Illinois’ healthcare marketplace
Continuation of my summer internship work part time as a consultant
Data Visualization Intern
NORC at the University of Chicago
Chicago, Illinois
Aug. 2015 - May 2015
- Created data visualizations for a variety of projects in the Statistics & Methodology group
- Designed a multi-use dashboard of education data in Washington state
- Developed a web app with public health, GIS data to uncover potential epidemic regions
- Led four hour-long internal seminars on the theory and best practices of data visualization
Graduate Teaching Assistant
Dept. of Statistics, Iowa State University
Ames, Iowa
May 2015 - Aug. 2014
- Taught weekly lectures and labs
- Wrote and graded exams
Instructor for STAT 104: Introduction to Statistics
Statistical Analyst Intern
Kingland Systems Corporation
Ames, Iowa
Aug. 2014 - May 2014
- Served as a member of the Process Management team
- Performed data analysis on project and product data to refine internal processes and tools
- Built predictive models used in planning and estimating time to complete sofware development
- Produced graphs and reports to support internal visibility of projects, products, and portfolios
Graduate Research Assistant
Institute for Transportation, Iowa State University
Ames, Iowa
Aug. 2014 - Aug. 2013
- Modeled curve navigation on rural highways using large USDOT data sets
Graduate Teaching Assistant
Dept. of Statistics, Iowa State University
Ames, Iowa
Jul. 2013 - Aug. 2012
- Graded weekly homework assignments
- Supervised lab sections twice weekly
TA for STAT 104: Introduction to Statistics
Publications
Network Visualization with ggplot2
The R Journal. 9(1): 27-59. June 2017
Ames, Iowa
2017
Tyner, S., Briatte, F., and Hofmann, H
Using the R Package geomnet: Visualizing Trans-Atlantic Slave Trade of Africans, 1514-1866.
CHANCE. Sep 2016. 29(3)
Ames, Iowa
2016
Tyner, S
Evaluation of driving behavior on rural 2-lane curves using the SHRP 2 naturalistic driving study data
Journal of Safety Research. 2015. 54, 17-27.
Ames, Iowa
2015
Hallmark, S., Tyner, S., Oneyear, N., Carney, C., and McGehee, D.
Non-Contiguous Pattern Avoidance in Binary Trees
Electronic Journal of Combinatorics. 2012. 19(3). #P22.
Valparaiso, Indiana
2012
Dairyko, M., Tyner, S., Pudwell, L., and Wynn, C.
Workshops Taught
R for Epidemiology
Intensive workshop on the basics of R, data cleaning, and visualization using R and RStudio with application to epidemiological data. Presented at the USDA’s National Animal Disease Center.
Ames, Iowa
May 2018
with Haley Jeppson
The Life-Changing Magic of Tidying Data
Workshop on tidying messy data sets with the R packages dplyr, tidyr, and others. Presented to the R-Ladies Ames group.
Ames, Iowa
Dec. 2017
The Week of R
Intensive workshop on the basics of R, as well as data cleaning, webscraping, data visualization, and Shiny in R and RStudio.
Ames, Iowa
Jun. 2017
with Jo Papio, Haley Jeppson, and Heike Hofmann
Webscraping with tidyverse Packages
Workshop on scraping data from the web using the R packages rvest, xml, and others. Presented to the R-Ladies Ames group.
Ames, Iowa
Feb. 2017
Empowering Women with Self-defense Skills using R
Workshop on data cleaning, webscraping, and data visualization in R. Presented at the 2016 Women in Statistics and Data Science conference. (with Heike Hofmann)
Charlotte, NC
Oct. 2016
The Week of R
Intensive workshop on the basics of R, as well as data cleaning, webscraping, data visualization, and Shiny in R and RStudio. Presented at Iowa State University.
Ames, Iowa
May 2016
with Eric Hare, Andee Kaplan, and Heike Hofmann
Leadership & Service
Founder and Co-organizer of the Uncoast Unconference
Hackathon-style event for R users and developers living in middle America.
Des Moines, Iowa
Apr. 2019
Please visit http://uuconf.rbind.io/ for more.
Iowa State University Postdoctoral Association
Elected as the postdoctoral representative to the University Committee for the Advancement of Women and Gender Equity to voice the interests of women+-identifying postdocs on campus.
Ames, Iowa
Present - Aug. 2018
Webmaster, Iowa Chapter of the ASA
Maintain the online presence of the Iowa chapter of the American Statistical Association, the country’s top professional association for statisticians.
Ames, Iowa
Present - Apr. 2018
Co-founder and co-organizer, R-Ladies Ames
Founded the Ames chapter of the global organization R-Ladies, which promotes gender parity among R users, R package authors, and members of the R foundation and board of directors.
Ames, Iowa
Present - Dec. 2016
with Natalia daSilva
Statistics Departmental Committees
Served alongside faculty and staff as the student member of ISU statistics departmental committees: the Social Committee (2014-15) and the Honors and Awards Committee (2015-16, 2016-17).
Ames, Iowa
May 2017 - Aug. 2014
The Iowa STAT-ers Club
Led this Statistics Department graduate student organization in multiple executive positions: Secretary (2013-14), Social Chair (2014-15), and President (2015-16).
Ames, Iowa
May 2016 - Aug. 2013
Honors & Awards
Winner, rOpenSci 2018 Fellowship
For proposal, “Open Forensic Science in R”
Ames, Iowa
Feb. 2018
Please see ropensci.org for more
Winner, Student Paper Competition
From the Statistical Graphics Section of the ASA for “Using the geomnet Package”
Chicago, Illinois
Jul. 2016
See Publications
Runner up, Young Statisticians Writing Competition
From the Young Statisticians Section of the Royal Statistical Society for “The Joy of Clustering”
Exeter, Devon, UK
Sept. 2015
See Publications
Alumni Fellowship
Dept. of Statistics, Iowa State University
Ames, Iowa
Aug. 2012


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface PlayerInfo
All of the public state information for a player in the current hand
| Method Summary | |
|---|---|
double |
getAmountCallable()
get the amount of the current bet that the player can call |
double |
getAmountInPot()
Obtain the amount the player has invested in the pot. |
double |
getAmountInPotThisRound()
Obtain the amount the player has invested in the pot this round |
double |
getAmountRaiseable()
Get the maximum amount the player can raise |
double |
getAmountToCall()
Determine the amount a player must pay to stay in the game |
double |
getBankRoll()
Get the current bankroll |
double |
getBankRollAtRisk()
The maximum we can risk in the hand. |
double |
getBankRollAtStartOfHand()
Get the player's bankroll at the start of the hand (i.e., before any actions including antes and blinds). |
double |
getBankRollInSmallBets()
Get the current bankroll as a multiple of the big blind |
GameInfo |
getGameInfo()
Get the context of the last action made by this player. |
int |
getLastAction()
A single integer code for the last action made |
java.lang.String |
getName()
Obtain the player's name |
double |
getNetGain()
Get the net amount won or lost since the start of the current hand |
double |
getRaiseAmount(double amountToRaise)
Return the amount the player can raise, given the desired amount to raise. |
Hand |
getRevealedHand()
Obtain the hand revealed by this player |
int |
getSeat()
Get the player's seat number in the GameInfo |
boolean |
hasActedThisRound()
Check if a player has made at least one action this round |
boolean |
hasEnoughToRaise()
Check if the player has enough chips to complete a raise |
boolean |
inGame()
See if the player is dealt into the current game |
boolean |
isActive()
Return true if the player is still active in the hand |
boolean |
isAllIn()
Determine if a player is All-In |
boolean |
isButton()
Check if the player is currently the button |
boolean |
isCommitted()
Test if a player has volunatrily committed yet in this round |
boolean |
isFolded()
Return true if the player has folded |
boolean |
isSittingOut()
Determine if a player is sitting out |
java.lang.String |
toString()
|
| Method Detail |
|---|
double getNetGain()
double getBankRoll()
double getBankRollAtStartOfHand()
double getBankRollInSmallBets()
boolean inGame()
int getSeat()
java.lang.String getName()
boolean isAllIn()
boolean isSittingOut()
Hand getRevealedHand()
double getAmountToCall()
boolean isCommitted()
boolean hasActedThisRound()
double getAmountInPot()
double getAmountInPotThisRound()
int getLastAction()
GameInfo getGameInfo()
boolean isActive()
boolean isFolded()
boolean isButton()
boolean hasEnoughToRaise()
double getAmountRaiseable()
double getAmountCallable()
java.lang.String toString()
toString
in class java.lang.Object
double getBankRollAtRisk()
double getRaiseAmount(double amountToRaise)
amountToRaise
- the desired amount to raise.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Our beautiful planet Earth. Home to various types of life
The massive gas giant Jupiter. See that big red spot? That's a storm that's been going on for at least 350 years!
Saturn, the 5th planet from the Sun and the second-largest. See its beautiful rings?
Mars. Elon Musk's dream vacation destination. This planet was named after the Roman god of war
Callisto is the second largest moon of Jupiter. Callisto is approximately the same diameter as Mercury but only 1/3 the mass. How interesting
Eris is the second largest known dwarf planet in the solar system. Eris never gets the same attention Pluto does. Poor Eris.
Europa is the smallest of the moons orbiting Jupiter, it is slightly smaller than our moon oribiting Earth
Ganymede is the largest moon orbiting Jupiter. In fact its slightly larger than Mercury but since it orbits Jupiter it is still classified as a moon
The International Space Station. Orbits in low Earth orbit and is a joint project between multiple governments. Lots of cool low gravity science happens here!
Mercury is the smallest and innermost planet in the solar system. A year on Mercury only lasts 88 Earth days.  In fact Neptne is 17 times as massive as Earth
Pluto, everyones favorite dwarf planet (or planet if you're born before 2006)
Titan, a moon around Saturn which is covered in a thick atmosphere that some consider to be similar to that of early Earth
Uranus, the 7th planet from the Sun. A large ice giant planet
Venus, the second planet from the Sun. Named after the Roman goddess of love and beauty. Stunning!
This Website Developed by Morgan Sandler. Images credit: NASA et al.


ALTER INDEX -- change the definition of an index
ALTER INDEX name RENAME TO new_name
ALTER INDEX changes the definition of an existing index. RENAME changes the name of the index. There is no effect on the stored data.
name
The name (possibly schema-qualified) of an existing index to alter.
new_name
New name for the index.
To rename an existing index:
ALTER INDEX name_idx RENAME TO empname_idx;


--- layout: page title: Routines & Channels - coordinating asynchronous code ---
RCH provides JavaScript primitives that make it possible to coordinate asynchronous code without callbacks or chained functions.
As a result, stack traces are crystal clear so debugging is easy.
Although other solutions also try to make it easier to deal with callback hell, race conditions, and code coordination, they suffer from the same problem as callbacks/events in that they intertwine control flow and communication. This results in esoteric code that is harder to grok.
RCH is inspired by Goroutines and Channels, found in the Go language.
Routines and Channels make programs with concurrent behavior (e.g. user can navigate through a list while
data gets downloaded) much easier to write and understand because you can use standard control
flow mechanisms like for
and while
loops, conditionals like if/then/else
and case
, higher order functions like map
and reduce
and
error handling using try/catch
.
go is a function that starts executing a routine concurrently with other routines.
Start a concurrent routine by calling it with the go
function:
go(someFunction);You can also pass a function literal, e.g.
go(function* (x, y) { var answer = x + y; console.log('answer=' + answer); });Notice that the function is declared with an asterisk
function*
. This makes it a Generator function, which
is new in the upcoming version of JavaScript, but that can be used today by transpiling your code to ES5 using Google Traceur.
(you can declare Generators in NodeJS 0.11 when running with the -harmony flag).
A channel is created with new Chan()
and it provides an API for sending/receiving data between two routines. Channels are
unbuffered/synchronous which has the nice effect that they combine communication (data exchange) with synchronization,
guaranteeing that two routines are in a known state at any given time.
A routine can put data into a Channel by calling yield chan.put('someData')
, and another routine can get data by calling
yield chan.get()
. The yield
keyword causes the routine to suspend executation until another routine issues
an opposite request on the same Channel. When this happens, the routines are said to rendezvous; they are now synchronized, and will
each continue code execution until they reach another yield
statement.
This example was inpired by David Nolen's example for Clojure(Script)'s core.async.
var chan = new Routines.Chan(), timeout = Routines.timeout, go = Routines.go; go(function* () { while (yield timeout(250).get()) { chan.send(1); } }); go(function* () { while (yield timeout(1000).get()) { chan.send(2); } }); go(function* () { while (yield timeout(1500).get()) { chan.send(3); } }); go(function* () { var data; while (data = yield chan.get()) { console.log(data); } });
We create a new channel that the two routines will use to communicate & synchronize on.
timeout
is a standard channel that waits for the specified amount of time
before it puts data in the channel, signalling to a waiting routine that the time as expired.
Now we start our first routine. It runs every 250ms (yield timeout(250).get()
),
sending the value "1" to the channel.
Similarly, we have a second and third routine, with 1000ms and 1500ms cadences respectively, each sending values to the channel.
The fourth routine waits until it can get data from the channel and then simply displays it to the user.
Building an autocomplete search input that is responsive, efficient, and correct can be tricky. For a good user experience, it requires careful coordination of user input events and API requests.
This tutorial shows how you can implement it very simply using routines and channels.
Get the code.


{% load static %}
Loading Doc In Ease. Please wait...
more_vert
local_printshop
DocInEase
search
refresh
help_outline
search
close
local_printshop
Home
help_outline
Help
DocInEase 2020.02 Update
verified_user
About
menu
Upload to Convert
cloud_upload
chrome_reader_mode
{% csrf_token %}
Opening the editor with generated text...
Saved Documents
{% csrf_token %}


Detailed Description
Rotating file logger object.
qlog implements a auto-rotating file logger.
qlog_t *log = qlog("/tmp/dailylog-%Y%m%d.err", 0644, 86400, false);
if(log == NULL) return;
log->duplicate(log, stdout, true);
log->write(log, "Service started.");
log->writef(log, "Server Id: %d", 1);
log->free(log);
Functions |
| qlog_t * | qlog (const char *filepathfmt, mode_t mode, int rotateinterval, bool flush) |
| | Open ratating-log file.
|
| static bool | write_ (qlog_t *log, const char *str) |
| | qlog->write(): Log messages
|
| static bool | writef (qlog_t *log, const char *format,...) |
| | qlog->writef(): Log messages
|
| static bool | duplicate (qlog_t *log, FILE *outfp, bool flush) |
| | qlog->duplicate(): Duplicate log string into other stream
|
| static bool | flush_ (qlog_t *log) |
| | qlog->flush(): Flush buffered log
|
| static void | free_ (qlog_t *log) |
| | qlog->free(): Close ratating-log file & de-allocate resources
|
Function Documentation
| qlog_t* qlog |
( |
const char * |
filepathfmt, |
|
|
mode_t |
mode, |
|
|
int |
rotateinterval, |
|
|
bool |
flush | |
|
) |
| | |
Open ratating-log file.
- Parameters:
-
| filepathfmt | filename format. formatting argument is same as strftime() |
| mode | new file mode. 0 for system default |
| rotateinterval | rotating interval seconds, set 0 to disable rotation |
| flush | set to true if you want to flush everytime logging. false for buffered logging |
- Returns:
- a pointer of qlog_t structure
- Note:
- rotateinterval is not relative time. If you set it to 3600, log file will be rotated at every hour. And filenameformat is same as strftime(). So If you want to log with hourly rotating, filenameformat must be defined including hour format like "/somepath/xxx-%Y%m%d%H.log". You can set it to "/somepath/xxx-%H.log" for daily overrided log file.
qlog_t *log = qlog("/tmp/qdecoder-%Y%m%d.err", 0644, 86400, false);
log->free(log);
- Note:
- Use "--enable-threadsafe" configure script option to use under multi-threaded environments.
| static bool write_ |
( |
qlog_t * |
log, |
|
|
const char * |
str | |
|
) |
| | [static] |
qlog->write(): Log messages
- Parameters:
-
| log | a pointer of qlog_t |
| str | message string |
- Returns:
- true if successful, otherewise returns false
| static bool writef |
( |
qlog_t * |
log, |
|
|
const char * |
format, |
|
|
|
... | |
|
) |
| | [static] |
qlog->writef(): Log messages
- Parameters:
-
| log | a pointer of qlog_t |
| format | messages format |
- Returns:
- true if successful, otherewise returns false
| static bool duplicate |
( |
qlog_t * |
log, |
|
|
FILE * |
outfp, |
|
|
bool |
flush | |
|
) |
| | [static] |
qlog->duplicate(): Duplicate log string into other stream
- Parameters:
-
| log | a pointer of qlog_t |
| fp | logging messages will be printed out into this stream. set NULL to disable. |
| flush | set to true if you want to flush everytime duplicating. |
- Returns:
- true if successful, otherewise returns false
log->duplicate(log, stdout, true);
log->duplicate(log, stderr, false);
log->duplicate(log, NULL, false);
| static bool flush_ |
( |
qlog_t * |
log |
) |
[static] |
qlog->flush(): Flush buffered log
- Parameters:
-
- Returns:
- true if successful, otherewise returns false
| static void free_ |
( |
qlog_t * |
log |
) |
[static] |
qlog->free(): Close ratating-log file & de-allocate resources
- Parameters:
-


Former U.S. Ambassador To Ukraine Says She Was 'Kneecapped' By Smears
by APFormer U.S. Ambassador To Ukraine Marie Yovanovitch said President Donald Trump was persuaded to fire her after hearing false allegations from suspect sources. Speaking at impeachment hearings in the U.S. House of Representatives in Washington on November 15, she said she was "kneecapped" and that U.S. policy on Ukraine had been "thrown into disarray."


I often hear the cherry-pick
usage,but, how to use it?
In Neomutt git repository, i translated zh_CN version on translate branch.If i did not checkout -b my_local_branch
.Just not on “translate branch”.(Sure, i git clone -b translate url:neomutt-site).
I have finished my work(translate), at last git push origin translate
,the result you have seen above. This is help from Marcel Schilling
@yuzibo: just cherry-pik cfdf804 ontop of master and force-push to your translate-branch, this will ‘fix’ this PR, so you could re-open it:
# clone your fork locally
git clone https://github.com/yuzibo/neomutt.git
# enter it
cd neomutt
# fetch & checkout your broken translate branch
git checkout -b translate_broken origin/translate
# get the main repo as a remote
git remote add main https://github.com/neomutt/neomutt.git
# fetch the latest state of the main repo
git fetch main
# checkout the latest master as base for your new translate branch
git checkout -b translate main/master
# use only the last commit of the broken branch for the new one
git cherry-pick translate_broken
# overwrite you broken remote translate branch with the fixed one
git push --force origin translate


| comment | #comment | the text after '#' will be commented out, and not run if it is on the same line | |
| variable | name = 'Anthony' | the variable name is set to Anthony | |
| string | 'Anthony' | Anthony is a string because it is inside of ' ' (quotes) | |
| interpolation | "My first name is #{name}" | using #{} inside of quotations will generate the value of the variable within the quotes | # => "My first name is Anthony" |
| concatenate | "con" + "catenate" | two or more strings can be concatenated together | # => "concatenate" |


Demo project: webservice that provides an abstraction between mail providers.
Check out the project on Github.


It's the language of web pages.
It consists of a bunch of tags.
It describes content.
It is not the content.
Content is what goes between the HTML tags.
HTML is hosted on the server, and is sent by the server as the response.
Apache / MySQL / PHP / Perl / Softaculous
Open source is awesome!
the basics of  code

<!DOCTYPE html>

<title>Awesome title!</title>

Filename: index.html
<!doctype html>

<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Awesome title</title>
<meta name="description" content="Awesome description">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="apple-touch-icon" href="apple-touch-icon.png">

<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/main.css">

Hello world! This is HTML5 Boilerplate.

ZIP: HTML5 Boilerplate

<title>
<meta>
<link>


--- layout: post status: publish published: true title: Conference Fun with WiFi author: display_name: iguy login: iguy email<EMAIL_ADDRESS>url: '' author_login: iguy author_email<EMAIL_ADDRESS>wordpress_id: 624 wordpress_url: http://itsjustanotherlayer.com/?p=624 date: !binary |- MjAxMS0wOC0yOSAxNzozNToyOCAtMDUwMA== date_gmt: !binary |- MjAxMS0wOC0yOSAyMjozNToyOCAtMDUwMA== categories: - VMware tags: - conference - fun - vmworld - wifi comments: [] ---
Its always interesting to look at some of the things people do for their personal devices. At the VMworld conference I found these wifi points. So we have someone who feels something is overweight and apparently someone that believes they work for the Mob.


{% extends "layout.html" %} {% block page_title %} Money Claims Prototype {% endblock %} {% block proposition_header %} {% include "includes/propositional_navigation.html" %} {% endblock %} {% block content %} {% include "includes/phase_banner_beta.html" %} Tell us how the dispute happened List the events that led to the claim and any evidence that you believe supports what you say, including exhibit numbers. See a list of your evidence Exhibit A1 Emails.pdf You can see the emails dated {{ date | date('subtract', 123, 'days') | date }} and {{ date | date('subtract', 134, 'days') | date }} that they claimed not to receive. Exhibit A2 Photo 1.jpg The photos show that the roof was not adequately supported. Exhibit A3 Photo 2.jpg Exhibit A4 Contract.pdf The signed contract shows the materials we agreed to use. {% include 'prototypes/prototype-oct-2019/includes/contact.html' %} {% endblock %}
List the events that led to the claim and any evidence that you believe supports what you say, including exhibit numbers.


{% extends "base.html" %} {% block content %}
We've sent an email to {{ email }} containing a link you'll need to follow to reset your password. You should receive the email within the next few minutes.
Below are some of the most common reasons you might not be getting the message:


--- layout: post title: YUV to RGB conversion date: type: post parent_id: '0' published: false password: '' status: draft categories: [] tags: - C++ - Image meta: _edit_last: '1' _syntaxhighlighter_encoded: '1' dsq_thread_id: '878116333' _su_title: '' author: login: akropp email<EMAIL_ADDRESS>display_name: akropp first_name: '' last_name: '' permalink: "/" ---
There isn't clear much documentation on how to convert between different colorspaces on the internet, at least not that I've found. It's a little bit like voodoo. You can pick up some information here, or some information there, but in the end its up to you to piece it all together. At some point we had an issue where we had a raw YUV frame and needed to convert a section of it to RGB. This kind of problem arises because sometimes the input format isn't the format you want to work with (either a library wants a different colorspace, or an algorithm is easier to work with in a different colorspace) so its worth knowing how to convert them. Unfortunately, the conversion isn't lossless so keep that in mind when choosing a primary colorspace for your work.
YUV and RGB are two different ways of encoding a visual pixel. They are known as colorspaces. In fact there are many different kinds of colorspaces: packed and planar for both yuv and rgb subsets. All you really need to know about this is that they are different ways of putting the bytes together.
In terms of what the acronyms stand for I think most everyone knows what RGB is. RGB is represented by one byte for the red color, one byte for the blue color, and one byte for the green color. Together this forms the representation of a single pixel. YUV, while not as often talked about, is just as common. In fact this colorspace is frequently encountered when grabbing raw frames from webcams or hardware capture cards. YUV is represented by
Packed formats put the y, u, and v (or r,g,b) bytes together linearly in an array in some known order (depending on colorspace type). You can usually access them like
[c language="++"]
int index = 0;
byte y = rawFrameData[index];
byte u = rawFrameData[index + 1];
byte v = rawFrameData[index + 2];
[/c]
And as you increment your index you get the pixel for the row/column as you iterate through your array. The array, while linear, usually represents rows and columns flattened.
Here is what a packed format looks like for UYVY (a type of YUV format):
In terms of packing formats, planar is more complicated, since it represents all the y's first, then all the u's, then all the v's. This means to access the array you need to flatten what the matrix is into a 1 dimensional array and calculate the offsets. If you look at the charts in fourcc's site, it shouldn't be too hard to figure out how to calculate the offsets for a certain pixel at row X column Y.
Here is what planar looks like represented as a matrix. However, in the actual data array all of the Y bytes are first, then all the U bytes, then all the V bytes so you have to do a little bit of pointer arithmetic to line up what is a Y and a U and a V.
Unfortunatley, converting between the colorspaces is not trivial. Even fourcc doesn't seem to have a conclusive answer to what is the right formula. I'm not an image expert and I'm not going to pretend like I understand the matrix transformations involved in colorspace conversions but here is what worked for me:
[c language="++"]
/************************************************************************/
/* Calculate RGB values from input YUV values */
/************************************************************************/
RgbPixel YuvFrame::GetRgbPixel(UINT8 currentY, UINT8 currentU, UINT8 currentV) {
RgbPixel rgbPixel;
int subY = 16;
int subU = 128;
int subV = 128;
int rY = 298; int rU = 0; int rV = 409;
int gY = 298; int gU = 100; int gV = 128;
int bY = 298; int bU = 516; int bV = 0;
rgbPixel.r = Clip( (rY*(currentY-subY)+ rV*(currentV-subV)) >> 8 );
rgbPixel.g = Clip( (gY*(currentY-subY) - gU*(currentU-subU) - gV*(currentV-subV)) >> 8 );
rgbPixel.b = Clip( (bY*(currentY-subY) + bU*(currentU-subU)) >> 8 );
return rgbPixel;
}
/************************************************************************/
/* Forces values greater than 255 to be 255 */
/* And values less than 0 to be 0 */
/************************************************************************/
UINT8 YuvFrame::Clip(double val) {
if(val > 255){
return 255;
}
else if(val < 0){
return 0;
}
return (UINT8)val;
}
[/c]
An RgbPixel class is simple a struct that looks like this:
[c language="++"]
struct RgbPixel
{
unsigned char r;
unsigned char g;
unsigned char b;
}
[/c]
For more information go to fourcc.org or visit thedoom9 boards. There is a wealth of knowledge of people who have worked on vlc and other video and image processing libraries that can provide more help.
Images from fourcc.org.


DogTinder
Swipe.Match.Adopt
{{ message }}
Fill Your Details
*First Name:
*Last Name:
*NickName:
*Password:
*Confirm Password:
*Phone Number:
*Email Address:
*Required field
Back


| Developer | miHoYo |
|---|---|
| Publisher | miHoYo |
| Platform | iOS Android |
| Release | All Platform Jul 30, 2020 |
| Gerne | Otome game |
| Description | “TEARS OF THEMIS” is an otome game with puzzle elements for mobile.  Your task is to solve different cases and help your clients. There are four attractive men around you and you slowly fall in love with one of them while investigating different mysteries. |


|
UART Terminal
V2.0
UART terminal with support ECMA5.1
|
Plot real-time data. More...
Data Structures | |
| struct | data_plot_buffer |
| class | data_plot |
Functions | |
| data_plot (wxWindow *p_parent_wxwindow, wxString name_str, double min_d, double max_d, double length_d, double step_d) | |
| Constructor. More... | |
| ~data_plot (void) | |
| Destructor. More... | |
| void | add (wxString signal_label_str, wxPen signal_style_pen) |
| Add new plot signal. More... | |
| void | erase (wxString signal_label_str) |
| Delete signal from math plot. More... | |
| uint32_t | get (void) |
| Return number of signal buffer in graph. More... | |
| bool | set (wxString signal_label_str, double data_d) |
| Set signal data by name. More... | |
| bool | set (uint32_t signal_ui32, double data_d) |
| Set signal data by index. More... | |
| void | show (wxString signal_label_str, bool show_b) |
| Set signal visibility. More... | |
| bool | set_time (double length_d, double step_d) |
| Set logged data length and sample period. More... | |
| void | set_range (double max_d, double min_d) |
| Set graph range. More... | |
| void | redraw (void) |
| Redraw new data and set time cursor. More... | |
| void | fit (bool default_b=true) |
| Set graph in to default zoom. More... | |
| void | pause (bool pause_b) |
| Redraw data pause. More... | |
Plot real-time data.
| void add | ( | wxString | signal_label_str, |
| wxPen | signal_style_pen | ||
| ) |
Add new plot signal.
| [IN] | signal_label_str : signal name |
| [IN] | signal_style_pen : signal style |
Definition at line 347 of file in_data_plot_graph_cpp.cpp.
| data_plot | ( | wxWindow * | p_parent_wxwindow, |
| wxString | name_str, | ||
| double | min_d, | ||
| double | max_d, | ||
| double | length_d, | ||
| double | step_d | ||
| ) |
Constructor.
Function
| [IN] | p_parent_wxwindow : Parent window |
| [IN] | name_str : Graph name |
| [IN] | min_d : Graph minimum |
| [IN] | max_d : Graph maximum |
| [IN] | length_d : buffer length |
| [IN] | step_d : Sample period step |
Definition at line 232 of file in_data_plot_graph_cpp.cpp.
| void erase | ( | wxString | signal_label_str | ) |
Delete signal from math plot.
| [IN] | signal_label_str : signal name |
Definition at line 376 of file in_data_plot_graph_cpp.cpp.
| void fit | ( | bool | default_b = true | ) |
Set graph in to default zoom.
| [IN] | default_b : Fit type
|
Definition at line 607 of file in_data_plot_graph_cpp.cpp.
| uint32_t get | ( | void | ) |
Return number of signal buffer in graph.
| void |
Definition at line 406 of file in_data_plot_graph_cpp.cpp.
| void pause | ( | bool | pause_b | ) |
Redraw data pause.
| [IN] | pause_b : Pause status
|
Definition at line 665 of file in_data_plot_graph_cpp.cpp.
| void redraw | ( | void | ) |
Redraw new data and set time cursor.
| void |
Definition at line 553 of file in_data_plot_graph_cpp.cpp.
| bool set | ( | wxString | signal_label_str, |
| double | data_d | ||
| ) |
Set signal data by name.
| [IN] | signal_label_str : signal name |
| [IN] | data_d : data |
Definition at line 419 of file in_data_plot_graph_cpp.cpp.
| bool set | ( | uint32_t | signal_ui32, |
| double | data_d | ||
| ) |
Set signal data by index.
| [IN] | signal_ui32 : signal index |
| [IN] | data_d : data |
Definition at line 451 of file in_data_plot_graph_cpp.cpp.
| void set_range | ( | double | max_d, |
| double | min_d | ||
| ) |
Set graph range.
| [IN] | max_d : Maximum fit value for Y axis |
| [IN] | min_d : Minimum fit value for Y axis |
Definition at line 538 of file in_data_plot_graph_cpp.cpp.
| bool set_time | ( | double | length_d, |
| double | step_d | ||
| ) |
Set logged data length and sample period.
| [IN] | length_d : Buffer length in [S] |
| [IN] | step_d : Sample period in [S] |
Definition at line 501 of file in_data_plot_graph_cpp.cpp.
| void show | ( | wxString | signal_label_str, |
| bool | show_b | ||
| ) |
Set signal visibility.
| [IN] | signal_label_str : signal name |
| [IN] | show_b : Visibility state |
Definition at line 479 of file in_data_plot_graph_cpp.cpp.
| ~data_plot | ( | void | ) |


| 1. Let's say I have some function f that is continuous on an interval between a and b. | |
| 2. And I have these brackets here, so it also includes a and b in the interval. | |
| 3.  So that's my vertical axis. | |
| 5. This is my horizontal axis. | |
| 6. I'm going to label my horizontal axis t so we can save x for later. | |
| 7. I can still make this y right over there. | |
| 8. And let me graph. | |
| 9. This right over here is the graph of y is equal to f of t. | |
| 10. Now our lower endpoint is a, so that's a right over there. | |
| 11. Our upper boundary is b. | |
| 12. Let me make that clear. | |
| 13. And actually just to show that we're including that endpoint, let me make them bold lines, filled in lines. | |
| 14. So lower boundary, a, upper boundary, b. | |
| 15. We're just saying and I've drawn it this way that f is continuous on that. | |
| 16. Now let's define some new function. | |
| 17. Let's define some new function that's the area under the curve between a and some point that's in our interval. | |
| 18. Let me pick this right over here, x. | |
| 19. So let's define some new function to capture the area under the curve between a and x. | |
| 20. Well, how do we denote the area under the curve between two endpoints? | |
| 21. Well, we just use our definite integral. | |
| 22. That's our Riemann integral. | |
| 23. It's really that right now before we come up with the conclusion of this video, it really just represents the area under the curve between two endpoints. | |
| 24. So this right over here, we can say is the definite integral from a to x of f of t dt. | |
| 25. Now this right over here is going to be a function of x-- and let me make it clear-- where x is in the interval between a and b. | |
| 26. This thing right over here is going to be another function of x. | |
| 27. This value is going to depend on what x we actually choose. | |
| 28. So let's define this as a function of x. | |
| 29. So I'm going to say that this is equal to uppercase F of x. | |
| 30. So all fair and good. | |
| 31. Uppercase F of x is a function. | |
| 32. If you give me an x value that's between a and b, it'll tell you the area under lowercase f of t between a and x. | |
| 33. Now the cool part, the fundamental theorem of calculus. | |
| 34. The fundamental theorem of calculus tells us-- let me write this down because this is a big deal. | |
| 35. Fundamental theorem-- that's not an abbreviation-- theorem of calculus tells us that if we were to take the derivative of our capital F, so the derivative-- let me make sure I have enough space here. | |
| 36. So if I were to take the derivative of capital F with respect to x, which is the same thing as taking the derivative of this with respect to x, which is equal to the derivative of all of this business-- let me copy this. | |
| 37. So copy and then paste, which is the same thing. | |
| 38. I've defined capital F as this stuff. | |
| 39. So if I'm taking the derivative of the left hand side, it's the same thing as taking the derivative of the right hand side. | |
| 40. The fundamental theorem of calculus tells us that this is going to be equal to lowercase f of x. | |
| 41. Now why is this a big deal? | |
| 42. Why does it get such an important title as the fundamental theorem of calculus? | |
| 43. Well, it tells us that for any continuous function f, if I define a function, that is, the area under the curve between a and x right over here, that the derivative of that function is going to be f. | |
| 44. So let me make it clear. | |
| 45. Every continuous function, every continuous f, has an antiderivative capital F of x. | |
| 46. That by itself is a cool thing. | |
| 47. But the other really cool thing-- or I guess these are somewhat related. | |
| 48. Remember, coming into this, all we did, we just viewed the definite integral as symbolizing as the area under the curve between two points. | |
| 49. That's where that Riemann definition of integration comes from. | |
| 50. But now we see a connection between that and derivatives. | |
| 51. When you're taking the definite integral, one way of thinking, especially if you're taking a definite integral between a lower boundary and an x, one way to think about it is you're essentially taking an antiderivative. | |
| 52. So we now see a connection-- and this is why it is the fundamental theorem of calculus. | |
| 53. It connects differential calculus and integral calculus-- connection between derivatives, or maybe I should say antiderivatives, derivatives and integration. | |
| 54. Which before this video, we just viewed integration as area under curve. | |
| 55. Now we see it has a connection to derivatives. | |
| 56. Well, how would you actually use the fundamental theorem of calculus? | |
| 57. Well, maybe in the context of a calculus class. | |
| 58. And we'll do the intuition for why this happens or why this is true and maybe a proof in later videos. | |
| 59. But how would you actually apply this right over here? | |
| 60. Well, let's say someone told you that they want to find the derivative. | |
| 61. Let me do this in a new color just to show this is an example. | |
| 62. Let's say someone wanted to find the derivative with respect to x of the integral from-- I don't know. | |
| 63. I'll pick some random number here. | |
| 64. So pi 2x-- I'll put something crazy here-- cosine squared of t over the natural log of t minus the square root of t dt. | |
| 65. So they want you take the derivative with respect to x of this crazy thing. | |
| 66. Remember, this thing in the parentheses is a function of x. | |
| 67. Its value, it's going to have a value that is dependent on x. | |
| 68. If you give it a different x, it's going to have a different value. | |
| 69. So what's the derivative of this with respect to x? | |
| 70. Well, the fundamental theorem of calculus tells us it can be very simple. | |
| 71. We essentially-- and you can even pattern match up here. | |
| 72. And we'll get more intuition of why this is true in future videos. | |
| 73. But essentially, everywhere where you see this right over here is an f of t. | |
| 74. Everywhere you see a t, replace it with an x and it becomes an f of x. | |
| 75. So this is going to be equal to cosine squared of x over the natural log of x minus the square root of x. | |
| 76. You take the derivative of the indefinite integral where the upper boundary is x right over here. | |
| 77. It just becomes whatever you were taking the integral of, that as a function instaed of t, that is now a function x. | |
| 78. So it can really simplify sometimes taking a derivative. | |
| 79. And sometimes you'll see on exams these trick problems where you had this really hairy thing that you need to take a definite integral of and then take the derivative, and you just have to remember the fundamental theorem of calculus, the thing that ties it all together, connects derivatives and integration, that you can just simplify it by realizing that this is just going to be instead of a function lowercase f of t, it's going to be lowercase f of x. | |
| 80. Let me make it clear. | |
| 81. In this example right over here, this right over here was lowercase f of t. | |
| 82. And now it became lowercase f of x. | |
| 83. This right over here was our a. | |
| 84. And notice, it doesn't matter what the lower boundary of a actually is. | |
| 85. You don't have anything on the right hand side that is in some way dependent on a. | |
| 86. Anyway, hope you enjoyed that. | |
| 87. And in the next few videos, we'll think about the intuition and do more examples making use of the fundamental theorem of calculus. |


Python interpreter autocomplete + history with ~/.pythonrc
Using great tools is important, using autocompletion with great tools is even better. Update: use Jupyter, it’s just amazing!
Never used python interpreter?
Try it now! Install python if it’s not already the case and run python
in a terminal. There you go, you’re now inside a python interpreter!
Get interpreter autocompletion and history
I did an update, inspired by twneale/gist:5245670.
Here is what you’re looking for, create this file:
~/.pythonrc
Then, you need to tell python interpreter to use this ~/.pythonrc
file, so add the following line somewhere in an rc
file (either ~/.bashrc
if you’re using bash or ~/.zshrc
for the awesome oh-my-zsh)
You can also run this directly in your shell if you want to test before editing your rc
file.
 Hit tab
when experimenting with modules from the interwebs and it will be much easier to discover all the things :)
Want more?
For advanced usage, there are a few interpreters available that provide features out of the box such as syntax highlighting while you type:
I used IPython for a while and it’s great:
Even better, use Jupyter
Jupyter lets you manage notebooks with live code, syntax highlighting, visualizations, markdown and even has a few extensions. It’s really worth the try.
You’ll love it and it’s even more fun when used with numpy
and matplotlib
.
Oh and you can save them as gists which is wonderful for sharing and embedding:
Neat eh?
Found a typo? Have a suggestion? Open an issue or send me a pull-request!