About Us
We're three seniors looking to graduate from CU Boulder this year that saw an outstanding problem with the school's information about it's courses. The data was messy and the visualizations were poor and so while you could look you weren't likely to learn anything about classes you're considering spending thousands of dollars on. We wanted to clean the data and portray it in a friendly way to everyone as a powerful tool in gathering information on the courses at CU.


Formed by gamers, GameBets was created to help push eSports on Spain to a professional level, GameBets was launched as a company in final of 2016 and plans were immediately set in motion to deliver events and user experiences unlike any that had been seen in European eSports before it.
Designed by GameBets


ShinobiChart Class Reference
| Inherits from | UIView |
| Declared in | SChart.h |
| Availability | Standard Premium |
| Related samples | Area BarChart ColumnChart FinancialChart LargeDataSet LineChart PieChart |
Overview
A ShinobiChart displays data arranged in either cartesian or radial series. Here is an example with a few of the common features labelled:
A ShinobiChart will display its cartesian series (line, column, bar, scatter) if a cartesian series is added to it first, or all its radial series (donuts, pies) if a radial series is added to it first. If a radial series is added to a ‘cartesian chart’ or vice versa, a warning will be issued and that series discarded.
Data is always represented in a series or a set of series. The SChartSeries determines the look and style of the data contained in a SChartDataSeries. There is a one-to-one relationship between a chart series and the data series it represents.
A chart must have a minimum of one x-axis and one y-axis to display cartesian series, however, these will be automatically generated if none are specified.
A ShinobiChart must have an object that acts as the data source to display any data and optionally can have an object that acts as the delegate. The data source must adopt the SChartDatasource protocol and the delegate must adopt the SChartDelegate protocol. The data source provides the information needed by the chart to construct the series and represent the data. Series are identified by an index integer by the data source.
The ShinobiChart is a subclass of UIView, and as such it can be added to other parent views or set as the root view of a view controller.
A ShinobiChart will only update to reflect any changes to data when the reloadData method is called.
Tasks
Layout and Styling
-
– chartFrame
The frame that contains the whole chart object
-
– getGLFrame
The area rendered by the openGL functions - DEPRECATED
-
– getPlotAreaFrame
The frame of the plot area in the coordinate system of the chart view.
-
– chartBackgroundColor
Background color of the chart view
-
– plotBackgroundColor
Background colour of the plot area - ie: the area inside the axis.
-
canvasInset
The Inset of the chart’s canvas frame using the top, left, bottom & right values in the UIEdgeInsets object given.
property -
– positionLegend
Tells the chart to reposition its legend.
-
– redrawChart
Tells the chart to redraw itself. The chart is redrawn during the next draw cycle.
-
– setNeedsLayoutIfHaveAxesAndData
Tells the chart to redraw itself, as long as it has basic componenents. If the chart is radial, it doesn’t need to have any axes set in order to redraw.
-
rotatesOnDeviceRotation
Defines whether the chart rotates when the device is rotated.
property
Notifications through the delegate
-
– delegate
The object assigned as the chart delegate
-
– stringForX:andY:
Returns a string that represents the specified x and y values
-
– getChart
A reference to the chart object
-
– getCanvas
A reference to the canvas object of the chart
-
– axisPanningChanged
Refreshes whether panning is enabled on the chart canvas. It is called whenever the enableGesturePanning property is changed on any of the axes associated with the chart.
Managing the delegate and data source
-
delegate
The object that acts as the chart’s delegate.
property -
datasource
The object that acts as the data source of the receiving chart.
property -
licenseKey
The license key for this chart (Used for trial versions only)
property
Information about the chart axes
-
xAxis
The primary x-axis for this chart.
property -
yAxis
The primary y-axis for this chart.
property -
autoCalculateAxisRanges
Specifies whether the chart auto-calculates its axis ranges when it reloads its data. By default, this property is set to
propertyYES
.
Configuring the axes
-
– addXAxis:
Adds an X-Axis for the chart
-
– addYAxis:
Adds a Y-Axis for the chart
-
– removeXAxis:
Removes an X-Axis from the chart
-
– removeYAxis:
Removes a Y-Axis from the chart
-
– replaceXAxis:withAxis:
Replaces a X-Axis on the chart
-
– replaceYAxis:withAxis:
Replaces a Y-Axis on the chart
-
– allAxes
Returns all axes associated with this chart
-
– primaryAxes
Returns all Primary axes associated with this chart
-
– secondaryAxes
Returns all Secondary axes associated with this chart
-
– allXAxes
Returns all X axes associated with this chart
-
– allYAxes
Returns all Y axes associated with this chart
-
– secondaryXAxes
Returns all secondary X axes associated with this chart
-
– secondaryYAxes
Returns all secondary Y axes associated with this chart
-
– primaryXAxis
Returns this chart’s primary X Axis
-
– primaryYAxis
Returns this chart’s primary Y Axis
-
– axesForSeries:storeX:andStoreY:
Finds the axes associated with the chart which are linked to the specified chart series.
Information about the series displayed on the chart
-
series
A readonly array of the
propertySChartSeries
objects displayed on the chart.
Setting the title
-
title
Sets the text value of the chart title and displays in the standard position.
property -
titleLabel
The title for the chart.
property -
overlapChartTitle
A BOOLean to indicate if the chart title label should reserve space at the top of the chart or overlap the canvas.
property -
titleCentresOn
Sets how the title centers.
property -
titlePosition
Where the title will appear relative to the chart
property
Configuring a legend
-
legend
The object that represents the chart’s legend.
property
Styling the chart
-
theme
DEPRECATED - use
propertyapplyTheme:
below -
– applyTheme
DEPRECATED - use
applyTheme:
below -
– applyTheme:
Applies a theme to the chart.
-
canvasAreaBackgroundColor
The background color of the canvas area where the axes and plots are drawn.
property -
plotAreaBackgroundColor
The background color of the plot area where the series are drawn.
property -
plotAreaBorderColor
The color of the border around the plot area where the series are drawn.
property -
plotAreaBorderThickness
The thickness of the border around the plot area where the series are drawn.
property -
borderColor
The color of the border around the chart view.
property -
borderThickness
The thickness of the border chart view.
property -
crosshair
The object displayed after a tap-and-hold gesture on the chart
property
Interacting with the chart
-
gesturePanType
Set the method for zooming the chart
property -
gesturePinchAspectLock
When set to
propertyYES
all of the axis will zoom the same amount -
gestureDoubleTapEnabled
When set to
propertyYES
the double-tap gesture is enabled, and its behaviour obeys thegestureDoubleTapResetsZoom
property. -
gestureDoubleTapResetsZoom
When set to
propertyYES
the double-tap gesture will reset the zoom level to default -
animateBoxGesture
When set to
propertyYES
the zoom resulting from a box gesture will animate to the new zoom level -
animateZoomGesture
When set to
propertyYES
the zoom resulting from a pinch gesture will animate to the new zoom level -
radialTapEnabled
When set to
propertyYES
the radial-chart single tap gesture is enabled -
radialRotationEnabled
When set to
propertyYES
the radial-chart rotation gesture is enabled -
canvas
A reference to the canvas object of the chart
property
Initializing a ShinobiChart object
-
– initWithFrame:
Initialise a chart object with a specified frame.
-
– initWithFrame:withTheme:
Initialise the chart object with the specified frame and the specified theme
-
– initWithFrame:withPrimaryXAxisType:withPrimaryYAxisType:
Initialise the chart object with the specified frame and axes
-
– initWithFrame:withTheme:withPrimaryXAxisType:withPrimaryYAxisType:
Initialise the chart object with the specified frame, theme and axes
Reloading the Chart
-
– reloadData
Reloads the data points for the chart.
When the data provided by the data source changes, we use this method to tell the chart to reload. The data is reloaded during the next draw cycle. This method doesn’t redraw the chart, for that you can call either
redrawChart
orredrawChartIncludePlotArea:
after the data has been reloaded. -
loadDataInBackground
When set to
propertyYES
, the chart will load its data on a background thread. Otherwise, the chart will load its data on the main UI thread. -
loadingIndicator
This view will be displayed whilst an asynchronous data reload is in progress. By default it is a UIActivityIndicatorView, but can be assigned any UIView based class – such as an SEssentialsActivityIndicator, UIImageView etc. To support animation of the view, it may also conform to the SChartActivityIndicator protocol and implement it’s animation methods.
property -
– appendNumberOfDataPoints:toEndOfSeriesAtIndex:
Notifies the chart that the specified number of data points are available to be appended to the end of the specified chart series.
-
– removeNumberOfDataPoints:fromStartOfSeriesAtIndex:
Notifies the chart that the specified number of data points should be removed from the start of the specified chart series.
-
– updateCanvasSize
-
– redrawChartAndGL:
DEPRECATED - See redrawChartIncludePlotArea
-
– redrawChartIncludePlotArea:
Tells the chart to redraw itself
-
– flushPendingGLOperations
This ensures all pending OpenGL operations are flushed to the graphics card, preventing issues where an App may be put in the background and attempt to invoke OpenGL commands, causing the App to be signalled/killed.
Interaction
-
– stringForX:andY:usingXAxis:andYAxis:
Returns a string representing the given x and y double values on the specified chart axes
-
– stringForX:andY:usingSeries:
Returns a string representing the given x and y double values in the specified chart series
-
– stringForIdX:andIdY:usingSeries:
Returns a string representing the given x and y values in the specified chart series
-
– pointIsVisible:onSeries:
Returns whether the specified chart point is currently visible on the chart
Annotations
-
– addAnnotation:
Add an annotation view to be displayed on the chart plot area
-
– replaceAnnotationAtIndex:withAnnotation:
Replace an annotation on the chart with a new one
-
– getAnnotations
Get the current annotations on the chart
-
– removeAnnotation:
Remove an annotation from the chart
-
– removeAllAnnotations
Remove all annotations from the chart
ShinobiCharts Version Information
Properties
animateBoxGesture
When set to YES
the zoom resulting from a box gesture will animate to the new zoom level
@property (nonatomic) BOOL animateBoxGesture
Discussion
By default, this property is set to YES
.
Declared In
SChart.h
animateZoomGesture
When set to YES
the zoom resulting from a pinch gesture will animate to the new zoom level
@property (nonatomic) BOOL animateZoomGesture
Discussion
By default, this property is set to YES
.
Declared In
SChart.h
autoCalculateAxisRanges
Specifies whether the chart auto-calculates its axis ranges when it reloads its data.
By default, this property is set to YES
.
@property (nonatomic, assign) BOOL autoCalculateAxisRanges
Declared In
SChart.h
borderColor
The color of the border around the chart view.
@property (nonatomic, retain) UIColor *borderColor
Discussion
Default value is clearColor
.
Declared In
SChart.h
borderThickness
The thickness of the border chart view.
@property (nonatomic, retain) NSNumber *borderThickness
Discussion
Default value is 1.0f
.
Declared In
SChart.h
canvas
A reference to the canvas object of the chart
@property (nonatomic, readonly) SChartCanvas *canvas
Discussion
The chart canvas is responsible for drawing all of the axes and series on a chart.
Declared In
SChart.h
canvasAreaBackgroundColor
The background color of the canvas area where the axes and plots are drawn.
@property (nonatomic, assign) UIColor *canvasAreaBackgroundColor
Discussion
This area does not include any titles and legends etc. To set the background color of the whole chart area use setBackgroundColor
.
By default, this property is set to clearColor
.
Declared In
SChart.h
canvasInset
The Inset of the chart’s canvas frame using the top, left, bottom & right values in the UIEdgeInsets object given.
@property (nonatomic, assign) UIEdgeInsets canvasInset
Discussion
This inset will get applied after the canvas has taken everything else into account (e.g. chart and axis title positioning).
Declared In
SChart.h
crosshair
The object displayed after a tap-and-hold gesture on the chart
@property (nonatomic, retain) id<SChartCrosshair> crosshair
Discussion
The default crosshair implementation will draw a target cirle with axis markers and also display a tooltip. To customize, set this property to an object conforming to the SChartCrosshair protocol.
Declared In
SChart.h
datasource
The object that acts as the data source of the receiving chart.
@property (nonatomic, assign) id<SChartDatasource> datasource
Discussion
The object must adopt the SChartDatasource protocol. The data source provides the chart with the information it needs to construct the chart object. In general, styling and event response is handled by objects implementing the SChartDelegate protocol - the data source has minimal impact on the look and feel of the chart.
Declared In
SChart.h
delegate
The object that acts as the chart’s delegate.
@property (nonatomic, assign) id<SChartDelegate> delegate
Discussion
The object must adopt the SChartDelegate protocol. The SChartDelegate protocol provides the chart with a target to relay events to, such as when the user is zooming or other touch events. Objects that act as a delegate to the ShinobiChart can use these notifications to synchronise other charts or update objects with the current status of this chart.
Declared In
SChart.h
gestureDoubleTapEnabled
When set to YES
the double-tap gesture is enabled, and its behaviour obeys the gestureDoubleTapResetsZoom
property.
@property (nonatomic) BOOL gestureDoubleTapEnabled
Discussion
Otherwise, if set to NO
the chart’s double tap gesture recognizer will be disabled.
By default, this property is set to YES
.
Declared In
SChart.h
gestureDoubleTapResetsZoom
When set to YES
the double-tap gesture will reset the zoom level to default
@property (nonatomic) BOOL gestureDoubleTapResetsZoom
Discussion
Otherwise, if set to NO
the chart will zoom in a set amount.
By default, this property is set to NO
.
Declared In
SChart.h
gesturePanType
Set the method for zooming the chart
@property (nonatomic) SChartGesturePanType gesturePanType
Discussion
- SChartGesturePanTypeNone: This property disables pan gestures on the chart.
- SChartGesturePanTypePanPinch: Configures the chart to use pinch zoom gestures.
- SChartGesturePanTypeBoxDraw: Configures the chart to use touch gestures to generate a box on the chart. The chart will animate the zoom level to display the area marked by the box.
Defaults to SChartGesturePanTypePanPinch
Declared In
SChart.h
gesturePinchAspectLock
When set to YES
all of the axis will zoom the same amount
@property (nonatomic) BOOL gesturePinchAspectLock
Discussion
The chart will maintain its aspect ratio regardless of the type or orientation of gesture.
Declared In
SChart.h
legend
The object that represents the chart’s legend.
@property (nonatomic, retain) SChartLegend *legend
Declared In
SChart.h
licenseKey
The license key for this chart (Used for trial versions only)
@property (nonatomic, retain) NSString *licenseKey
Discussion
In trial versions of a chart, a valid license key must be set before the chart will render. When you download a trial version of ShinobiCharts, you will also receive an email containing the license key.
Declared In
SChart.h
loadDataInBackground
When set to YES
, the chart will load its data on a background thread. Otherwise, the chart will load its data on the main UI thread.
@property (nonatomic, assign) BOOL loadDataInBackground
Discussion
By default, this property is set to NO
. If the chart is loading its data asynchronously, it will pop up an activity indicator while the data is loading. See loadingIndicator
for more information on this.
See Also
Declared In
SChart.h
loadingIndicator
This view will be displayed whilst an asynchronous data reload is in progress. By default it is a UIActivityIndicatorView, but can be assigned any UIView based class – such as an SEssentialsActivityIndicator, UIImageView etc. To support animation of the view, it may also conform to the SChartActivityIndicator protocol and implement it’s animation methods.
@property (nonatomic, retain) UIView *loadingIndicator
Declared In
SChart.h
overlapChartTitle
A BOOLean to indicate if the chart title label should reserve space at the top of the chart or overlap the canvas.
@property (nonatomic, assign) BOOL overlapChartTitle
Discussion
Setting this attribute to YES
will allow the UILabel to appear over the chart plot area. Setting it to NO
will push the canvas area down and reserve space obove the chart plots for the title. calculateTargetBounds controls the space reserved for chart objects outside of the canvas area.
Declared In
SChart.h
plotAreaBackgroundColor
The background color of the plot area where the series are drawn.
@property (nonatomic, retain) UIColor *plotAreaBackgroundColor
Discussion
To set the background color of the whole chart area use backgroundColor
- also see canvasAreaBackgroundColor
.
By default, this property is set to clearColor
.
Declared In
SChart.h
plotAreaBorderColor
The color of the border around the plot area where the series are drawn.
@property (nonatomic, retain) UIColor *plotAreaBorderColor
Discussion
To set the border color of the whole chart area use borderColor
.
By default, this property is set to clearColor
.
Declared In
SChart.h
plotAreaBorderThickness
The thickness of the border around the plot area where the series are drawn.
@property (nonatomic, assign) CGFloat plotAreaBorderThickness
Discussion
To set the border thickness of the whole chart area use borderThickness
.
By default, this property is set to 1.0f
.
Declared In
SChart.h
radialRotationEnabled
When set to YES
the radial-chart rotation gesture is enabled
@property (nonatomic) BOOL radialRotationEnabled
Discussion
Otherwise, if set to NO
the radial chart’s rotation gesture recognizer will be disabled.
By default, this property is set to YES
.
In order for radial series to respond to rotation gestures, they must also have their gesturePanningEnabled
property set to YES
. See SChartDonutSeries
for documentation on this property.
See Also
Declared In
SChart.h
radialTapEnabled
When set to YES
the radial-chart single tap gesture is enabled
@property (nonatomic) BOOL radialTapEnabled
Discussion
Otherwise, if set to NO
the radial chart’s tap gesture recognizer will be disabled.
By default, this property is set to YES
.
Declared In
SChart.h
rotatesOnDeviceRotation
Defines whether the chart rotates when the device is rotated.
@property (nonatomic) BOOL rotatesOnDeviceRotation
Discussion
If the view that contains the chart doesn’t actually rotate for a device orientation,
set this flag to NO
to prevent unnecessary fade out/in of the axes and the crosshair.
By default, this property is set to YES
.
Declared In
SChart.h
series
A readonly array of the SChartSeries
objects displayed on the chart.
@property (atomic, retain, readonly) NSArray *series
Discussion
Series are provided to the chart by its data source. Once it has pulled them in from the data source and rendered them, you can query the series on the chart via this property.
Modifying the data points in any of these series will have no effect on the data rendered in the chart. To update it, update the chart data source, and then call reloadData
on the chart.
If you are reloading the data in your chart asynchronously, you will want to be notified when new data has loaded, as this will affect the series on the chart. To do this, you should implement the SChartDelegate protocol, and use the sChartWillStartLoadingData:
and the sChartDidFinishLoadingData:
methods.
See Also
Declared In
SChart.h
theme
DEPRECATED - use applyTheme:
below
@property (nonatomic, retain) SChartTheme *theme
Discussion
The general styling configuration for the whole chart.
Declared In
SChart.h
title
Sets the text value of the chart title and displays in the standard position.
@property (nonatomic, retain) NSString *title
Discussion
See also titleLabel for the property representing the actual SChartTitle object.
Declared In
SChart.h
titleCentresOn
Sets how the title centers.
@property (nonatomic, assign) SChartTitleCentresOn titleCentresOn
Discussion
Declared In
SChart.h
titleLabel
The title for the chart.
@property (nonatomic, retain) SChartTitle *titleLabel
Discussion
This object is created and automatically handled through the title property. However, modifying this object will give greater control over the title attributes.
Declared In
SChart.h
titlePosition
Where the title will appear relative to the chart
@property (nonatomic, assign) SChartTitlePosition titlePosition
Declared In
SChart.h
xAxis
The primary x-axis for this chart.
@property (nonatomic, retain) SChartAxis *xAxis
Discussion
The chart contains an array of x axes, as different series on the chart could use different axes. The primary axis is the main one used by the chart. If you haven’t explicitly specified which axis is the primary one, this will be automatically generated by the chart.
Declared In
SChart.h
yAxis
The primary y-axis for this chart.
@property (nonatomic, retain) SChartAxis *yAxis
Discussion
The chart contains an array of y axes, as different series on the chart could use different axes. The primary axis is the main one used by the chart. If you haven’t explicitly specified which axis is the primary one, this will be automatically generated by the chart.
Declared In
SChart.h
Class Methods
getInfo
Returns a string describing the version of the Charts framework being used.
+ (NSString *)getInfo
Discussion
This includes a version number, the type of framework (Premium, Standard, or Trial) and the date upon which the version was released.
Warning: DEPRECATED in 2.7.0 - You should use [ShinobiCharts getInfo]
instead.
Declared In
SChart.h
Instance Methods
addAnnotation:
Add an annotation view to be displayed on the chart plot area
- (void)addAnnotation:(SChartAnnotation *)newAnnotation
Parameters
- newAnnotation
The new annotation to add to the chart.
Availability
Premium
See Also
Declared In
SChart.h
addXAxis:
Adds an X-Axis for the chart
- (void)addXAxis:(SChartAxis *)newXAxis
Parameters
- newXAxis
The new x axis which will be added to the chart.
Declared In
SChart.h
addYAxis:
Adds a Y-Axis for the chart
- (void)addYAxis:(SChartAxis *)newYAxis
Parameters
- newYAxis
The new y axis which will be added to the chart.
Declared In
SChart.h
allAxes
Returns all axes associated with this chart
- (NSArray *)allAxes
Return Value
An array containing all the axes associated with this chart. The x axes will be first in the array, followed by the y axes.
Discussion
A chart can contain multiple x and y axes, if the series on the chart use different axes.
Declared In
SChart.h
allXAxes
Returns all X axes associated with this chart
- (NSArray *)allXAxes
Return Value
An array containing all the x axes associated with the chart. The primary axis will be the first one in the array.
Discussion
A chart can contain multiple x axes, if the series on the chart use different axes. A chart will always have one primary x axis, unless it is radial.
Declared In
SChart.h
allYAxes
Returns all Y axes associated with this chart
- (NSArray *)allYAxes
Return Value
An array containing all the y axes associated with the chart. The primary axis will be the first one in the array.
Discussion
A chart can contain multiple y axes, if the series on the chart use different axes. A chart will always have one primary y axis, unless it is radial.
Declared In
SChart.h
appendNumberOfDataPoints:toEndOfSeriesAtIndex:
Notifies the chart that the specified number of data points are available to be appended to the end of the specified chart series.
- (void)appendNumberOfDataPoints:(NSInteger)numberOfDataPoints toEndOfSeriesAtIndex:(NSInteger)seriesIndex
Parameters
- numberOfDataPoints
The number of data points which are available to be appended to the end of the series.
- seriesIndex
The index of the series which should append the new data.
Discussion
More information about using this method can be found in our tutorial Data streaming, crosshairs and custom tooltips in ShinobiCharts.
Declared In
SChart.h
applyTheme
DEPRECATED - use applyTheme:
below
- (void)applyTheme
Discussion
Apply the current chart theme to the chart.
Declared In
SChart.h
applyTheme:
Applies a theme to the chart.
- (void)applyTheme:(SChartTheme *)theme
Discussion
A ShinobiChart will take all of its UI configuration - colors, line thicknesses, etc - from the SChartTheme object. The chart can be initially created with a theme - see initWithFrame:usingTheme:. If a theme is not explicitly set on a chart, an instance of SChartLightTheme will be applied by default on charts running on versions of iOS prior to iOS 7, otherwise an instance of SChartiOS7Theme will be applied.
This method applies the styling properties of the given theme to the chart, overwriting any changes which you have made to sub-objects on the chart.
After this, changes made to individual objects will have precendence - for example setting the series color in the data source. To reset the styling configuration on a chart to a theme, alloc a new theme and call applyTheme:
- this will clear all styling configuration from the chart and set it to the theme defaults.
SChartTheme *chartTheme = [SChartiOS7Theme new];
[yourChart applyTheme: chartTheme];
Declared In
SChart.h
axesForSeries:storeX:andStoreY:
Finds the axes associated with the chart which are linked to the specified chart series.
- (void)axesForSeries:(SChartSeries *)series storeX:(SChartAxis **)xStore andStoreY:(SChartAxis **)yStore
Parameters
- series
The chart series of interest
- xStore
A pointer to a chart axis. In this method, we set the pointer to reference the x axis associated with the chart series.
- yStore
A pointer to a chart axis. In this method, we set the pointer to reference the y axis associated with the chart series.
Discussion
This method then sets the axis pointers, which are passed in as arguments, to reference the axes which are associated with the chart series.
Exceptions
- The
chart will throw a fatal exception if it cannot find an x axis and a y axis on the chart which are linked to the specified chart series.
Declared In
SChart.h
axisPanningChanged
Refreshes whether panning is enabled on the chart canvas. It is called whenever the enableGesturePanning property is changed on any of the axes associated with the chart.
- (void)axisPanningChanged
See Also
Declared In
SChart.h
chartBackgroundColor
Background color of the chart view
- (UIColor *)chartBackgroundColor
Declared In
SChart.h
delegate
The object assigned as the chart delegate
- (id<SChartDelegate>)delegate
Declared In
SChart.h
flushPendingGLOperations
This ensures all pending OpenGL operations are flushed to the graphics card, preventing issues where an App may be put in the background and attempt to invoke OpenGL commands, causing the App to be signalled/killed.
- (void)flushPendingGLOperations
Declared In
SChart.h
getAnnotations
Get the current annotations on the chart
- (NSArray *)getAnnotations
Return Value
An array containing all the annotations on the chart.
Availability
Premium
Declared In
SChart.h
getCanvas
A reference to the canvas object of the chart
- (SChartCanvas *)getCanvas
Declared In
SChart.h
getGLFrame
The area rendered by the openGL functions - DEPRECATED
- (CGRect)getGLFrame
Discussion
Use ‘getPlotAreaFrame’ instead.
Declared In
SChart.h
getInfo
Returns a string describing the version of the Charts framework being used.
- (NSString *)getInfo
Discussion
This includes a version number, the type of framework (Premium, Standard, or Trial) and the date upon which the version was released.
Warning: DEPRECATED in 2.7.0 - You should use [ShinobiCharts getInfo]
instead.
Declared In
SChart.h
getPlotAreaFrame
The frame of the plot area in the coordinate system of the chart view.
- (CGRect)getPlotAreaFrame
Discussion
This is the area in which your data is visualised in series. This area does not usually contain the chart title, legend, axes or axis titles, or any tickmarks or ticklabels unless they are explicitly positioned inside the plot area.
Declared In
SChart.h
initWithFrame:
Initialise a chart object with a specified frame.
- (id)initWithFrame:(CGRect)frame
Parameters
- frame
The frame to give the new chart.
Return Value
An initialized chart object or nil
if the chart couldn’t be created.
Discussion
As we haven't specified a theme, the default one is used. This is SChartLightTheme.
Declared In
SChart.h
initWithFrame:withPrimaryXAxisType:withPrimaryYAxisType:
Initialise the chart object with the specified frame and axes
- (id)initWithFrame:(CGRect)frame withPrimaryXAxisType:(SChartAxisType)xAxisType withPrimaryYAxisType:(SChartAxisType)yAxisType
Parameters
- frame
The frame to give the new chart.
- xAxisType
The type of the primary x axis on the chart.
- yAxisType
The type of the primary y axis on the chart.
Return Value
An initialized chart object or nil
if the chart couldn’t be created.
Discussion
As we haven’t specified a theme, the default one is used. This is SChartLightTheme. In this method, we specify the types of axes which we would like on our chart. The init method will create an axis of this type, and set it as the primary axis on the chart. The chart will contain one x axis and one y axis when it is created. We can then add more axes if required.
Declared In
SChart.h
initWithFrame:withTheme:
Initialise the chart object with the specified frame and the specified theme
- (id)initWithFrame:(CGRect)frame withTheme:(SChartTheme *)theme
Return Value
An initialized chart object or nil
if the chart couldn’t be created.
Declared In
SChart.h
initWithFrame:withTheme:withPrimaryXAxisType:withPrimaryYAxisType:
Initialise the chart object with the specified frame, theme and axes
- (id)initWithFrame:(CGRect)frame withTheme:(SChartTheme *)theme withPrimaryXAxisType:(SChartAxisType)xAxisType withPrimaryYAxisType:(SChartAxisType)yAxisType
Parameters
- frame
The frame to give the new chart.
- theme
The theme to use to style the chart.
- xAxisType
The type of the primary x axis on the chart.
- yAxisType
The type of the primary y axis on the chart.
Return Value
An initialized chart object or nil
if the chart couldn’t be created.
Discussion
In this method, we specify the types of axes which we would like on our chart. The init method will create an axis of this type, and set it as the primary axis on the chart. The chart will contain one x axis and one y axis when it is created. We can then add more axes if required.
Declared In
SChart.h
plotBackgroundColor
Background colour of the plot area - ie: the area inside the axis.
- (UIColor *)plotBackgroundColor
Declared In
SChart.h
pointIsVisible:onSeries:
Returns whether the specified chart point is currently visible on the chart
- (BOOL)pointIsVisible:(SChartPoint)point onSeries:(SChartSeries *)series
Parameters
- point
The point of interest on the chart.
- series
The chart series which contains the point.
Return Value
YES
if the specified point is visible on the chart.
Declared In
SChart.h
positionLegend
Tells the chart to reposition its legend.
- (void)positionLegend
Discussion
The chart legend is an instance of SChartLegend. The chart uses the value of its position property to position the legend on its canvas.
Declared In
SChart.h
primaryAxes
Returns all Primary axes associated with this chart
- (NSArray *)primaryAxes
Return Value
An array containing the primary axes associated with the chart. The array will contain the primary x axis, followed by the primary y axis.
Discussion
A chart can contain multiple x and y axes, if the series on the chart use different axes. A chart will always have one primary x axis, and one primary y axis, unless it is radial.
Declared In
SChart.h
primaryXAxis
Returns this chart’s primary X Axis
- (SChartAxis *)primaryXAxis
Discussion
A chart can contain multiple x axes, if the series on the chart use different axes. A chart will always have one primary x axis, unless it is radial.
See Also
Declared In
SChart.h
primaryYAxis
Returns this chart’s primary Y Axis
- (SChartAxis *)primaryYAxis
Discussion
A chart can contain multiple y axes, if the series on the chart use different axes. A chart will always have one primary y axis, unless it is radial.
See Also
Declared In
SChart.h
redrawChart
Tells the chart to redraw itself. The chart is redrawn during the next draw cycle.
- (void)redrawChart
Declared In
SChart.h
redrawChartAndGL:
DEPRECATED - See redrawChartIncludePlotArea
- (void)redrawChartAndGL:(BOOL)redrawGL
Declared In
SChart.h
redrawChartIncludePlotArea:
Tells the chart to redraw itself
- (void)redrawChartIncludePlotArea:(BOOL)includePlotArea
Parameters
- includePlotArea
YES
if the chart needs to redraw the data for its series, which is done in the chart plot area.
Discussion
The chart will redraw itself during the next draw cycle. This does not affect the data in the chart. If the data provided by the data source has changed, then you should call reloadData
to refresh the data in the chart.
Declared In
SChart.h
reloadData
Reloads the data points for the chart.
When the data provided by the data source changes, we use this method to tell the chart to reload. The data is reloaded during the next draw cycle. This method doesn’t redraw the chart, for that you can call either redrawChart
or redrawChartIncludePlotArea:
after the data has been reloaded.
- (void)reloadData
Discussion
This method reloads the data on the main thread. If you wish to load data asynchronously, you should set the loadDataInBackground
property to YES
before you call this method.
See Also
Declared In
SChart.h
removeAllAnnotations
Remove all annotations from the chart
- (void)removeAllAnnotations
Availability
Premium
Declared In
SChart.h
removeAnnotation:
Remove an annotation from the chart
- (void)removeAnnotation:(SChartAnnotation *)annotation
Parameters
- annotation
The annotation to remove.
Availability
Premium
Declared In
SChart.h
removeNumberOfDataPoints:fromStartOfSeriesAtIndex:
Notifies the chart that the specified number of data points should be removed from the start of the specified chart series.
- (void)removeNumberOfDataPoints:(NSInteger)numberOfDataPoints fromStartOfSeriesAtIndex:(NSInteger)seriesIndex
Parameters
- seriesIndex
The index of the series which should append the new data.
- numberOfPointsToRemoveFromStart
The number of data points which should be removed from the start of the series.
Declared In
SChart.h
removeXAxis:
Removes an X-Axis from the chart
- (void)removeXAxis:(SChartAxis *)xAxis
Parameters
- xAxis
The axis which will be removed from the chart.
Discussion
If this is the only x axis on the chart, it won’t be removed.
Declared In
SChart.h
removeYAxis:
Removes a Y-Axis from the chart
- (void)removeYAxis:(SChartAxis *)yAxis
Parameters
- yAxis
The axis which will be removed from the chart.
Discussion
If this is the only y axis on the chart, it won’t be removed.
Declared In
SChart.h
replaceAnnotationAtIndex:withAnnotation:
Replace an annotation on the chart with a new one
- (void)replaceAnnotationAtIndex:(NSInteger)index withAnnotation:(SChartAnnotation *)newAnnotation
Parameters
- index
The index of the existing annotation within the array which the chart holds.
- newAnnotation
The new annotation which you will replace it with.
Availability
Premium
Discussion
Annotations are held in a chart within an array. This method allows you to replace one of those annotations with the new one you have specified.
See Also
Declared In
SChart.h
replaceXAxis:withAxis:
Replaces a X-Axis on the chart
- (void)replaceXAxis:(SChartAxis *)oldXAxis withAxis:(SChartAxis *)newXAxis
Parameters
- oldXAxis
The axis which will be replaced.
- newXAxis
The axis which will replace it.
Declared In
SChart.h
replaceYAxis:withAxis:
Replaces a Y-Axis on the chart
- (void)replaceYAxis:(SChartAxis *)oldYAxis withAxis:(SChartAxis *)newYAxis
Parameters
- oldYAxis
The axis which will be replaced.
- newYAxis
The axis which will replace it.
Declared In
SChart.h
secondaryAxes
Returns all Secondary axes associated with this chart
- (NSArray *)secondaryAxes
Return Value
An array containing the secondary axes associated with the chart. The array will contain the secondary x axes, followed by the secondary y axes.
Discussion
A chart can contain multiple x and y axes, if the series on the chart use different axes. A chart will always have one primary x axis, and one primary y axis, unless it is radial. All the other axes on the chart are regarded as secondary.
Declared In
SChart.h
secondaryXAxes
Returns all secondary X axes associated with this chart
- (NSArray *)secondaryXAxes
Return Value
An array containing all the secondary x axes associated with the chart.
Discussion
A chart can contain multiple x axes, if the series on the chart use different axes. A chart will always have one primary x axis, unless it is radial. All the other axes on the chart are regarded as secondary.
Declared In
SChart.h
secondaryYAxes
Returns all secondary Y axes associated with this chart
- (NSArray *)secondaryYAxes
Return Value
An array containing all the secondary y axes associated with the chart.
Discussion
A chart can contain multiple y axes, if the series on the chart use different axes. A chart will always have one primary y axis, unless it is radial. All the other axes on the chart are regarded as secondary.
Declared In
SChart.h
setNeedsLayoutIfHaveAxesAndData
Tells the chart to redraw itself, as long as it has basic componenents. If the chart is radial, it doesn’t need to have any axes set in order to redraw.
- (void)setNeedsLayoutIfHaveAxesAndData
Declared In
SChart.h
stringForIdX:andIdY:usingSeries:
Returns a string representing the given x and y values in the specified chart series
- (NSString *)stringForIdX:(id)fx andIdY:(id)fy usingSeries:(SChartSeries *)series
Parameters
- fx
The value on the x axis.
- fy
The value on the y axis.
- series
The chart series with which the values are associated.
Return Value
A string representing the given values in the specified chart series.
Discussion
This method queries the series for the string representation of the given x and y values. It then concatenates those strings together. The x value is displayed before the y value.
This method is commonly used for displaying the tooltip on the chart crosshair.
Declared In
SChart.h
stringForX:andY:
Returns a string that represents the specified x and y values
- (NSString *)stringForX:(double)x andY:(double)y
Parameters
- x
The specified x value.
- y
The specified y value.
Discussion
A primary use case for this method is to generate text for the crosshair.
Declared In
SChart.h
stringForX:andY:usingSeries:
Returns a string representing the given x and y double values in the specified chart series
- (NSString *)stringForX:(double)fx andY:(double)fy usingSeries:(SChartSeries *)series
Parameters
- fx
The value on the x axis.
- fy
The value on the y axis.
- series
The chart series with which the values are associated
Return Value
A string representing the given double values in the specified chart series.
Discussion
This method queries the series for the string representation of the given x and y values. It then concatenates those strings together. The x value is displayed before the y value.
This method is commonly used for displaying the tooltip on the chart crosshair.
Declared In
SChart.h
stringForX:andY:usingXAxis:andYAxis:
Returns a string representing the given x and y double values on the specified chart axes
- (NSString *)stringForX:(double)fx andY:(double)fy usingXAxis:(SChartAxis *)xAxis andYAxis:(SChartAxis *)yAxis
Parameters
- fx
The value on the x axis.
- fy
The value on the y axis.
- xAxis
The x axis on the chart with which the x value is associated.
- yAxis
The y axis on the chart with which the y value is associated.
Return Value
A string representing the given x and y values on the specified chart axes.
Discussion
This method queries each axis for a string which represents the given value, then concatenates them together to give a single string. The x value is displayed before the y value.
This method is commonly used for displaying the tooltip on the chart crosshair.
Declared In
SChart.h


[ all classes ]
[ opennlp.tools.namefind ]
Coverage Summary for Class: DefaultNameContextGenerator (opennlp.tools.namefind)
| Class | Class, % | Method, % | Line, % |
|---|---|---|---|
| DefaultNameContextGenerator | 100% (1/ 1) | 100% (7/ 7) | 97.2% (35/ 36) |
1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18 package opennlp.tools.namefind;
19
20 import java.util.ArrayList;
21 import java.util.List;
22
23 import opennlp.tools.util.featuregen.AdaptiveFeatureGenerator;
24 import opennlp.tools.util.featuregen.BigramNameFeatureGenerator;
25 import opennlp.tools.util.featuregen.CachedFeatureGenerator;
26 import opennlp.tools.util.featuregen.FeatureGeneratorUtil;
27 import opennlp.tools.util.featuregen.OutcomePriorFeatureGenerator;
28 import opennlp.tools.util.featuregen.PreviousMapFeatureGenerator;
29 import opennlp.tools.util.featuregen.TokenClassFeatureGenerator;
30 import opennlp.tools.util.featuregen.TokenFeatureGenerator;
31 import opennlp.tools.util.featuregen.WindowFeatureGenerator;
32
33 /**
34 * Class for determining contextual features for a tag/chunk style
35 * named-entity recognizer.
36 */
37 public class DefaultNameContextGenerator implements NameContextGenerator {
38
39 protected AdaptiveFeatureGenerator[] featureGenerators;
40
41 @Deprecated
42 private static AdaptiveFeatureGenerator windowFeatures = new CachedFeatureGenerator(
43 new WindowFeatureGenerator(new TokenFeatureGenerator(), 2, 2),
44 new WindowFeatureGenerator(new TokenClassFeatureGenerator(true), 2, 2),
45 new OutcomePriorFeatureGenerator(),
46 new PreviousMapFeatureGenerator(),
47 new BigramNameFeatureGenerator());
48
49 /**
50 * Creates a name context generator.
51 * @deprecated use the other constructor and always provide the feature generators
52 */
53 @Deprecated
54 public DefaultNameContextGenerator() {
55 this((AdaptiveFeatureGenerator[]) null);
56 }
57
58 /**
59 * Creates a name context generator with the specified cache size.
60 */
61 public DefaultNameContextGenerator(AdaptiveFeatureGenerator... featureGenerators) {
62
63 if (featureGenerators != null) {
64 this.featureGenerators = featureGenerators;
65 }
66 else {
67 // use defaults
68
69 this.featureGenerators = new AdaptiveFeatureGenerator[]{
70 windowFeatures,
71 new PreviousMapFeatureGenerator()};
72 }
73 }
74
75 public void addFeatureGenerator(AdaptiveFeatureGenerator generator) {
76 AdaptiveFeatureGenerator[] generators = featureGenerators;
77
78 featureGenerators = new AdaptiveFeatureGenerator[featureGenerators.length + 1];
79
80 System.arraycopy(generators, 0, featureGenerators, 0, generators.length);
81
82 featureGenerators[featureGenerators.length - 1] = generator;
83 }
84
85 public void updateAdaptiveData(String[] tokens, String[] outcomes) {
86
87 if (tokens != null && outcomes != null && tokens.length != outcomes.length) {
88 throw new IllegalArgumentException(
89 "The tokens and outcome arrays MUST have the same size!");
90 }
91
92 for (AdaptiveFeatureGenerator featureGenerator : featureGenerators) {
93 featureGenerator.updateAdaptiveData(tokens, outcomes);
94 }
95 }
96
97 public void clearAdaptiveData() {
98 for (AdaptiveFeatureGenerator featureGenerator : featureGenerators) {
99 featureGenerator.clearAdaptiveData();
100 }
101 }
102
103 /**
104 * Return the context for finding names at the specified index.
105 * @param index The index of the token in the specified toks array for which the
106 * context should be constructed.
107 * @param tokens The tokens of the sentence. The toString methods
108 * of these objects should return the token text.
109 * @param preds The previous decisions made in the tagging of this sequence.
110 * Only indices less than i will be examined.
111 * @param additionalContext Addition features which may be based on a context outside of the sentence.
112 *
113 * @return the context for finding names at the specified index.
114 */
115 public String[] getContext(int index, String[] tokens, String[] preds, Object[] additionalContext) {
116 List<String> features = new ArrayList<>();
117
118 for (AdaptiveFeatureGenerator featureGenerator : featureGenerators) {
119 featureGenerator.createFeatures(features, tokens, index, preds);
120 }
121
122 //previous outcome features
123 String po = NameFinderME.OTHER;
124 String ppo = NameFinderME.OTHER;
125
126 // TODO: These should be moved out here in its own feature generator!
127 if (preds != null) {
128 if (index > 1) {
129 ppo = preds[index - 2];
130 }
131
132 if (index > 0) {
133 po = preds[index - 1];
134 }
135 features.add("po=" + po);
136 features.add("pow=" + po + "," + tokens[index]);
137 features.add("powf=" + po + "," + FeatureGeneratorUtil.tokenFeature(tokens[index]));
138 features.add("ppo=" + ppo);
139 }
140
141 return features.toArray(new String[features.size()]);
142 }
143 }


By default, time handle element is hidden, but in this demo the following styles were added to display it just for audio:
#player2-container .mejs__time-buffering,
#player2-container .mejs__time-current,
#player2-container .mejs__time-handle,
#player2-container .mejs__time-loaded,
#player2-container .mejs__time-marker,
#player2-container .mejs__time-total,
#player2-container .mejs__time-hovered {
height: 2px;
}
#player2-container .mejs__time-total {
margin-top: 9px;
}
#player2-container .mejs__time-handle {
left: -5px;
width: 12px;
height: 12px;
border-radius: 50%;
background: #ffffff;
top: -5px;
cursor: pointer;
display: block;
position: absolute;
z-index: 2;
border: none;
}
#player2-container .mejs__time-handle-content {
top: 0;
left: 0;
width: 12px;
height: 12px;
}


Blocking Updates (Windows)
This step will allow you to block all future Wii U updates, without blocking access to the eShop like the DNS method did.
Blocking updates is not necessary, but recommended on 5.5.2 to prevent future updates breaking your Haxchi/CBHC setup.
If you do not have Haxchi/CBHC, it is recommended that you install it now.
If you are on 5.5.1 with Haxchi/CBHC, it is recommended to update to 5.5.2.
Instructions
- Download the latest release of Update Blocker Wii U
- Unzip the .zip file and open the folder Release
- Run the program ConsoleApplication1.exe
- Make sure you're running FTPiiU_everywhere
- Read the text and press any key to continue
- Type in your Wii U's IP Address
- Type in 1 and then press Enter
- Exit out of FTPiiU_everywhere on your Wii U and return to the Home Menu
- If you're on 5.5.2, ignore the following steps
- Open System Settings and navigate to System Update
- Update your system
- If it fails instantly, congratulations, you successfully blocked updates
- If it even makes the SLIGHTEST BIT OF PROGRESS, retry and see where you went wrong
- If it tells you you're on the latest system firmware, you ignored my earlier instructions >:c


CrimPapers
Articles published on 13 September 2018
On 13 September 2018, 7 new articles were published in 7 journals.
Policing Through Subsidized Firepower: An Assessment of Rational Choice and Minority Threat Explanations of Police Participation in the 1033 Program by David M.ramey
,
trentsteidley
Traumatic Brain Injury and Sexually Offensive Behaviors by Gerry D. Blasingame
Follow-Up of A Social Skills Training (sst) For Juvenile Delinquents: Effects on Reoffending
Correlates of Narcissism, Self‐reported Lies, and Self‐assessed Abilities to Tell and Detect Lies, Tell Truths, and Believe Others by Lizazvi
,
eitanelaad
Proper Unit of Property For Takings Clause Analysis: Murr V. Wisconsin by Pamela C. Corley
Can Threat Assessment Help Police Prevent Mass Public Shootings? Testing An Intelligence-Led Policing Tool
Research and Analysis: Review of Police and Crime Commissioners Remuneration Report on Job Evaluation by HM Government


Marcus Pavilonis
10.27.16
Mike Straw came out to himself as bisexual at 38.
He came out to his wife, Deanna, as they were dating.
And on Dec. 7, 2015, he uploaded a video to YouTube and Facebook and came out to the world.
“Because I had plenty of support around me, and I got real positive responses from everybody, and if anyone didn’t accept it, it wasn’t going to be a problem for me because (I had the support of) the important people around me,” Straw said.
He said he did have some expectations of hostility, but he hasn’t really seen such feelings from people.
“It’s one of those things, like, once you kind of come out to yourself, you look back over your life and realize, ‘OK, it was kind of there the whole time,’ ” Straw, a 47-year-old web application programmer at Ohio University, said. “I was in a real conservative religious group for a while, so I chocked it up to the temptations. … And then once I opened up to, ‘This is not a bad thing … not (being) straight,’ I could think about it and look inside and see what I liked.”
In a survey conducted by YouGov, one in three Americans under 30 identified themselves as being on the bisexuality spectrum. In a survey conducted by the same organization but for teens in the United Kingdom, almost one in two 18- to 24-year-olds say they’re something other than “100 percent heterosexual.”
Although more people identify as bisexual than gay or lesbian according to a 2011 Williams Institute study, there can still be a sense of bisexual erasure, delfin bautista, director of OU’s LGBT Center, said.
 A lot of folks don’t understand bisexuality,” bautista, who uses they/them pronouns and the lowercase spelling of their name, said.
In the past, bisexuality has been confined to a definition of only being attracted to men and women. However, the definition has broadened with time, which is not uncommon for sexualities, Catherine Euler, a women’s, gender and sexuality studies adjunct lecturer, said.
“What we think we can and can’t do, or who we think we should or shouldn’t desire — those things are very affected by the time and the culture (we live in),” Euler said.  A lot of folks don’t understand bisexuality,”delfin bautista, director of OU's LGBT Center
A bisexual person might not be attracted to just men and women but could instead be attracted to traits such as masculinity and femininity or anything outside of the binary, bautista said.
“With time and as our understanding of sexuality and gender and sex has evolved, more and more people are understanding bisexuality to mean attracted to a person of one’s own gender and another gender — or more genders,” bautista said.
Straw said for himself, he’s “sexually attracted to multiple genders” and “straight as far as romance.”
However, Sam Haug, an LGBT Center student worker, uses the label “pansexual.” Pansexuality, according to a GLAAD article, means “being attracted to all gender identities, or attracted to people regardless of gender.”
“For me, the reason I didn’t pick a pansexual label as opposed to a bisexual label (is) I’m not just attracted to two genders, but I have different attractions to the different genders and different aspects,” Straw said. “Like, I like masculine aspects in men and feminine aspects in women, for lack of a better term.”
Haug, a junior studying wildlife and conservation biology and global studies — Asia, found a video by Laci Green, YouTube’s “Sex Plus” host, that helped to explain the term.
Haug has never personally identified as bisexual and likes the clear distinction between the two sexualities, preferring the openness the term “pansexual” brings.
Straw saw his world open up to what it means to be bisexual and how that can differ from person to person. As a part of an online forum, “Husbands Out to Their Wives,” Straw has found support in a community of people that are not all just like him.
“We’re all kind of there for each other,” Straw said. “We kind of started talking about our own labels of ourselves. … There’s no defined thing.”
Straw said he also frequently communicated with his wife about understanding his identity.
“At first, (conversations) were difficult, a lot of tears, a lot of discussion. I had a lot of times where I had said, ‘I wish I could just take it back and just be straight and kind of cover it up and stuff,’ but she really kept coming back and saying ‘If you do that, you’re not being yourself. You’re not being true to who you are,’ ” Straw said. “I got lucky. She’s always been an ally since before I knew her.”
Straw said “it’s kind of a blessing and a curse” he can “hide in plain sight” with his marriage. Straight privilege, bautista said, can be when a bisexual person is in a relationship with someone of the opposite gender, and their relationship appears to be straight.
“The other pressure that bi folk have when it comes to coming out is there’s a misconception — as well as a dynamic — that they have the potential privilege to pass as heterosexual, depending on who they’re in a relationship with,” bautista said. “People judge them not just as an individual but (by) who they happen to be in a relationship with.”
Kate Estrop, co-president of the Bisexual Resource Center board of directors in Boston, said there is an expectation from hetereosexual people that bisexual people will want to have sex with everyone, but that’s not true. Haug said the same untrue misconception exists for people who are pansexual.
“Bisexual women are sexualized, definitely,” Estrop said. “The (stereotypical misconceptions are the) idea of making out with another girl in a bar with your boyfriend or ‘I’m only bisexual when I’m drunk.’ … On the other hand, bi men are (stereotypically) on the way to gay. They don’t get (to) exist. … Two men kissing is not hypersexualized but two women? Definitely.”
The Bisexual Resource Center provides “support to the bisexual community and (raises) public awareness about bisexuality and bisexual people” according to its website. It is also the “oldest nationally-focused bisexual organization in the U.S.” and includes other non-monosexual relationships, like pansexuality.
“The BRC has helped me a lot in deciding that there’s more opportunities than meets the eye in love and in attraction and romance,” Estrop said. “It makes me feel good being a part of an organization and multiple organizations that are trying to make a difference in this subsection of LGBT people who are still pretty invisible.”
Euler said she wants to see the conversation on bisexuality shift, because “the more stereotypes about different forms of sexualities that we can get rid of, the better off we’re going to be.”
“Hopefully it will matter less and less what you do with who in bed, in terms of who you are as a person,” Euler said. “Those identities don’t make up the whole of who we are. We don’t have to fit ourselves into every box that comes along.”
Since coming out, Straw has been working on different projects to help create more visibility for bisexuality and other sexual minorities. He started a website, a YouTube channel and a Facebook page called “Intersections: Exploring the rich tapestry of gender, sexuality and relationships.” Straw looks to interview different people about their experiences.
Although being out as bisexual is fairly new to Straw, he’s now taking “every opportunity (he can) to share.”
“We’re there,” Straw said. “Don’t forget about us.”
Resources
LGBT Center
www.ohio.edu/lgbt
Baker University Center 354
740-593-0539
Bisexuality Resource Center
Biresource.org
<EMAIL_ADDRESS>617-424-9595


enter the new name in the box
are you sure you want to delete this category?
enter the name for category


Login
Enter valid username and password
Username
Username length must be between 3 and 10 characters.
Password
Password length must be more than 3 characters.
Login


{% extends 'layouts/main.html' %} {% block title %}Home{% endblock %} {% block content %}
I promise you can definitely enjoy the best service on my hotel


Four footballers drown in River Nile
by Jackie NamboggaThe match that was slated for 3:00 PM at Buwenda playground in Mafubira sub-county, Jinja district was promptly cancelled
Tragedy befell Buyagako Football Club based in Nakawa division, Kampala, of after four of its players drowned in River Nile at Kyekidde village, Buwenda parish, Mafubira sub-county in Jinja district on Sunday.
The team was set to play a friendly match against Jinja-based Kakira Football Club before the players met their death.
Police named the deceased as Ronald Tumwesigye, 22, James Ssenkumba, 28, and John Ssempebwa, 22, all residents of Mbuya ward, Kaggo zone in Nakawa division as well as Earnest Kafeero, 21.
Diana Nandawula, the Kiira region Police spokesperson, said the deceased ignored warnings not to swim at a dangerous spot and they were immediately swept away by the strong currents.
One of the Buyagako players said they had been warned of the spot from where they wanted to swim but their colleagues did not heed to the advice of locals.
Nandawula said the match that was slated for 3:00 PM at Buwenda playground in Mafubira sub-county, Jinja district was promptly cancelled.
Hawali Kamya, the LC1 chairperson for Buwenda Central village said many visitors to the spot are fond of ignoring residents who try to alert them about the dangers of swimming there.
“People think that since they come from Kampala they understand the geography of our area more than the locals. This shows a lack of respect even after being warned,” Kamya said, adding that this was the worst tragedy experienced in the area.
Kamya said people have an impression that the waters at the spot are not deep yet the place is also slippery.
Nandawula said it is important for people to read the notices that are placed at the river for better guidance.
“There are notices barring people from entering the water at some points. These must be respected along with what residents tell them,” she urged.
Police together with fishermen worked tirelessly to retrieve all the bodies of the players before they were taken to the Jinja Regional Referral Hospital mortuary to undergo a postmortem.


Difference Between SEO and SEM
Web optimization is tied in with advancing your site to show signs of improvement rankings in the query items while SEM goes past SEO. It includes different techniques that can get you more internet searcher guests like PPC advertising.
The difference amongst SEO and SEM is basically that Search Engine Optimization is a piece of Search motor showcasing or Search promoting as it is generally known. The two procedures point in expanding perceivability in web crawlers.


How to get a free £175 before Christmas thanks to this Martin Lewis trick
The Money Saving Expert founder's advice could see you bag some free cash before the festive period.
by Thomas LynchMartin Lewis has revealed a handy trick that could see you get some free cash before Christmas.
Money can become a bit tight around this time of year, with many of us franticly looking to buy gifts for our friends and family.
This latest advice from The Money Saving Expert blog could help ease some of that financial pressure.
To get this free £175, all you need to do is switch bank accounts. Currently, four banks will pay you to join them.
"Switching only takes seven working days, and with most, you can get the bonus within a month of that," Martin says.
"That's about 40 days, meaning it's still possible to bag the cash before 25 December, though even if you don't quite make that date, you'll have it to ease the Jan squeeze - when the gap between paydays is long."
These are the four accounts Martin says you can switch to now to bag yourself the free cash:
HSBC Advance
FREE £175
2.75% regular saver
Maximum wait for upfront bonus - 40 days
(Min pay-in £1,750/mth - equiv £25,900/yr salary)
M&S Bank
FREE £100 M&S GIFT CARD
Extra £80 gift card after 1yr
Good service (68% great)
5% regular saver
Maximum wait for upfront bonus - 40 days
(NO min pay-in for the £100, but £1,250/mth for the £80 - equiv £17,000/yr salary)
First Direct
FREE £50
Top service (85% great)
£250 0% overdraft
2.75% regular saver
Maximum wait for upfront bonus - 40 days
(No min pay-in needed, but must pay in £1k within 3mths for bonus)
NatWest / RBS Reward
FREE £150
£2/mth fee
2% cashback on bills paid by direct debit (but MSE have heard this changes in February)
Maximum wait for upfront bonus - Comes in February
(Min pay-in £1,500/mth - equiv £21,500/yr salary)
For more information and money saving advice, visit the Money Saving Expert blog.


We are sorry, but this website doesn't work properly without JavaScript enabled!
Login
Username:
Password:
logout
getVersion


Luigi Almost Looked Very Different In Super Mario Odyssey
"We considered a drastic costume change for Luigi"
by Damien McFerranLuigi has long since moved on from being a palette-swapped second player to a fully-fledged hero in his own right – heck, he even has his own series of video games these days – but he sadly isn't a playable choice in Super Mario Odyssey, the most recent mainline Mario title.
However, while he merely plays a bit part in the Switch exclusive, he very nearly sported a 'drastically' different look.
Speaking in The Art of Super Mario Odyssey, character art lead Sho Murata said:
Luigi hosts the Balloon World minigame. We wanted players to feel welcome in this minigame, so we gave him a cheerful and casual attitude, like a performer passing out balloons on the street. We wanted to make it seem like he came directly from the Mushroom Kingdom, so in contrast to the sticker-laden Odyssey, his satchel sports only stickers from the Mushroom Kingdom. One of the stickers is actually out of circulation…
We considered a drastic costume change for Luigi at first, but we ultimately went with a simple look, since it would work well against the background of this game’s world. I wonder… including the Luigi green, did you notice his balloons are the same colors as Super Famicom controller buttons? To the many fans who were looking to his appearance in the game, know that the designer in charge put a lot of effort into Luigi’s development.
Do you think Luigi would have looked right with a completely different costume, or are you glad that the designers ultimately decided to stick with tradition? Post a comment to share your thoughts.
The Art of Super Mario Odyssey
The Art Of Super Mario Odyssey (Hardcover)
[via nintendoeverything.com]


|
mxnet
|
Files | |
| file | base.h [code] |
| file | contrib.h [code] |
| utility function to enable some contrib features | |
| file | executor.h [code] |
| file | initializer.h [code] |
| random initializer | |
| file | io.h [code] |
| file | kvstore.h [code] |
| file | lr_scheduler.h [code] |
| Scheduling learning rate. | |
| file | metric.h [code] |
| file | model.h [code] |
| MXNET.cpp model module. | |
| file | monitor.h [code] |
| monitor definition | |
| file | MxNetCpp.h [code] |
| meta include file for mxnet.cpp | |
| file | ndarray.h [code] |
| file | op_map.h [code] |
| definition of OpMap | |
| file | op_suppl.h [code] |
| A supplement and amendment of the operators from op.h. | |
| file | op_util.h [code] |
| operator helper functions | |
| file | operator.h [code] |
| file | optimizer.h [code] |
| definition of optimizer | |
| file | shape.h [code] |
| definition of shape | |
| file | symbol.h [code] |
| definition of symbol | |


We're migrating some of our "vanilla" MySQL 5.5 servers to Percona Server 5.5. One of the major incentives is the crash-safe replication feature, allowing slaves to die (power failure) and resume replication without losing position in relay logs.
Whether or not we will migrate all our servers depends on further benchmarking; so far we've noticed unexpected results, but these are still premature to publish.
However the fact that we are using both MySQL & Percona Server has led us into a peculiar situation which I'd like to share. We reseed our servers via LVM snapshots. If we need a new machine, or have a corrupted slave, we capture an image of a running slave and duplicate it, a process which takes the better part of a day. This duplicates not only the data, of course, but also the relay logs, the relay-log.info file, master.info file, implying the position within the topology.
With crash safe replication this also means the transactional relay log position. Recap: crash safe replication writes, per transaction, the relay log status into ibdata1 file. So the relay log info in ibdata1 is in perfect alignment with your committed transactions. Upon server startup, Percona Server reads the info from ibdata1 and overwrites relay-log.info file (it completely disregards whatever was in that file prior to startup).
Can you guess what could get wrong here? Here's the scenario we had; the same problem can unfold in different scenarios.
Take a look at the following topology:
(this image is an actual online visualization of a replication topology; for purposes of this blog it's a sandbox topology on my laptop. Please stand by for some very cool open source release announcement shortly)
We copied srv-2 (Percona Server) into srv-3 (MySQL). They both run well. A few days later we added srv-4 as Percona Server and (I'm cutting the story short here) reseeded it from srv-3. We started srv-4. Bam! Won't replicate since it can't find the required master logs.
Why? It was reseeded from srv-3 which was well replicating. It took less than 24 hours to complete the process and the master has 4 days of binary logs retention. Why would the new srv-4 fail to find the required logs on the master?
The catch here is that the Crash Safe Replication info residing in ibdata1 was copied from srv-2 to srv-3, where it was ignored (remember srv-3 is plain old MySQL and is ignorant of this info). This turned the info on srv-3 stale; it never got updated. Not only was it stale, it was also out of sync with srv-3's execution. But when data was copied to srv-4, Crash Safe Replication info was copied along, and srv-4 was happy to read this info upon strartup and use it to overwrite the perfectly valid relay-log.info file. By that time the master has long since purged the binary logs indicated in the newly rewritten relay-log.info file.
To some respect we were lucky, because this gave us immediate feedback and insight on what went wrong. Had replication found the logs on the master, it would have probably executed for a while, then crash on some Duplicate Key error where it would be much more difficult to track the origin of the problem.
Now that we are aware of the problem, we are more careful: you need to be careful once for each newly reseeded Percona Server instance, upon startup. We've added the following row to our /etc/init.d/mysql script, just before starting the server:
cp $datadir/relay-log.info $datadir/relay-log.info.pre-start
When we start a Percona Server for the first time we make sure to reset relay-log.info using relay-log.info.pre-start. We then go on with our lives. Until such time that all of our topology is composed of Percona Server, we have one more thing to be careful about.
comments powered by Disqus


AbstractQueueIntPair
QueueIntPairSimulation
Pairs
class JUnit_UnboundedStorageSpecification
Make test cases to check the behavior of Queue2Stack
built by 2 ReliableStack
JUnit_UnboundedStorageSpecification
Make test cases to check the behaviors of Queue2Stack
built by 2 UnreliableStack
JUnit_AbstractQueueIntPair
Make test cases to check the behaviors of Queue2StackIntPair
built by 4 ReliableStack
JUnit_AbstractQueueIntPair
Make test cases to check the behaviors of Queue2StackIntPair
built by 4 UnreliableStack
JUnit_AbstractQueueIntPairSimulation
Make test cases to check behaviors of QueueIntPairSimulation
JUnit_AbstractQueueIntPairSimulation
Make test cases to check behaviors of QueueIntPairSimulation
JUnit_UnboundedStorageSpecification
Make test cases to check the behaviors of QueueShareStack
built by one UnreliableStack
and one ReliableStack
shared with the other queue JUnit_UnboundedStorageSpecification
Make test cases to check the behaviors of QueueShareStack
built by 2 UnreliableStack
and one of two is shared with the other queue JUnit_UnboundedStorageSpecification
Make test cases to check the behaviors of QueueShareStackIntPair
built by 2 QueueShareStack
and two queues share the same stack
Two queues of QueueShareStackIntPair
are built by 3 ReliableStack
in this case JUnit_UnboundedStorageSpecification
Make test cases to check the behaviors of QueueShareStackIntPair
built by 2 QueueShareStack
and two queues share the same stack
Two queues of QueueShareStackIntPair
are built by 3 UnreliableStack
in this case JUnit_AbstractQueueIntPairSimulation
Make test cases check behaviors of QueueIntPairSimulation
Two queues in pairs are built by 2 UnreliableStack
and one shared ReliableStack
JUnit_AbstractQueueIntPairSimulation
Make test cases check behaviors of QueueIntPairSimulation
Two queues in pairs are built by 3 UnreliableStack
JUnit_UnboundedStorageSpecification
Make test cases to check behaviors of ReliableStack
UnboundedStorageSpecification
JUnit_UnboundedStorageSpecification
Make test cases to check the behaviors of UnreliableStack


{% extends "streamflow_prediction_tool/base.html" %} {% load staticfiles %} {% block app_content %}
Is this your first time running the Streamflow Prediction Tool? Or do you simply need a refresher on how it works? Either way, this page contains the information you need to get started using this application.
**The steps must be completed in the order given for the app to function properly**
To make reading and executing these instructions as easy as possible, we recommend that you open up another instance of the Streamflow Prediction Tool in a new window, using one window to read and the other to execute.
Before you can do anything, you must make sure that your app settings are correct. Go to http://localhost:8000/admin/tethys_apps/tethysapp and select 'Streamflow Prediciton Tool'
This is the ID assigned to your instance of the app. It is used in certain background tasks and assures that any data you upload is unique and does not tamper with that added by others.
These locations correspond to the local server directories where your uploaded files will be stored.
NOTE: This local server is the server on which the instance of the app that you are using is being hosted. For example, one instance of this app
exists at apps.hydroshare.org and is hosted by the hydroshare.org server.
Another instance of this app exists at demo.tethys.ci-water.org and
is hosted by the ci-water server. If you installed the Tethys Platform on your own computer, then your computer may serve as a local server.
Whatever the host server may be, if you do not have access to it then DO NOT CHANGE THESE FILE PATHS.
There are two fields each corresponding to a different server foler location: one for ECMWF-RAPID files, one for ERA Interim RAPID files.
Each folder must have read and write permissions granted. To change permissions, locate the folder, right click on it
and select either "Get Info" (MAC users), or "Properties" (Linux or Windows users). There will be a tab containing
"Permissions" in its heading. Choose to change or edit these permissions and set them to both Read and Write.
If you are using a command prompt simply type (assuming the server user is apache): #chown -r apache:apache [directory path]; chmod -R u+rx [directory path]
.
Once your settings have been established, it's time to add a geoserver. On the left menu bar under the Add heading click the Add a Geoserver option.
You should see the following screen:
On this page you will add the geoserver(s) that you will be working with. You can add as many geoservers as you would like. These can later be managed (updated/deleted) on the Manage Geoservers page located on the left menu bar under the Manage heading. For each geoserver you add, all fields shown must be completed. A description of each field is given here:
Since you can add multiple geoservers, a unique name must be given to help you recognize each one within this app. This name can be anything you would like.
This is the specific URL of your geoserver. NOTE: This URL must end in "/geoserver".
This is a username associated with your geoserver. In other words, this is the username you would use to login to the geoserver if you were to access it directly at the URL address listed above.
This is the password associated with the username given above.
On the left menu bar under the Add heading click the Add a Data Store option.
You should see the following screen:
On this page you will add the data store(s) that you will be working with. You can add as you would like. These can later be managed (updated/deleted) on the Manage Data Stores page located on the left menu bar under the Manage heading. For each data store, all fields shown must be completed. A description of each field is given here:
Since you can add multiple data stores, a unique name must be given to help you recognize each one within this app. This name can be anything you would like.
This is the type of your data store. There are two options: CKAN or Hydroshare. CKAN is the only functional option at the moment. If you are unfamiliar with CKAN, learn about it here. The Hydroshare capability will be added in the future.
This is the the URL of your data store. NOTE: This URL must end in "/api/3/action".
This is the unique key associated with the above data store API endpoint.
Now you can get to the real bread and butter of this app: adding watersheds so we can view them. On the left menu bar under the Add heading click the Add a Watershed option.
You should see the following screen:
On this page you will add the watershed(s) that you will be working with. You can add as many watersheds as you would like. These can later be managed (updated/deleted) on the Manage Watersheds page located on the left menu bar under the Manage heading. As this is a dynamic form, the total fields required for submission will be based upon your selection in previous fields. A description of each possible field is given here:
Since you can add multiple watersheds, a unique name must be given to help you recognize each one. This name can be anything you would like.
Since you can add multiple watersheds, each with its own subbasin, a unique name must be given to help you recognize each one. This name can be anything you would like.
Whether you added a new data store or not, there is always at least one option: "Local Server (local)". This is a data store that cannot be tampered with (changed/removed) since it corresponds to the computer you are currently on. This option is not associated with any unique additional fields. The other options in the drop-down will correspond to the data stores that you have added previously.
No additional options are associated with this selection.
If this option is selected, the following associated fields dynamically appear:
This is the name of the ECMWF watershed as it will be recorded on the data store server. Thus, this name differs from the display name given above.
This is the name of the ECMWF subbasin as it will be recorded on the data store server. Thus, this name differs from the display name given above.
You can choose to upload RAPID input files for your watershed if you have them.
Whether you added a new data store or not, there is always at least one option: "Local Server (media)". This is a geoserver that cannot be tampered with (changed/removed) since it corresponds to the computer you are currently on. There are two dynamic fields associated with this option.
You can upload your own shapefiles to the selected geoserver if you have the files on your computer.
This drainage line shapefile is REQUIRED as a bare minimum.
This option is for layers that have already been uploaded previously to the selected geoserver. You specify the name of this layer as it is found on the geoserver.
This drainage line layer is REQUIRED as a bare minimum.
Note: This is NOT a layer. It is a layer group.


Cambodian princess, classical dance star, dies at 76
by The Associated PressPHNOM PENH, Cambodia — Princess Norodom Buppha Devi, eldest daughter of Cambodia’s late King Norodom Sihanouk, has died at age 76.
Buppha Devi was the half sister of the country’s current king, Norodom Sihamoni, but was best known as a practitioner and promoter of classical Cambodian dance.
Cambodia’s constitutional Council, of which she was a member, announced she died Monday at a hospital in Thailand. The cause of death was not given.
Buppha Devi learned dance as a small child and became lead dancer in the royal troupe before age 18.
She escaped from Cambodia before the 1975 Khmer Rouge takeover, returning to the country in 1991 with her father.
She served as culture minister in 1999-2004, and as recently as 2018 was directing classical dance troupes on performances abroad.
The Associated Press


This is the main diagram. The Services arcs have a lighter color and no chords because they are passive – they have been integrated into the companies. Some companies don't have any arcs yet as they have no services integrated, yet.


?im
SMITHSONIAN
INSTITUTION
From
THE
UNITED
STATES
NATIONAL
HERBARIUM
New
York
Botanical
Garden
IbSISTT
P
C
T
O
A
X
PLANTS
OF
CUBA
Afistida
Ày*Ñ¥Ñ4--
Oriente:
Pinelands,
crest
of
Sierra
Nipe;
alt.
600-700
meters
No.
3034
fuUAN^ACUNA
}colledors
October
14-18,
1941
1659599
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


By Ryan M. Hoffman | 2016-11-15
Overview
There are many different views and view groups in the Android infrastructure. Some are more useful than others, but they all have their place. Recently, Google released a new layout called ConstraintLayout.
This is still in alpha release stage but it looks very promising. This isn’t going to be a tutorial on how to use it, rather, it’s just my thoughts and opinions on the concept and implementation. Keep in mind I have only been messing around with it for a couple of weeks, so my opinion could change as they update and improve it.
Initial Thoughts
When I first heard about ConstraintLayout before I even tried it out I thought it sounded like a rip off of iOS UI builder in xcode. After learning more about it and using it a little bit I still kind of feel that way. That’s not to say it’s a bad thing, but even if it wasn’t copied directly from Apple it was at least heavily inspired by xcode. My initial reaction to this was to not like it. At all. I can stumble my way through iOS development, but I’m not nearly as comfortable with iOS as I am with Android. And my limited experience with the UI Builder in xcode is not good. I found it a little bit difficult to use and setting constraints was hard to come to grips with coming from XML layouts in Android. Then Android was switching to ConstraintLayout to mimic iOS? Not a big fan of that idea.
If you don’t know what ConstraintLayout is, you can get more details about it here. Basically you drag views and widgets onto the design screen and then set “constraints” that tell where each view should be positioned relative to everything else on the screen. The purpose of it is to flatten the hierarchy of the view tree. Instead of nesting LinearLayout’s and RelativeLayout’s trying to position everything properly, this allows you to position everything relative to whatever you need to in order to lay it all out properly. It is supposed to help improve performance and make it scale across different screen sizes easier. I have not tested performance or scalability so I don’t know if it is actually better in those regards. If you run any tests please let me know the results, I’ll add them here and credit you.
After Using it to Design Screens
I decided to give it the benefit of the doubt and it appeared to be the future of Android development so I figured I needed to get on board. Using it was definitely weird at first, but after a while of making different layouts I started to get used to it a little bit. Sometimes it was a little buggy, but that’s to be expected from an alpha version.
It’s going to take some getting used to, but it looks promising.
The Good
Overall the experience is good. Setting constraints is as easy as click and drag, and it is pretty intelligent on knowing what you are trying to do. Linking views together is pretty simple, and pinning a view to an edge or margin is also straightforward.
I also like that as you make changes in the editor you can still switch over to the XML and see what is actually changing, and if you really want you could make changes directly to the XML.
The Not So Good
When editing the screens there are 2 screens shown, one is the blueprint screen and one is the design screen. The blueprint screen is meant for editing and adding constraints, while the design screen is meant as a actual preview of what is on the screen, content and all. My problem is that you can edit constraints (or anything really) on the design screen. It causes some bugs and issues with the layout preview, and it’s just overall confusing. I wish they only allowed editing in the blueprint mode and the preview was exactly that, just a preview. Perhaps in a future release they will make that change.
Final Thoughts
It is still going to take some getting used to, but I see this as the future of Android design and development and I really am excited about what Google is going to add down the road. I’m going to continue to use it and learn more about it and perhaps start actually using it in projects here soon. At it’s current stage I don’t think it is production ready, but that could change with a new release. I’ll keep this updated as new versions come out and I learn more about it. If I get more comfortable with it I may even write a tutorial.
As always, please follow me on twitter @hoffmanryan1 and on medium @rmhcompaines.


~ 6 min
First week in Nepal - Kathmandu and Pokhara
On January 13th 2019 my dad, Ramona, Galileo and I flew from Barcelona to Doha and then to Kathmandu, where Joe was waiting for us at the airport. After a night of little sleep (at least for the adults) we got to Nepal!
Flying with Qatar Airways was great! Very helpful flight attendants, spacious seats, with the option of having the baby bassinet for Galileo (that he used for a while, even if he almost didn’t fit!), and the flight was not full so we had a couple extra seats for us! So we flew as comfortable as it gets for being in economy class.
Once we got to Kathmandu, after dealing with all the visa and paper stuff we took a taxi to the hotel. We stayed at the Taleju Boutique Hotel in the Thamel neighborhood for 3 nights. It was nice to have a patio where the kids could run/crawl around, especially after seeing how busy the city can be!
We spent those tree days exploring the city, at a family friendly pace! We walked a lot, bought some souvenirs for my dad to take back to the family, we visited some Buddhist and Hindu temples and in general, we tried to get a feel for the country and its culture.
The city of Kathmadu is really busy and felt chaotic! There’s a lot of traffic, very narrow streets and no sidewalks for pedestrians (in most areas), so it felt a little overwhelming with the little ones. In general, it was a lot to take in for the first days in a new country!  Ramona was a little bit confused the first days. She would observe everything and ask you things like “Why do they have that red spot on their forehead?” or “Why do they where sandals if it’s cold?” She notices everything and I feel like the first days where hard for her (I guess for all of us!!), but it is also amazing how quickly we can adapt!
One of the most intense experiences we had was when we visited the Shree Pashupatinath Temple, during a Hindu festival. We paid a guide so he could tell is a litlle bit about what was happening, because that’s one thing we quickly realized, how little we know about their traditions and how different the cultures can be!. We saw a lot of monkeys running around and eating bananas and oranges. Apparently they are protected, just like cows, and feeding them gives the person good karma.
But the most breathtaking thing was seeing the cremation of a dead body, right next to the river, and the ceremony that that involved, while an festival was happening at the same time, on the other side of the river, with music and dancing and all!!
I would have never guessed that I would see a body burning right in front of me, and I have to say, it was quite unsettling, but after some time and seeing how they experience it, I think it was a very cultural and human way to get to know them better.
Trying to take a family picture!?
He made us these catalan patches for our bags!
The forth day we took a flight to Pokhara!
It was the smallest plane I’ve ever been on! There were 18 passangers total! It was quite the experience, but actually more pleasant than what I anticipated! It was such a short flight (about 20 min) with beautiful views of the Himalayas. So, no complaints!
Pokhara is a beautiful city next to this big lake, sorounded by mountains! It is very touristy, because it’s known as a gateway to the Annapurna Circuit. But there’s much less polution than Kathmandu, and it is a little bit more organized because it’s a newer city. We stayed at the Vardan Resort N’ Apartment. It was very nice with the kids too because we had a little porch and some grassy area for them to play!
Some of the highlights of Pokhara:
- Sailing around the lake!
- Pokhara “Disneyland” Funpark! A little bit scketchy but pretty entertaining!
- Roasted corn. I Already loved corn but seeing Ramona starting to love it is even better than eating it myself!
- The beautiful views.
- And for sure, the craziest thing was Paragliding with my dad!!! (see more in the video below!)
- We did some hiking, with our new friends (and baby) we made at the hotel!
Overall it was a great discovery! Getting out of the big city, getting to see some more of the country, it was a good decision to go to Pokhara for a couple of days.
After that my dad when back to Catalonia and we continued our journey to western Nepal. But I’ll tell you more about that in another post!
Here is a video of my dad’s visit, during this first days of the whole family together discovering Nepal! I hope you like it! And maybe get excited to come visit too!?!
NAMASTE !!!


Buy with SMS verification
Loading...
Sign up
Welcome back
.
Pay
Forget me, please!
Verify
Payment result:
This is a
Stripe Sample
with
Twilio Verify
.
View code on GitHub.


This summer I worked as a Data Analyst Intern at Voices.com as a part of my MSc in Business Analytics. Voices.com is a marketplace website that matches business clients with voice over talent.
During my internship at Voices.com, I became involved in a variety of analytics projects. First, I committed to a customer segmentation analysis on voice-over talent. Later in the summer, I analyzed customer churn, built dashboards for core metrics, and designed A/B tests! Through these projects, I procured even more experience with the R programming language. In this post, I will showcase R tricks that I learned this summer for data analysis and visualization. Hopefully, you can apply some of these tricks to your own data analysis projects.
1. Removing similarly-named objects from R’s Global Environment
Say that you are in the middle of a data analysis and you need to test out a part of your code. If you’re like me, you will test sections of code and assign the results to a new object named something like test
. After I’m finished testing my code, I’m left with a RStudio environment that looks like this:
My first trick will allow us to selectively delete these test
objects. This is accomplished through the following code:
rm(list = ls()[str_detect(ls(), "string")])
Let’s break down what is going on in this code. This code contains four distinct parts:
- The
rm()
function removes objects from the R environment.
- The
ls()
function lists all the objects in the R environment.
- The
str_detect()
function from thestringr
package detects a specified pattern in a string.
"string"
is the pattern which our objects of interest have in common (e.g. “test”).
The innermost part of the code, str_detect(ls(), "string")
, detects the specified pattern within the environment. The previous code, enclosed in square brackets, indexes the list of object names in the environment (ls()[str_detect(ls(), "string")]
). Finally, that code is entered as the list argument in the rm()
function. Ultimately, rm(list = ls()[str_detect(ls(), "test")])
removes objects with the matching "test"
pattern from the environment!
2. coord_cartesian()
for zooming in on ggplots
Say that you are producing a histogram from your data that looks something like this:
aq <- as_tibble(airquality)
ggplot(aq, aes(x = Ozone)) +
geom_histogram(fill = customBlue, binwidth = 5) +
theme_light() +
labs(y = "Count", x = "Ozone")
For whatever reason, you are only interested in visualizing a subset of this data. For example, we only want to visualize the histogram between Ozone values 0 and 50. You can achieve this using xlim()
:
ggplot(aq, aes(x = Ozone)) +
geom_histogram(fill = customBlue, binwidth = 5) +
theme_light() +
labs(y = "Count", x = "Ozone") +
xlim(c(0, 50))
But using xlim()
has resulted in an odd behaviour. Our histogram looks different than the original above. This is because xlim()
(and scale_x_continuous(limits = ...)
) has excluded all data that don’t fall within the limits. In this example, xlim()
excluded data points near 0 and 50. This is problematic if our goal is to visualize the same data without excluding data that lies on the edge of our criteria.
Instead, we can use coord_cartesian()
to achieve a true “zoom in” on our original data visualization.
ggplot(aq, aes(x = Ozone)) +
geom_histogram(fill = customBlue, binwidth = 5) +
theme_light() +
labs(y = "Count", x = "Ozone") +
coord_cartesian(xlim = c(0, 50))
Setting the xlim
argument within coord_cartesian()
results in the desired behaviour. Remember this tip so that you don’t accidentally exclude data from your visualizations!
3. Intra-figure legends in ggplot2
graphics
I agree with Edward Tufte’s disdain for legends in data visualizations. Legends, when placed on outside of a visualization, oblige your audience to look back-and-forth to interpret what you are presenting. This means that your audience has to focus on the format of your visualization before they can begin interpreting the content or message you are trying to deliver. That’s why I always try to use direct labels on my data visualizations instead of legends, like so:
But say you want to do the same direct labelling with a messier or more complicated visualization…
Now, I would hope that you would never have to present a spaghetti graph like this, but this is a situation where direct labels are not the best option. Instead, we’ll use a legend. To reduce the amount of back-and-forth your audience has to do, we can place the legend within the figure as a compromise.
aq %>%
filter(Month != 5) %>%
ggplot(aes(x = Day, y = Temp, group = Month, colour = factor(Month))) +
geom_line(size = 1) +
geom_point(size = 3) +
scale_colour_manual(values = c(customBlue, customOrange, customYellow, customPurple)) +
coord_cartesian(ylim = c(50, 100)) +
labs(title = "Mean temperature by day grouped by month",
y = "Mean Temperature (F)",
colour = "Month") +
theme_light() +
theme(legend.background = element_blank(),
legend.position = c(0.25, 0.2),
legend.title = element_text(size = 12),
legend.text = element_text(size = 12))
This is accomplished by using theme(legend.background = element_blank(), legend.position = c(0.25, 0.2), ...)
to make the legend background transparent and to move the legend into the figure. This intra-figure legend will reduce, but not eliminate all of the figure’s interpretability issues. At the very least, it is a good compromise when you can’t directly label your data.
4. High resolution plot outputs via CairoPNG()
Exporting graphics in R can be challenging. New users will typically use RStudio’s Export functionality in the viewer pane in order to save images to their working directory. Unfortunately, this does not always result in the best looking graphic.
5. Fuzzy joins on intervals with genome_left_join()


Bathymetry on the East Fork White River at Columbus, Indiana, March 29-30 and April 13, 2017
These data are bathymetry (river bottom elevation) in XYZ format, generated from the March 29-30, 2017 and April 13, 2017, bathymetric survey of the East Fork White River at Columbus, Indiana. The ...


Class RobotStateEventArgs
Gets robot state event args
Namespace: Anki.Vector.Events
Assembly: Anki.Vector.dll
Syntax
public class RobotStateEventArgs : RobotEventArgs
Properties
| Improve this Doc View SourceAcceleration
Gets the current accelerometer reading
public Acceleration Acceleration { get; }
Property Type
| Acceleration |
CarryingObjectId
Gets the ID of the object currently being carried (-1 if none)
public int CarryingObjectId { get; }
Property Type
| Int32 |
Gyro
Gets the current gyroscope reading (x, y, z)
public AngularVelocity Gyro { get; }
Property Type
| AngularVelocity |
HeadAngleRad
Gets Vector's head angle (up/down) in radians
public float HeadAngleRad { get; }
Property Type
| Single |
HeadTrackingObjectId
Gets the ID of the object the head is tracking to (-1 if none)
public int HeadTrackingObjectId { get; }
Property Type
| Int32 |
LastImageTimestamp
Gets the robot's timestamp for the last image seen.
public uint LastImageTimestamp { get; }
Property Type
| UInt32 |
LeftWheelSpeedMmps
Gets Vector’s left wheel speed in mm/sec
public float LeftWheelSpeedMmps { get; }
Property Type
| Single |
LiftHeightMm
Gets the height of Vector’s lift from the ground.
public float LiftHeightMm { get; }
Property Type
| Single |
LocalizedToObjectId
Gets the ID of the object that the robot is localized to (-1 if none)
public int LocalizedToObjectId { get; }
Property Type
| Int32 |
Pose
Gets the current pose (position and orientation) of Vector.
public Pose Pose { get; }
Property Type
| Pose |
PoseAngleRad
Gets Vector's pose angle (heading in X-Y plane) in radians
public float PoseAngleRad { get; }
Property Type
| Single |
PosePitchRad
Gets Vector’s pose pitch (angle up/down) in radians
public float PosePitchRad { get; }
Property Type
| Single |
Proximity
Gets the proximity sensor data.
public ProximitySensorData Proximity { get; }
Property Type
| ProximitySensorData |
RightWheelSpeedMmps
Gets Vector's right wheel speed in mm/sec
public float RightWheelSpeedMmps { get; }
Property Type
| Single |
Status
Gets the various status properties of the robot.
public RobotStatus Status { get; }
Property Type
| RobotStatus |
Touch
Gets the object touch detection values.
public TouchSensorData Touch { get; }
Property Type
| TouchSensorData |


Cookies help us provide, improve and protect Elektropay and its customers. By visiting monese.com, you agree to our cookie policy
OkayDon't have an account ?
By signing up, I agree to Airbnbâ€™s , Payments Terms of Service, Privacy Policy, Guest Refund Policy, and Host Guarantee Terms.
Already a Member?