|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object javax.swing.table.TableColumn
public class TableColumn
A TableColumn
represents all the attributes of a column in a
JTable
, such as width, resizibility, minimum and maximum width.
In addition, the TableColumn
provides slots for a renderer and
an editor that can be used to display and edit the values in this column.
It is also possible to specify renderers and editors on a per type basis
rather than a per column basis - see the
setDefaultRenderer
method in the JTable
class.
This default mechanism is only used when the renderer (or
editor) in the TableColumn
is null
.
The TableColumn
stores the link between the columns in the
JTable
and the columns in the TableModel
.
The modelIndex
is the column in the
TableModel
, which will be queried for the data values for the
cells in this column. As the column moves around in the view this
modelIndex
does not change.
Note: Some implementations may assume that all
TableColumnModel
s are unique, therefore we would
recommend that the same TableColumn
instance
not be added more than once to a TableColumnModel
.
To show TableColumn
s with the same column of
data from the model, create a new instance with the same
modelIndex
.
Warning:
Serialized objects of this class will not be compatible with
future Swing releases. The current serialization support is
appropriate for short term storage or RMI between applications running
the same version of Swing. As of 1.4, support for long term storage
of all JavaBeansTM
has been added to the java.beans
package.
Please see XMLEncoder
.
TableColumnModel
,
DefaultTableColumnModel
,
JTableHeader.getDefaultRenderer()
,
JTable.getDefaultRenderer(Class)
,
JTable.getDefaultEditor(Class)
,
JTable.getCellRenderer(int, int)
,
JTable.getCellEditor(int, int)
| Field Summary | |
|---|---|
static String |
CELL_RENDERER_PROPERTY
Obsolete as of Java 2 platform v1.3. |
protected TableCellEditor |
cellEditor
The editor used to edit the data cells of the column. |
protected TableCellRenderer |
cellRenderer
The renderer used to draw the data cells of the column. |
static String |
COLUMN_WIDTH_PROPERTY
Obsolete as of Java 2 platform v1.3. |
static String |
HEADER_RENDERER_PROPERTY
Obsolete as of Java 2 platform v1.3. |
static String |
HEADER_VALUE_PROPERTY
Obsolete as of Java 2 platform v1.3. |
protected TableCellRenderer |
headerRenderer
The renderer used to draw the header of the column. |
protected Object |
headerValue
The header value of the column. |
protected Object |
identifier
This object is not used internally by the drawing machinery of the JTable ; identifiers may be set in the
TableColumn as as an
optional way to tag and locate table columns. |
protected boolean |
isResizable
If true, the user is allowed to resize the column; the default is true. |
protected int |
maxWidth
The maximum width of the column. |
protected int |
minWidth
The minimum width of the column. |
protected int |
modelIndex
The index of the column in the model which is to be displayed by this TableColumn . |
protected int |
resizedPostingDisableCount
Deprecated. as of Java 2 platform v1.3 |
protected int |
width
The width of the column. |
| Constructor Summary | |
|---|---|
TableColumn()
Cover method, using a default model index of 0, default width of 75, a null renderer and a
null editor. |
|
TableColumn(int modelIndex)
Cover method, using a default width of 75, a null
renderer and a null editor. |
|
TableColumn(int modelIndex,
int width)
Cover method, using a null renderer and a
null editor. |
|
TableColumn(int modelIndex,
int width,
TableCellRenderer cellRenderer,
TableCellEditor cellEditor)
Creates and initializes an instance of TableColumn with modelIndex . |
| Method Summary | |
|---|---|
void |
addPropertyChangeListener(PropertyChangeListener listener)
Adds a PropertyChangeListener to the listener list. |
protected TableCellRenderer |
createDefaultHeaderRenderer()
As of Java 2 platform v1.3, this method is not called by the TableColumn
constructor. |
void |
disableResizedPosting()
Deprecated. as of Java 2 platform v1.3 |
void |
enableResizedPosting()
Deprecated. as of Java 2 platform v1.3 |
TableCellEditor |
getCellEditor()
Returns the TableCellEditor used by the
JTable to edit values for this column. |
TableCellRenderer |
getCellRenderer()
Returns the TableCellRenderer used by the
JTable to draw
values for this column. |
TableCellRenderer |
getHeaderRenderer()
Returns the TableCellRenderer used to draw the header of the
TableColumn . |
Object |
getHeaderValue()
Returns the Object used as the value for the header
renderer. |
Object |
getIdentifier()
Returns the identifier object for this column. |
int |
getMaxWidth()
Returns the maximum width for the TableColumn . |
int |
getMinWidth()
Returns the minimum width for the TableColumn . |
int |
getModelIndex()
Returns the model index for this column. |
int |
getPreferredWidth()
Returns the preferred width of the TableColumn . |
PropertyChangeListener[] |
getPropertyChangeListeners()
Returns an array of all the PropertyChangeListener s added
to this TableColumn with addPropertyChangeListener(). |
boolean |
getResizable()
Returns true if the user is allowed to resize the TableColumn 's
width, false otherwise. |
int |
getWidth()
Returns the width of the TableColumn . |
void |
removePropertyChangeListener(PropertyChangeListener listener)
Removes a PropertyChangeListener from the listener list. |
void |
setCellEditor(TableCellEditor cellEditor)
Sets the editor to used by when a cell in this column is edited. |
void |
setCellRenderer(TableCellRenderer cellRenderer)
Sets the TableCellRenderer used by JTable
to draw individual values for this column. |
void |
setHeaderRenderer(TableCellRenderer headerRenderer)
Sets the TableCellRenderer used to draw the
TableColumn 's header to headerRenderer . |
void |
setHeaderValue(Object headerValue)
Sets the Object whose string representation will be
used as the value for the headerRenderer . |
void |
setIdentifier(Object identifier)
Sets the TableColumn 's identifier to
anIdentifier . |
void |
setMaxWidth(int maxWidth)
Sets the TableColumn 's maximum width to
maxWidth ; also adjusts the width and preferred
width if they are greater than this value. |
void |
setMinWidth(int minWidth)
Sets the TableColumn 's minimum width to
minWidth ; also adjusts the current width
and preferred width if they are less than this value. |
void |
setModelIndex(int modelIndex)
Sets the model index for this column. |
void |
setPreferredWidth(int preferredWidth)
Sets this column's preferred width to preferredWidth . |
void |
setResizable(boolean isResizable)
Sets whether this column can be resized. |
void |
setWidth(int width)
This method should not be used to set the widths of columns in the JTable , use setPreferredWidth instead. |
void |
sizeWidthToFit()
Resizes the TableColumn to fit the width of its header cell. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final String COLUMN_WIDTH_PROPERTY
public static final String HEADER_VALUE_PROPERTY
public static final String HEADER_RENDERER_PROPERTY
public static final String CELL_RENDERER_PROPERTY
protected int modelIndex
TableColumn
. As columns are moved around in the
view modelIndex
remains constant.
protected Object identifier
JTable
; identifiers may be set in the
TableColumn
as as an
optional way to tag and locate table columns. The table package does
not modify or invoke any methods in these identifier objects other
than the equals
method which is used in the
getColumnIndex()
method in the
DefaultTableColumnModel
.
protected int width
protected int minWidth
protected int maxWidth
protected TableCellRenderer headerRenderer
protected Object headerValue
protected TableCellRenderer cellRenderer
protected TableCellEditor cellEditor
protected boolean isResizable
@Deprecated protected transient int resizedPostingDisableCount
| Constructor Detail |
|---|
public TableColumn()
null
renderer and a
null
editor.
This method is intended for serialization.
TableColumn(int, int, TableCellRenderer, TableCellEditor)
public TableColumn(int modelIndex)
null
renderer and a null
editor.
TableColumn(int, int, TableCellRenderer, TableCellEditor)
public TableColumn(int modelIndex, int width)
null
renderer and a
null
editor.
TableColumn(int, int, TableCellRenderer, TableCellEditor)
public TableColumn(int modelIndex, int width, TableCellRenderer cellRenderer, TableCellEditor cellEditor)
TableColumn
with modelIndex
.
All TableColumn
constructors delegate to this one.
The modelIndex
is the index of the column
in the model which will supply the data for this column in the table.
The modelIndex
does not change as the columns are reordered
in the view. The width parameter is used to set both the
preferredWidth
for this
column and the initial width. The renderer and editor are the objects
used respectively to render and edit values in this column. When
these are null
, default values, provided by the
getDefaultRenderer
and getDefaultEditor
methods in the
JTable
class are used to
provide defaults based on the type of the data in this column.
This column-centric rendering strategy can be circumvented by overriding
the getCellRenderer
methods in the JTable
.
JTable.getDefaultRenderer(Class)
,
JTable.getDefaultEditor(Class)
,
JTable.getCellRenderer(int, int)
,
JTable.getCellEditor(int, int)
| Method Detail |
|---|
public void setModelIndex(int modelIndex)
TableColumn
. As the TableColumn
is moved around in the view the model index remains constant.
modelIndex
- the new modelIndexpublic int getModelIndex()
modelIndex
propertypublic void setIdentifier(Object identifier)
TableColumn
's identifier to
anIdentifier
.
Note: identifiers are not used by the JTable
,
they are purely a
convenience for the external tagging and location of columns.
identifier
- an identifier for this columngetIdentifier()
public Object getIdentifier()
identifier
object for this column.
Note identifiers are not used by JTable
,
they are purely a convenience for external use.
If the identifier
is null
,
getIdentifier()
returns getHeaderValue
as a default.
identifier
propertysetIdentifier(java.lang.Object)
public void setHeaderValue(Object headerValue)
Object
whose string representation will be
used as the value for the headerRenderer
. When the
TableColumn
is created, the default headerValue
is null
.
headerValue
- the new headerValuegetHeaderValue()
public Object getHeaderValue()
Object
used as the value for the header
renderer.
headerValue
propertysetHeaderValue(java.lang.Object)
public void setHeaderRenderer(TableCellRenderer headerRenderer)
TableCellRenderer
used to draw the
TableColumn
's header to headerRenderer
.
headerRenderer
- the new headerRenderergetHeaderRenderer()
public TableCellRenderer getHeaderRenderer()
TableCellRenderer
used to draw the header of the
TableColumn
. When the headerRenderer
is
null
, the JTableHeader
uses its defaultRenderer
. The default value for a
headerRenderer
is null
.
headerRenderer
propertysetHeaderRenderer(javax.swing.table.TableCellRenderer)
,
setHeaderValue(java.lang.Object)
,
JTableHeader.getDefaultRenderer()
public void setCellRenderer(TableCellRenderer cellRenderer)
TableCellRenderer
used by JTable
to draw individual values for this column.
cellRenderer
- the new cellRenderergetCellRenderer()
public TableCellRenderer getCellRenderer()
TableCellRenderer
used by the
JTable
to draw
values for this column. The cellRenderer
of the column
not only controls the visual look for the column, but is also used to
interpret the value object supplied by the TableModel
.
When the cellRenderer
is null
,
the JTable
uses a default renderer based on the
class of the cells in that column. The default value for a
cellRenderer
is null
.
cellRenderer
propertysetCellRenderer(javax.swing.table.TableCellRenderer)
,
JTable.setDefaultRenderer(java.lang.Class>, javax.swing.table.TableCellRenderer)
public void setCellEditor(TableCellEditor cellEditor)
cellEditor
- the new cellEditorgetCellEditor()
public TableCellEditor getCellEditor()
TableCellEditor
used by the
JTable
to edit values for this column. When the
cellEditor
is null
, the JTable
uses a default editor based on the
class of the cells in that column. The default value for a
cellEditor
is null
.
cellEditor
propertysetCellEditor(javax.swing.table.TableCellEditor)
,
JTable.setDefaultEditor(java.lang.Class>, javax.swing.table.TableCellEditor)
public void setWidth(int width)
JTable
, use setPreferredWidth
instead.
Like a layout manager in the
AWT, the JTable
adjusts a column's width automatically
whenever the
table itself changes size, or a column's preferred width is changed.
Setting widths programmatically therefore has no long term effect.
This method sets this column's width to width
.
If width
exceeds the minimum or maximum width,
it is adjusted to the appropriate limiting value.
width
- the new widthgetWidth()
,
setMinWidth(int)
,
setMaxWidth(int)
,
setPreferredWidth(int)
,
JTable.sizeColumnsToFit(int)
public int getWidth()
TableColumn
. The default width is
75.
width
propertysetWidth(int)
public void setPreferredWidth(int preferredWidth)
preferredWidth
.
If preferredWidth
exceeds the minimum or maximum width,
it is adjusted to the appropriate limiting value.
For details on how the widths of columns in the JTable
(and JTableHeader
) are calculated from the
preferredWidth
,
see the doLayout
method in JTable
.
preferredWidth
- the new preferred widthgetPreferredWidth()
,
JTable.doLayout()
public int getPreferredWidth()
TableColumn
.
The default preferred width is 75.
preferredWidth
propertysetPreferredWidth(int)
public void setMinWidth(int minWidth)
TableColumn
's minimum width to
minWidth
; also adjusts the current width
and preferred width if they are less than this value.
minWidth
- the new minimum widthgetMinWidth()
,
setPreferredWidth(int)
,
setMaxWidth(int)
public int getMinWidth()
TableColumn
. The
TableColumn
's width can't be made less than this either
by the user or programmatically. The default minWidth is 15.
minWidth
propertysetMinWidth(int)
public void setMaxWidth(int maxWidth)
TableColumn
's maximum width to
maxWidth
; also adjusts the width and preferred
width if they are greater than this value.
maxWidth
- the new maximum widthgetMaxWidth()
,
setPreferredWidth(int)
,
setMinWidth(int)
public int getMaxWidth()
TableColumn
. The
TableColumn
's width can't be made larger than this
either by the user or programmatically. The default maxWidth
is Integer.MAX_VALUE.
maxWidth
propertysetMaxWidth(int)
public void setResizable(boolean isResizable)
isResizable
- if true, resizing is allowed; otherwise falsegetResizable()
public boolean getResizable()
TableColumn
's
width, false otherwise. You can change the width programmatically
regardless of this setting. The default is true.
isResizable
propertysetResizable(boolean)
public void sizeWidthToFit()
TableColumn
to fit the width of its header cell.
This method does nothing if the header renderer is null
(the default case). Otherwise, it sets the minimum, maximum and preferred
widths of this column to the widths of the minimum, maximum and preferred
sizes of the Component delivered by the header renderer.
The transient "width" property of this TableColumn is also set to the
preferred width. Note this method is not used internally by the table
package.
setPreferredWidth(int)
@Deprecated public void disableResizedPosting()
@Deprecated public void enableResizedPosting()
public void addPropertyChangeListener(PropertyChangeListener listener)
PropertyChangeListener
to the listener list.
The listener is registered for all properties.
A PropertyChangeEvent
will get fired in response to an
explicit call to setFont
, setBackground
,
or setForeground
on the
current component. Note that if the current component is
inheriting its foreground, background, or font from its
container, then no event will be fired in response to a
change in the inherited property.
listener
- the listener to be addedpublic void removePropertyChangeListener(PropertyChangeListener listener)
PropertyChangeListener
from the listener list.
The PropertyChangeListener
to be removed was registered
for all properties.
listener
- the listener to be removedpublic PropertyChangeListener[] getPropertyChangeListeners()
PropertyChangeListener
s added
to this TableColumn with addPropertyChangeListener().
PropertyChangeListener
s added or an empty
array if no listeners have been addedprotected TableCellRenderer createDefaultHeaderRenderer()
TableColumn
constructor. Previously this method was used by the
TableColumn
to create a default header renderer.
As of Java 2 platform v1.3, the default header renderer is null
.
JTableHeader
now provides its own shared default
renderer, just as the JTable
does for its cell renderers.
JTableHeader.createDefaultRenderer()
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright © 2004, 2010 Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.


Name
HPL_dlaswp04T copy columns of U in rows of A and replace them with columns of W.
Synopsis
#include "hpl.h"
void
HPL_dlaswp04T(
const int
M0
,
const int
M1
,
const int
N
,
double *
U
,
const int
LDU
,
double *
A
,
const int
LDA
,
const double *
W0
,
const double *
W
,
const int
LDW
,
const int *
LINDXA
,
const int *
LINDXAU
);
Description
HPL_dlaswp04T
copies M0 columns of U into rows of A and replaces those
columns of U with columns of W. In addition M1 - M0 columns of W are
copied into U.
Arguments
M0 (local input) const int
On entry, M0 specifies the number of columns of U that should
be copied into A and replaced by columns of W. M0 must be at
least zero.
M1 (local input) const int
On entry, M1 specifies the number of columnns of W that will
be copied into U. M1 must be at least zero.
N (local input) const int
On entry, N specifies the length of the columns of U that
will be copied into rows of A. N must be at least zero.
U (local input/output) double *
On entry, U points to an array of dimension (LDU,*). This
array contains the columns that are to be copied into rows of
A.
LDU (local input) const int
On entry, LDU specifies the leading dimension of the array U.
LDU must be at least MAX(1,N).
A (local output) double *
On entry, A points to an array of dimension (LDA,N). On exit,
the rows of this array specified by LINDXA are replaced by
columns of U indicated by LINDXAU.
LDA (local input) const int
On entry, LDA specifies the leading dimension of the array A.
LDA must be at least MAX(1,M0).
W0 (local input) const double *
On entry, W0 is an array of size (M-1)*LDW+1, that contains
the destination offset in U where the columns of W should be
copied.
W (local input) const double *
On entry, W is an array of size (LDW,M0+M1), that contains
data to be copied into U. For i in [M0..M0+M1), the entries
W(:,i) are copied into the column W0(i*LDW) of U.
LDW (local input) const int
On entry, LDW specifies the leading dimension of the array W.
LDW must be at least MAX(1,N+1).
LINDXA (local input) const int *
On entry, LINDXA is an array of dimension M0 containing the
local row indexes A into which columns of U are copied.
LINDXAU (local input) const int *
On entry, LINDXAU is an array of dimension M0 that contains
the local column indexes of U that should be copied into A
and replaced by the columns of W.
See Also
HPL_dlaswp00N,
HPL_dlaswp10N,
HPL_dlaswp01N,
HPL_dlaswp01T,
HPL_dlaswp02N,
HPL_dlaswp03N,
HPL_dlaswp03T,
HPL_dlaswp04N,
HPL_dlaswp04T,
HPL_dlaswp05N,
HPL_dlaswp05T,
HPL_dlaswp06N,
HPL_dlaswp06T.


The In Basket displays a tree-view structure showing folders.
These folders contain your e-mail, newsgroup and CIX forum messages organised into the relevant mail boxes, newsgroups and forum topics. Each of these items will have a different symbol unless you have opted not to Show folder type in In Basket in the Preferences dialog box, Viewer tab page.
To see the contents of a mail box, newsgroup or forum topic, double click the symbol next to the item that you wish to view. The message window will be opened with the contents of the item you double-clicked displayed.
You can re-order the folders in the In Basket by clicking on them with the mouse and holding the left button down. Now 'drag' the folder to the position that you like to move it, and release the mouse button. The folder will stay in its new position.
The In Basket also allows you to keep certain folders at the top. Select Keep At Top from the Folder menu to keep the currently highlighted folder at the top of the In Basket list.
To see the properties of a folder in the In Basket, select Properties from the Folder menu.
If the In Basket is not visible select In Basket from the View menu.


What is the difference between padding, border, and margin?
These are three options that directly interact with one another and the content. It is best to understand these different elements by utilizing the imagery that shows eaches circle of influence.
As you can see in the image above, padding is the space between you content and the border and is best used in creating space around your content, especially within the border. The border is good for differentiating separate elements and even within an element. It can be used to make tables or buttons for your site and just creating differentiation between the different spaces on your site. Margin is space around the border and is great for creating space between elements, as well as assisting with position around the page. In positioning you can also use negative numbers to move your content in the opposite direction. Having the image with color coded outlines in Chrome DevTools really help to utilize padding, borders, and margin and see how your design is changing as you change the options. It also helps to see which is probably your best bet to change in order to have the desired effect.


Hello fellow activist. This is a great time to be in. We understand
how difficult it may be for someone as busy as you are to be on the streets
protesting against stuff. So, we have come up with a readymade solution that
will save you time and effort - but still get the job done!


Write your stories
Stories can grant ideas and can immurse a reader into something at hand
Save
Reset


This is my personal website written and edited by me. For questions about this site, please contact Michael Rose at michael@mademistakes. All content provided is for informational purposes only. The writings and posts on this website are my own and don’t necessarily represent the positions, strategies, or opinions of my employer or its subsidiaries. I make no representations as to the accuracy or completeness of any information found here or by following any links. I will not be liable for any errors or omissions in this information nor for the availability of this information. I will not be liable for any losses, injuries, or damages from the display or use of this information.
Privacy Policy
The privacy of my visitors is extremely important. This Privacy Policy outlines the types of personal information that is received and collected and how it is used.
First and foremost, I will never share your email address or any other personal information to anyone without your direct consent. Period.
Log Files
Like many other websites, this website uses log files to help learn about when, from where and how often traffic flows to this site. The information in the log files include:
- Internet Protocol addresses (IP)
- Types of browser
- Internet Service Provider (ISP)
- Date and time stamp
- Referring and exit pages
- Number of clicks
All of this information is not linked to anything that is personally identifiable.
Cookies and web beacons
Like nearly all Websites, this website stores “convenience” cookies on your computer whenever you leave a comment. These cookies record the name, and email address that you enter when you submit a comment so that you wont have to re-type that information the next time you leave a comment.
Third-party advertisers may also place and read cookies on your browser and/or use web beacons to collect information. This website has no access or control over these cookies. You should review the respective privacy policies on any and all third-party ad servers for more information regarding their practices and how to opt-out.
If you wish to disable cookies, you may do so through your web browser options.
Instructions for doing so and for other cookie-related management can be found on the specific web browsers’ websites.
Amazon
Amazon, a third party affiliate marketing network, uses cookies to help make sure I get a commission when you buy a product after clicking on a link or ad banner that takes you to the site of one of their merchants. You can read Amazon’s Privacy Policy.
Google Adsense
Google Adsense, a third party affiliate marketing network, uses cookies to help make sure I get a commission when you buy a product after clicking on a link or ad banner that takes you to the site of one of their merchants. You can read Google Adsense Privacy Policy.
Google Analytics
Google Analytics is a web analytics tool I use to help understand how visitors engage with this website. It reports website trends using cookies and web beacons without identifying individual visitors. You can read Google Analytics Privacy Policy.
Disclosure Policy
I make money on this site through affiliate programs. If you click an affiliate link or ad banner and buy the product, you help support this site because I’ll get a percentage of that sale.
Currently I’m an affiliate for Amazon and Google Adsense.
What this means for you:
- I do not and will not recommend a product just because I’m an affiliate.
- I became an affiliate to earn some revenue towards the costs of running and maintaining this site. Where I have direct control over which ads are served on this site I offer only products that are directly related to the topic of this site and products that a reader/subscriber would have a genuine interest in or need of.
- I do not recommend products just for the sake making money.
- I recommend products because I think they are valuable to my readers.
- I do not let the compensation I receive influence the content, topics, posts, or opinions expressed on this blog.
- I respect and value my readers too much to write anything other than my own genuine and objective opinions and advice.
Just like this site, my Disclosure Policy is a work in progress. As the revenue streams evolve, so will this page.
Your use of this site, in any and all forms, constitutes an acceptance of this Privacy Policy. This Privacy Policy is reviewed and revised from time to time. You will want to revisit it regularly.
Last Updated: August 30, 2013.


We extend cats!
- aggregate bleeding-edge content
- leverage frictionless solutions
- morph scalable channels
- envisioneer rich portals
- engage best-of-breed communities
- innovate e-business convergence
- morph cross-media supply-chains
- unleash real-time partnerships
- productize synergistic systems
- extend robust markets
- streamline sexy convergence
- utilize interactive methodologies


Note
Go to the end to download the full example code
Built-in plotting methods for Raw objects#
This tutorial shows how to plot continuous data as a time series, how to plot
the spectral density of continuous data, and how to plot the sensor locations
and projectors stored in Raw
objects.
As usual we’ll start by importing the modules we need, loading some
example data, and cropping the Raw
object to just 60 seconds before loading it into RAM to save memory:
import os
import mne
sample_data_folder = mne.datasets.sample.data_path()
sample_data_raw_file = os.path.join(sample_data_folder, 'MEG', 'sample',
'sample_audvis_raw.fif')
raw = mne.io.read_raw_fif(sample_data_raw_file)
raw.crop(tmax=60).load_data()
Opening raw data file /home/circleci/mne_data/MNE-sample-data/MEG/sample/sample_audvis_raw.fif...
Read a total of 3 projection items:
PCA-v1 (1 x 102) idle
PCA-v2 (1 x 102) idle
PCA-v3 (1 x 102) idle
Range : 25800 ... 192599 = 42.956 ... 320.670 secs
Ready.
Reading 0 ... 36037 = 0.000 ... 60.000 secs...
We’ve seen in a previous tutorial how to plot data
from a Raw
object using matplotlib,
but Raw
objects also have several built-in plotting methods:
The first one is discussed here in detail; the last two are shown briefly
and covered in-depth in other tutorials. This tutorial also covers a few
ways of plotting the spectral content of Raw
data.
Interactive data browsing with Raw.plot()
#
The plot
method of Raw
objects provides
a versatile interface for exploring continuous data. For interactive viewing
and data quality checking, it can be called with no additional parameters:
raw.plot()
It may not be obvious when viewing this tutorial online, but by default, the
plot
method generates an interactive plot window with
several useful features:
It spaces the channels equally along the y-axis.
20 channels are shown by default; you can scroll through the channels using the ↑ and ↓ arrow keys, or by clicking on the colored scroll bar on the right edge of the plot.
The number of visible channels can be adjusted by the
n_channels
parameter, or changed interactively using page up and page down keys.You can toggle the display to “butterfly” mode (superimposing all channels of the same type on top of one another) by pressing b, or start in butterfly mode by passing the
butterfly=True
parameter.
It shows the first 10 seconds of the
Raw
object.You can shorten or lengthen the window length using home and end keys, or start with a specific window duration by passing the
duration
parameter.You can scroll in the time domain using the ← and → arrow keys, or start at a specific point by passing the
start
parameter. Scrolling using shift→ or shift← scrolls a full window width at a time.
It allows clicking on channels to mark/unmark as “bad”.
It allows interactive annotation of the raw data.
This allows you to mark time spans that should be excluded from future computations due to large movement artifacts, line noise, or other distortions of the signal. Annotation mode is entered by pressing a. See Basic annotation for details.
It automatically applies any projectors before plotting the data.
These can be enabled/disabled interactively by clicking the
Proj
button at the lower right corner of the plot window, or disabled by default by passing theproj=False
parameter. See Background on projectors and projections for more info on projectors.
These and other keyboard shortcuts are listed in the Help window, accessed
through the Help
button at the lower left corner of the plot window.
Other plot properties (such as color of the channel traces, channel order and
grouping, simultaneous plotting of events, scaling, clipping,
filtering, etc.) can also be adjusted through parameters passed to the
plot
method; see the docstring for details.
Plotting spectral density of continuous data#
To visualize the frequency content of continuous data, the Raw
object provides a compute_psd()
method to compute
spectral density and the resulting Spectrum
object has a plot()
method:
spectrum = raw.compute_psd()
spectrum.plot(average=True)
Effective window size : 0.426 (s)
If the data have been filtered, vertical dashed lines will automatically
indicate filter boundaries. The spectrum for each channel type is drawn in
its own subplot; here we’ve passed the average=True
parameter to get a
summary for each channel type, but it is also possible to plot each channel
individually, with options for how the spectrum should be computed,
color-coding the channels by location, and more. For example, here is a plot
of just a few sensors (specified with the picks
parameter), color-coded
by spatial location (via the spatial_colors
parameter, see the
documentation of plot
for full details):
midline = ['EEG 002', 'EEG 012', 'EEG 030', 'EEG 048', 'EEG 058', 'EEG 060']
spectrum.plot(picks=midline)
It is also possible to plot spectral power estimates across sensors as a
scalp topography, using the Spectrum
’s
plot_topomap()
method. The default
parameters will plot five frequency bands (δ, θ, α, β, γ), will compute power
based on magnetometer channels (if present), and will plot the power
estimates on a dB-like log-scale:
Alternatively, you can plot the PSD for every sensor on its own axes, with
the axes arranged spatially to correspond to sensor locations in space, using
plot_topo
:
This plot is also interactive; hovering over each “thumbnail” plot will
display the channel name in the bottom left of the plot window, and clicking
on a thumbnail plot will create a second figure showing a larger version of
the selected channel’s spectral density (as if you had called
plot
with that channel passed as picks
).
By default, plot_topo
will show only the MEG
channels if MEG channels are present; if only EEG channels are found, they
will be plotted instead:
spectrum.pick('eeg').plot_topo()
Removing projector <Projection | PCA-v1, active : False, n_channels : 102>
Removing projector <Projection | PCA-v2, active : False, n_channels : 102>
Removing projector <Projection | PCA-v3, active : False, n_channels : 102>
Note
Prior to the addition of the Spectrum
class,
the above plots were possible via:
(there was no plot_topomap
method for Raw
). The
plot_psd()
and plot_psd_topo()
methods
of Raw
objects are still provided to support legacy
analysis scripts, but new code should instead use the
Spectrum
object API.
Plotting sensor locations from Raw
objects#
The channel locations in a Raw
object can be easily plotted
with the plot_sensors
method. A brief example is shown
here; notice that channels in raw.info['bads']
are plotted in red. More
details and additional examples are given in the tutorial
Working with sensor locations.
raw.plot_sensors(ch_type='eeg')
Plotting projectors from Raw
objects#
As seen in the output of mne.io.read_raw_fif
above, there are
projectors included in the example Raw
file (representing environmental noise in the signal, so it can later be
“projected out” during preprocessing). You can visualize these projectors
using the plot_projs_topomap
method. By default it will
show one figure per channel type for which projectors are present, and each
figure will have one subplot per projector. The three projectors in this file
were only computed for magnetometers, so one figure with three subplots is
generated. More details on working with and plotting projectors are given in
Background on projectors and projections and Repairing artifacts with SSP.
raw.plot_projs_topomap(colorbar=True)
Total running time of the script: ( 0 minutes 8.052 seconds)
Estimated memory usage: 212 MB


Elizabeth Banks shocks by making controversial joke about Prince Andrew on The Graham Norton Show
Viewers were left in STITCHES
by Kendra BeckerElizabeth Banks shocked viewers last night after she made a controversial joke about Prince Andrew on The Graham Norton Show.
The actress appeared on the show on Friday alongside Ricky Gervais, Kylie Minogue and Lewis Hamilton, and during her interview, she took a pop at the Duke of York.
Graham tried to embarrass Elizabeth by showing an old photo of her from when she was a teenager, and then pointed out a stray hand touching her shoulder in the picture.
Graham said: “I’ve only just noticed this hand, is it someone saying, ‘You’ll regret this photograph?'”
Causing jaws to drop in the audience, Elizabeth replied, “That’s Prince Andrew’s hand.”
A shocked Ricky Gervais said, “Oh God, Jesus,” before Graham joked that it was just photoshop.
Prince Andrew came under fire last week, when he finally addressed his relationship with the late Jeffrey Epstein during a controversial interview with Newsnight.
During the interview, the Duke denied having a sexual relationship with Virginia Roberts Giuffre when she was 17 back in 2001.
Despite his denial, the way Prince Andrew answered the interviewer’s questions sparked serious backlash – and he’s been forced to step down from royal duties.


Scogent
Vertigo Diamond Captain
AlexJChang
Vertigo Diamond Player
Bubba
Linkz
StartingOver
Achievements
2016 NA Winter Season Qualifier 2Round of 16


DelphiZlib 0.2.99Yes, this is version 0.2.99. It doesn't mean this component is not usable, it means that I'm not sure if I like it the way it works now. Until I release version 1.0.0 some property's could change (Of course I will keep the newer versions backwards compatible for a while.)Please read the legal notes at the end of this file. DelphiZlib is based on the zlib 1.1.2 general purpose data compression library. The original Zlib library can be found on http://www.info-zip.org/pub/infozip/zlib/ The Pascal implementation I used is by Jacques Nomssi Nzali. Because he did such a great job, writing this component was easy. I changed only a few bytes in the original code in order to avoid some compilation-warnings. I did only include the files I needed for this component. Some of them I changed a bit. For the complete and original PASZLIB-code I refer to: http://www.tu-chemnitz.de/~nomssi/paszlib.html Read also paszlib.txt, which is in fact the original readme.txt by Jacques Nomssi Nzali and contains more information. [And yes, I copied some lines from this file]
The untar-code is based on extar 1.0 made by TapirSoft Gisbert
W.Selke (feb 1990). The untar code is a quick implementation that might
not work correctly will all tar-files.
The componentsThe components can be used after installing it the normal way in Delphi 4. Someone told me it also works for Delphi 5 and I guess it will also work for Delphi 3 and would appreciate when somebody can mail me if it indeed works. Please ignore the compiler hints. I did not yet clean up or optimize the code.
To install (Delphi 4): After installing the component you will need to tell Delphi where it can find the files that belong to it. Go to [Tools], [Environment Options], [Library], [Library Path]. Add the following paths here:
Important if you are upgrading: Please remove the old component
completely before you install the new one. Make sure there are no old
files left. Delphi (at least for me) is not always rebuilding components
in a correct way.
InterfaceTGzipTCrc32 TAdler32 TUnTar --top-- Versions0.2.99:
And in the future..Unfortunately I don't have much time at the moment, so don't expect me to fully develop this component into a new WinZip. When I'll have more time I'll start writing a TZip component also based on the Zlib library. Please let me know if I should add or change something.
But first I'll finish the TUnTar component. I'll try to make it in such a
way that gzipped tar-files can be extracted more efficient.
Legal issuesCopyright (C) 2000 by Vincent Nikkelen This software is provided 'as-is', without any express or implied warranty. In no event will the author be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. --top-- FAQ:
--top-- Download:DelphiZlib home-page: http://www.gewis.win.tue.nl/info/delphizlib/Download DelphiZlib: http://www.gewis.win.tue.nl/info/delphizlib/delphizlib.zip (120 kb) --top-- Vincent Nikkelen<EMAIL_ADDRESS>Januari 01, 2001 |


I was prescribed seroquel for various reasons, but it only really worked as a sleep aid for me. Well, besides the sedation. The feeling is somewhat reminiscent of a benzo sedation. The first night I took 200mg and I woke up the next morning in my brothers room with the tv still on, and my friend was still sleeping in the living room. I didnt remember anything leading up to me watching cartoons in my brothers room while he slept on a sofa, as he sometimes does.
At school, I had the option to buy some methylphenidate (Concerta) pills as I sometimes do, since I find it to correct all my problems in school. That morning, I had taken a 100mg Seroquel at my house and soon after, when I got to school, I purchased and took the two methylphenidate (Concerta) pills, a total of 72mgs, and proceeded to make an anti drug clip for our film class. All the work had been done when I was out of school, and I was just told what to do throughout it. I was chill from the seroquel, but very stimulated from the concerta. I encounted no problems from the mix.
I drank twice on seroquel. The first times I had no problems at all. It was a 32 oz. of Olde English. I drank it and walked to the bus, feeling drunk before everyone else. We rode the bus downtown and soon after my buzz wore off. No problems whatsoever. The other time though, I drank about 4 beers, with a few shots of vodka poured in, and basicly ended up peeing on my friends kitchen counter. My bad man. Don't remember it. Not doing that anymore.
I've also been smoking marijuana throughout this time, and it sometimes produces anxiety for me. I've gotten accustomed to it a little though.
Overall I would like to stop taking seroquel completely except for knocking me out every night.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


| 1 | /* | |
| 2 | * Licensed to the Apache Software Foundation (ASF) under one | |
| 3 | * or more contributor license agreements. See the NOTICE file | |
| 4 | * distributed with this work for additional information | |
| 5 | * regarding copyright ownership. The ASF licenses this file | |
| 6 | * to you under the Apache License, Version 2.0 (the | |
| 7 | * "License"); you may not use this file except in compliance | |
| 8 | * with the License. You may obtain a copy of the License at | |
| 9 | * | |
| 10 | * http://www.apache.org/licenses/LICENSE-2.0 | |
| 11 | * | |
| 12 | * Unless required by applicable law or agreed to in writing, | |
| 13 | * software distributed under the License is distributed on an | |
| 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| 15 | * KIND, either express or implied. See the License for the | |
| 16 | * specific language governing permissions and limitations | |
| 17 | * under the License. | |
| 18 | */ | |
| 19 | package org.apache.myfaces.shared.resource; | |
| 20 | ||
| 21 | import java.io.InputStream; | |
| 22 | import java.net.URL; | |
| 23 | import java.util.Comparator; | |
| 24 | import java.util.Iterator; | |
| 25 | import jakarta.faces.application.ResourceVisitOption; | |
| 26 | import jakarta.faces.context.FacesContext; | |
| 27 | ||
| 28 | /** | |
| 29 | * Base class for resource loaders. Resource loaders can lookup resources | |
| 30 | * as URLs from arbitrary locations, including JAR files. | |
| 31 | */ | |
| 32 | public abstract class ResourceLoader | |
| 33 | { | |
| 34 | | |
| 35 | public static final String VERSION_INVALID = "INVALID"; | |
| 36 | | |
| 37 | private String _prefix; | |
| 38 | | |
| 39 | public ResourceLoader(String prefix) | |
| 40 | { | |
| 41 | _prefix = prefix; | |
| 42 | } | |
| 43 | ||
| 44 | public abstract String getResourceVersion(String path); | |
| 45 | ||
| 46 | /** | |
| 47 | * Return the max available version found (if exists) or | |
| 48 | * return null if no version available. | |
| 49 | */ | |
| 50 | public abstract String getLibraryVersion(String path); | |
| 51 | ||
| 52 | /** | |
| 53 | * Return the max available version found (if exists) or | |
| 54 | * return null if no version available. | |
| 55 | */ | |
| 56 | public abstract URL getResourceURL(ResourceMeta resourceMeta); | |
| 57 | ||
| 58 | public abstract InputStream getResourceInputStream(ResourceMeta resourceMeta); | |
| 59 | | |
| 60 | public abstract ResourceMeta createResourceMeta(String prefix, String libraryName, String libraryVersion, | |
| 61 | String resourceName, String resourceVersion); | |
| 62 | ||
| 63 | public ResourceMeta createResourceMeta(String prefix, String libraryName, | |
| 64 | String libraryVersion, String resourceName, String resourceVersion, String contractName) | |
| 65 | { | |
| 66 |
1
1. createResourceMeta : replaced return value with null for org/apache/myfaces/shared/resource/ResourceLoader::createResourceMeta → NO_COVERAGE |
return createResourceMeta(prefix, libraryName, libraryVersion, resourceName, resourceVersion); |
| 67 | } | |
| 68 | | |
| 69 | public abstract boolean libraryExists(String libraryName); | |
| 70 | | |
| 71 | public boolean resourceExists(ResourceMeta resourceMeta) | |
| 72 | { | |
| 73 |
2
1. resourceExists : replaced boolean return with true for org/apache/myfaces/shared/resource/ResourceLoader::resourceExists → NO_COVERAGE 2. resourceExists : negated conditional → NO_COVERAGE |
return (getResourceURL(resourceMeta) != null); |
| 74 | } | |
| 75 | ||
| 76 | /* | |
| 77 | public URL getResourceURL(String resourceId) | |
| 78 | { | |
| 79 | throw new UnsupportedOperationException( | |
| 80 | "An implementation for getResourceURL(String resourceId) method is required for JSF 2.2"); | |
| 81 | } | |
| 82 | | |
| 83 | public boolean resourceIdExists(String resourceId) | |
| 84 | { | |
| 85 | return (getResourceURL(resourceId) != null); | |
| 86 | }*/ | |
| 87 | | |
| 88 | public Iterator<String> iterator(FacesContext facesContext, | |
| 89 | String path, int maxDepth, ResourceVisitOption... options) | |
| 90 | { | |
| 91 | return null; | |
| 92 | } | |
| 93 | | |
| 94 | private Comparator<String> _versionComparator = null; | |
| 95 | ||
| 96 | protected Comparator<String> getVersionComparator() | |
| 97 | { | |
| 98 |
1
1. getVersionComparator : negated conditional → NO_COVERAGE |
if (_versionComparator == null) |
| 99 | { | |
| 100 | _versionComparator = new VersionComparator(); | |
| 101 | } | |
| 102 |
1
1. getVersionComparator : replaced return value with null for org/apache/myfaces/shared/resource/ResourceLoader::getVersionComparator → NO_COVERAGE |
return _versionComparator; |
| 103 | } | |
| 104 | ||
| 105 | protected void setVersionComparator(Comparator<String> versionComparator) | |
| 106 | { | |
| 107 | _versionComparator = versionComparator; | |
| 108 | } | |
| 109 | ||
| 110 | public static class VersionComparator implements Comparator<String> | |
| 111 | { | |
| 112 | ||
| 113 | public int compare(String s1, String s2) | |
| 114 | { | |
| 115 | int n1 = 0; | |
| 116 | int n2 = 0; | |
| 117 | String o1 = s1; | |
| 118 | String o2 = s2; | |
| 119 | ||
| 120 | boolean p1 = true; | |
| 121 | boolean p2 = true; | |
| 122 | ||
| 123 |
3
1. compare : negated conditional → NO_COVERAGE 2. compare : negated conditional → NO_COVERAGE 3. compare : negated conditional → NO_COVERAGE |
while (n1 == n2 && (p1 || p2)) |
| 124 | { | |
| 125 | int i1 = o1.indexOf('_'); | |
| 126 | int i2 = o2.indexOf('_'); | |
| 127 |
2
1. compare : changed conditional boundary → NO_COVERAGE 2. compare : negated conditional → NO_COVERAGE |
if (i1 < 0) |
| 128 | { | |
| 129 |
2
1. compare : changed conditional boundary → NO_COVERAGE 2. compare : negated conditional → NO_COVERAGE |
if (o1.length() > 0) |
| 130 | { | |
| 131 | p1 = false; | |
| 132 | n1 = Integer.valueOf(o1); | |
| 133 | o1 = ""; | |
| 134 | } | |
| 135 | else | |
| 136 | { | |
| 137 | p1 = false; | |
| 138 | n1 = 0; | |
| 139 | } | |
| 140 | } | |
| 141 | else | |
| 142 | { | |
| 143 | n1 = Integer.valueOf(o1.substring(0, i1)); | |
| 144 |
1
1. compare : Replaced integer addition with subtraction → NO_COVERAGE |
o1 = o1.substring(i1 + 1); |
| 145 | } | |
| 146 |
2
1. compare : changed conditional boundary → NO_COVERAGE 2. compare : negated conditional → NO_COVERAGE |
if (i2 < 0) |
| 147 | { | |
| 148 |
2
1. compare : changed conditional boundary → NO_COVERAGE 2. compare : negated conditional → NO_COVERAGE |
if (o2.length() > 0) |
| 149 | { | |
| 150 | p2 = false; | |
| 151 | n2 = Integer.valueOf(o2); | |
| 152 | o2 = ""; | |
| 153 | } | |
| 154 | else | |
| 155 | { | |
| 156 | p2 = false; | |
| 157 | n2 = 0; | |
| 158 | } | |
| 159 | } | |
| 160 | else | |
| 161 | { | |
| 162 | n2 = Integer.valueOf(o2.substring(0, i2)); | |
| 163 |
1
1. compare : Replaced integer addition with subtraction → NO_COVERAGE |
o2 = o2.substring(i2 + 1); |
| 164 | } | |
| 165 | } | |
| 166 | ||
| 167 |
1
1. compare : negated conditional → NO_COVERAGE |
if (n1 == n2) |
| 168 | { | |
| 169 |
2
1. compare : Replaced integer subtraction with addition → NO_COVERAGE 2. compare : replaced int return with 0 for org/apache/myfaces/shared/resource/ResourceLoader$VersionComparator::compare → NO_COVERAGE |
return s1.length() - s2.length(); |
| 170 | } | |
| 171 |
2
1. compare : Replaced integer subtraction with addition → NO_COVERAGE 2. compare : replaced int return with 0 for org/apache/myfaces/shared/resource/ResourceLoader$VersionComparator::compare → NO_COVERAGE |
return n1 - n2; |
| 172 | } | |
| 173 | } | |
| 174 | | |
| 175 | public String getPrefix() | |
| 176 | { | |
| 177 |
1
1. getPrefix : replaced return value with "" for org/apache/myfaces/shared/resource/ResourceLoader::getPrefix → NO_COVERAGE |
return _prefix; |
| 178 | } | |
| 179 | ||
| 180 | public void setPrefix(String prefix) | |
| 181 | { | |
| 182 | _prefix = prefix; | |
| 183 | } | |
| 184 | } | |
Mutations | ||
| 66 |
1.1 |
|
| 73 |
1.1 2.2 |
|
| 98 |
1.1 |
|
| 102 |
1.1 |
|
| 123 |
1.1 2.2 3.3 |
|
| 127 |
1.1 2.2 |
|
| 129 |
1.1 2.2 |
|
| 144 |
1.1 |
|
| 146 |
1.1 2.2 |
|
| 148 |
1.1 2.2 |
|
| 163 |
1.1 |
|
| 167 |
1.1 |
|
| 169 |
1.1 2.2 |
|
| 171 |
1.1 2.2 |
|
| 177 |
1.1 |


This example shows multiple simple color matrix filters used with an Openlayers 3 map. The filter can be chained and the input params for the filter altered via sliders.
contrast:
saturation:
brightness:
hue:


404
Sorry - Page Not Found!
The page you are looking for was moved, removed, renamed or might never existed.
You stumbled upon a broken link :(
The page you are looking for was moved, removed, renamed or might never existed.
You stumbled upon a broken link :(


User defined checks are checks that a user creates. User defined checks display errors or warnings based on whether a user-specified filter is matched. See The Verification Plugin for information on how to create a user-defined check.


Would you like this template to fit into or placed above/within your current drawer?
Are you sure you would like to clear the entire canvas?
Are you sure you would like to delete that line?


scedar package¶
Submodules¶
scedar.utils module¶
-
scedar.utils.
dict_str_key
(d)[source]¶ Get a hash key for a dictionary, usually used for **kwargs.
Examples
>>> dict_str_key({"a": 1, "b": 2}) "[('a', 1), ('b', 2)]" >>> dict_str_key({"b": 2, "a": 1}) "[('a', 1), ('b', 2)]"
Notes
Non-string keys will be converted to strings before sorting, but the original value is preserved in the generated key.
-
scedar.utils.
parmap
(f, X, nprocs=1)[source]¶ parmap_fun() and parmap() are adapted from klaus se’s post on stackoverflow. https://stackoverflow.com/a/16071616/4638182
parmap allows map on lambda and class static functions.
Fall back to serial map when nprocs=1.


--- title: (BFTimeseriesChannel) BFTimeseriesChannel keywords: documentation theme, jekyll, technical writers, help authoring tools, hat replacements last_updated: July 3, 2016 tags: [getting_started] sidebar: matlab_docs_sidebar permalink: bftimeserieschannel_bftimeserieschannel.html folder: mydoc ---
BFTimeseriesChannel Constructor of BFTimeseriesChannel class. OBJ = BFTimeseriesChannel(SESSION, 'id', 'name') creates an instance of the BFTimeseriesChannel class where SESSION is an object of type BFSESSION, 'id' is the Blackfynn id of the channel and 'name' is the name of the channel.


Tweet Trends is part of the Data TrendsDjango Based Web Application hosted by Heroku.
The application uses a Python version of the Twitter API at the backend to extract live tweets and trending topics and perform Sentiment Analysis (SA) on the top trends.
The results of the Sentiment Analysis is displayed using Pie Charts. Also, it allows a user to search for Hash-Tags and see the Sentiment Analysis on the tags. The sub-applications can be accessed by selecting the Tweet Trends List dropdown at the top left of this page.


potato suitability China growth climate northern index climatic precipitation temperature planting areas average change light regionalization suitable yield season crop China. region agricultural area {border-style past stage Fig px;} #ffffff;} (.) China, distribution value coefficient development high production study comprehensive decreased factors showed stage, correlation effects increased mainly method years Agricultural flowering (.), However, Research Sciences low years, Zhang Zhao crops flowering-maturity stages temperature, unit values based change. different hours northwest results spatial Chinese) Climate Inner National Northern Science Table Wang characteristics cultivation emergence fuzzy impacts period potato, px; study, tuber variations {font-family Climatic Meteorological Potato approximately data decreasing divided font-size generally highly impact important mathematics meteorological potatoes resources stations sunshine trend used using variation warming water (.). Biology Chinese Crop Environment. Life Meteorology. Temperature crops. double; emergence-flowering evaluate growing including increase increasing limit northeast original potato; regions response sowing sowing-emergence western years. Forest Information Key Light Mongolia, North Precipitation Qinghai Total adaptation analysis beneficial border-color border-width concentrated eastern evaluation factor gradually growth. land local management middle periods potato. range regional solid; theory total varied {font-style {font-weight (in .(in ./j.scitotenv... ./journal.pone..t .–. Academy Average Change Comprehensive Effects Fuzzy Junfang Moreover, Northeast Northwest University Variations Xinjiang, affect affected bold caused characterized courier; cropping declining determined differences distributed distribution, em; emergence, especially evapotranspiration fluctuated future global growth, heat http://orcid.org/--- located maize north particularly proportion provided pt;} receded region. respectively. seasons selected semi-arid slightly southern stage. study. suitability, sum systems temperatures time upper use variables weight


kook
`Prev `__
K
`Next `__
--------------
**kook**
[Usenet; originally and more formally, net.kook] Term used to describe a
regular poster who continually posts messages with no apparent grounding
in reality. Different from a `*troll* <../T/troll.html>`__, which
implies a sort of sly wink on the part of a poster who knows better,
kooks really believe what they write, to the extent that they believe
anything.
The kook trademark is paranoia and grandiosity. Kooks will often build
up elaborate imaginary support structures, fake corporations and the
like, and continue to act as if those things are real even after their
falsity has been documented in public.
While they may appear harmless, and are usually filtered out by the
other regular participants in a newsgroup of mailing list, they can
still cause problems because the necessity for these measures is not
immediately apparent to newcomers; there are several instances on
record, for example, of journalists writing stories with quotes from
kooks who caught them unaware.
An entertaining web page chronicling the activities of many notable
kooks can be found at
`http://www.crank.net/usenet.html `__.
--------------
+-------------------------+----------------------------+-----------------------------+
| `Prev `__ | `Up <../K.html>`__ | `Next `__ |
+-------------------------+----------------------------+-----------------------------+
| koan | `Home <../index.html>`__ | Kool-Aid |
+-------------------------+----------------------------+-----------------------------+


#include <string.h>
#include <stdlib.h>
#include <json/json_tokener.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include "riakdrv.h"
#include "riakproto/riakmessages.pb-c.h"
#include "riakproto/riakcodes.h"
Data Structures | |
| struct | buffered_char |
| Helper structure for exchanging data with cURL. More... | |
Functions | |
| void | riak_copy_error (RIAK_CONN *connstruct, RpbErrorResp *errorResp) |
| Helper function for copying error message from PB structure to RIAK_CONN. | |
| RIAK_CONN * | riak_init (char *hostname, int pb_port, int curl_port, RIAK_CONN *connstruct) |
| Create new handle. | |
| int | riak_exec_op (RIAK_CONN *connstruct, RIAK_OP *command, RIAK_OP *result) |
| Executes Riak operation via Protocol Buffers socket and receives response. | |
| int | riak_ping (RIAK_CONN *connstruct) |
| Pings Riak server. | |
| char ** | riak_list_buckets (RIAK_CONN *connstruct, int *n_buckets) |
| Fetches list of buckets. | |
| size_t | readfunc (void *ptr, size_t size, size_t nmemb, void *userdata) |
| Helper function for cURL, reads data from buffer. | |
| size_t | writefunc (void *ptr, size_t size, size_t nmemb, void *userdata) |
| Helper function for cURL, writes data to buffer. | |
| void | riak_put_json (RIAK_CONN *connstruct, char *bucket, char *key, json_object *elem) |
| json_object ** | riak_get_json_mapred (RIAK_CONN *connstruct, char *mapred_statement, int *ret_len) |
| char * | riak_get_raw_rs (RIAK_CONN *connstruct, char *query) |
| void | riak_close (RIAK_CONN *connstruct) |
| Closes connection to Riak. | |
Variables | |
| int | first_time = 1 |
| size_t readfunc | ( | void * | ptr, | |
| size_t | size, | |||
| size_t | nmemb, | |||
| void * | userdata | |||
| ) |
Helper function for cURL, reads data from buffer.
This is helper function for cURL, which takes userdata and ptr (internal field where cURL stores data to be sent) and then copies contents of userdata to ptr. This function assumes that userdata is of type struct buffered_char.
| ptr | internal cURL location | |
| size | size of one data piece | |
| nmemb | count of data pieces | |
| userdata | structure from which data should be read |
| void riak_close | ( | RIAK_CONN * | connstruct | ) |
Closes connection to Riak.
This function ends cURL session, closes TCP socket and frees connstruct, so this structure can't be used after calling this function.
| connstruct | connection structure to be closed and freed. |
| void riak_copy_error | ( | RIAK_CONN * | connstruct, | |
| RpbErrorResp * | errorResp | |||
| ) |
Helper function for copying error message from PB structure to RIAK_CONN.
Simple function that copies error description from RpbErrorResp to RIAK_CONN in such way, that RIAK_CONN.error_msg is cleared (if not NULL) and then error message is allocated to it. Message has following format: "(<Riak error code in hex>): <Riak error message>".
| connstruct | Riak connection handle | |
| errorResp | Protocol Buffers structure containing Riak error response |
Executes Riak operation via Protocol Buffers socket and receives response.
This is universal function for executing Riak operations and receiving responses. It is a wrapper for socket operations. Ultimately, user shouldn't have to use this function because other functions are to cover all possible operations. Still, probably this function will remain in library API even then.
| connstruct | connection handle | |
| command | command to be sent to Riak | |
| result | structure for response; this function won't allocate space and won't check if result structure exists! |
| json_object** riak_get_json_mapred | ( | RIAK_CONN * | connstruct, | |
| char * | mapred_statement, | |||
| int * | ret_len | |||
| ) |
| char* riak_get_raw_rs | ( | RIAK_CONN * | connstruct, | |
| char * | query | |||
| ) |
Create new handle.
This function creates new Riak handle. It contains both TCP socket for operations using Protocol Buffers and CURL handle for operations like using Riak Search.
WARNING! If connstruct!=NULL, this function will assume that it doesn't describe open connection anyway, therefore will overwrite all values inside structure.
| hostname | string containing address where Riak server can be accessed, e.g. <IP_ADDRESS> | |
| pb_port | port where Protocol Buffers API is available, e.g. 8087; may be 0, in such case PB operations won't be available | |
| curl_port | port where HTTP server is available, e.g. 8089; may be 0, in such case HTTP operations won't be available | |
| connstruct | structure for holding Riak connection data; when NULL - new structure will be allocated |
| char ** riak_list_buckets | ( | RIAK_CONN * | connstruct, | |
| int * | n_buckets | |||
| ) |
Fetches list of buckets.
This function sends list buckets request to Riak and returns array of null-terminated strings containing names of all buckets. This array is not managed later so user should take care of freeing it after usage!
| connstruct | connection handle | |
| n_buckets | pointer to integer, where bucket count will be written |
| int riak_ping | ( | RIAK_CONN * | connstruct | ) |
Pings Riak server.
Sends ping request to Riak via Protocol Buffers.
| connstruct | connection handle |
| void riak_put_json | ( | RIAK_CONN * | connstruct, | |
| char * | bucket, | |||
| char * | key, | |||
| json_object * | elem | |||
| ) |
| size_t writefunc | ( | void * | ptr, | |
| size_t | size, | |||
| size_t | nmemb, | |||
| void * | userdata | |||
| ) |
Helper function for cURL, writes data to buffer.
This is helper function for cURL, which takes userdata and ptr (internal field where cURL stores data received) and then copies contents of ptr to userdata. This function assumes that userdata is of type struct buffered_char.
| ptr | internal cURL location | |
| size | size of one data piece | |
| nmemb | count of data pieces | |
| userdata | structure to which data should be read |
| int first_time = 1 |
We should initialize cURL only once so this is the flag indicating whether initialization is necessary.


The following is a dump of The Fever API documentation for offline reference and occasional annotations. The original text is, of course, copyright © 2008-2013 by Shaun Inman.
Fever 1.14 introduces the new Fever API. This API is in public beta and currently supports basic syncing and consuming of content. A subsequent update will allow for adding, editing and deleting feeds and groups. The API’s primary focus is maintaining a local cache of the data in a remote Fever installation.
I am soliciting feedback from interested developers and as such the beta API may expand to reflect that feedback. The current API is incomplete but stable. Existing features may be expanded on but will not be removed or modified. New features may be added.
I’ve created a simple HTML widget that allows you to query the Fever API and view the response.
Without further ado, the Fever API endpoint URL looks like:
http://yourdomain.com/fever/?api
All requests must be authenticated with a POST
ed api_key
. The value of api_key
should be the md5 checksum of the Fever accounts email address and password concatenated with a colon. An example of a valid value for api_key
using PHP’s native md5()
function:
$email =<EMAIL_ADDRESS>$pass = 'b3stp4s4wd3v4';
$api_key = md5($email.':'.$pass);
A user may specify that https
be used to connect to their Fever installation for additional security but you should not assume that all Fever installations support https
.
The default response is a JSON object containing two members:
api_version
contains the version of the API responding (positive integer)auth
whether the request was successfully authenticated (boolean integer)The API can also return XML by passing xml
as the optional value of the api
argument like so:
http://yourdomain.com/fever/?api=xml
The top level XML element is named response
.
The response to each successfully authenticated request will have auth
set to 1
and include at least one additional member:
last_refreshed_on_time
contains the time of the most recently refreshed (not updated) feed (Unix timestamp/integer)When reading from the Fever API you add arguments to the query string of the API endpoint URL. If you attempt to POST
these arguments (and their optional values) Fever will not recognize the request.
http://yourdomain.com/fever/?api&groups
A request with the groups
argument will return two additional members:
groups
contains an array of group
objectsfeeds_groups
contains an array of feeds_group
objectsA group
object has the following members:
id
(positive integer)title
(utf-8 string)The feeds_group
object is documented under “Feeds/Groups Relationships.”
The “Kindling” super group is not included in this response and is composed of all feeds with an is_spark
equal to 0
. The “Sparks” super group is not included in this response and is composed of all feeds with an is_spark
equal to 1
.
http://yourdomain.com/fever/?api&feeds
A request with the feeds
argument will return two additional members:
feeds
contains an array of feed
objectsfeeds_groups
contains an array of feeds_group
objectsA feed
object has the following members:
id
(positive integer)favicon_id
(positive integer)title
(utf-8 string)url
(utf-8 string)site_url
(utf-8 string)is_spark
(boolean integer)last_updated_on_time
(Unix timestamp/integer)The feeds_group
object is documented under “Feeds/Groups Relationships.”
The “All Items” super feed is not included in this response and is composed of all items from all feeds that belong to a given group. For the “Kindling” super group and all user created groups the items should be limited to feeds with an is_spark
equal to 0
. For the “Sparks” super group the items should be limited to feeds with an is_spark
equal to 1
.
A request with either the groups
or feeds
arguments will return an additional member:
A feeds_group
object has the following members:
group_id
(positive integer)feed_ids
(string/comma-separated list of positive integers)http://yourdomain.com/fever/?api&favicons
A request with the favicons
argument will return one additional member:
favicons
contains an array of favicon
objectsA favicon
object has the following members:
id
(positive integer)data
(base64 encoded image data; prefixed by image type)An example data
value:
image/gif;base64,R0lGODlhAQABAIAAAObm5gAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==
The data
member of a favicon
object can be used with the data:
protocol to embed an image in CSS or HTML. A PHP/HTML example:
echo '<img src="data:'.$favicon['data'].'">';
http://yourdomain.com/fever/?api&items
A request with the items
argument will return two additional members:
items
contains an array of item
objectstotal_items
contains the total number of items stored in the database (added in API version 2)An item
object has the following members:
id
(positive integer)feed_id
(positive integer)title
(utf-8 string)author
(utf-8 string)html
(utf-8 string)url
(utf-8 string)is_saved
(boolean integer)is_read
(boolean integer)created_on_time
(Unix timestamp/integer)Most servers won’t have enough memory allocated to PHP to dump all items at once. Three optional arguments control determine the items included in the response.
Use the since_id
argument with the highest id of locally cached items to request 50 additional items. Repeat until the items
array in the response is empty.
Use the max_id
argument with the lowest id of locally cached items (or 0
initially) to request 50 previous items. Repeat until the items
array in the response is empty. (added in API version 2)
Use the with_ids
argument with a comma-separated list of item ids to request (a maximum of 50) specific items. (added in API version 2)
http://yourdomain.com/fever/?api&links
A request with the links
argument will return one additional member:
links
contains an array of link
objectsA link
object has the following members:
id
(positive integer)feed_id
(positive integer) only use when is_item
equals 1
item_id
(positive integer) only use when is_item
equals 1
temperature
(positive float)is_item
(boolean integer)is_local
(boolean integer) used to determine if the source feed and favicon should be displayedis_saved
(boolean integer) only use when is_item
equals 1
title
(utf-8 string)url
(utf-8 string)item_ids
(string/comma-separated list of positive integers)When requesting hot links you can control the range and offset by specifying a length of days for each as well as a page to fetch additional hot links. A request with just the links
argument is equivalent to:
http://yourdomain.com/fever/?api&links&offset=0&range=7&page=1
Or the first page (page=1
) of Hot links for the past week (range=7
) starting now (offset=0
).
Fever calculates Hot link temperatures in real-time. The API assumes you have an up-to-date local cache of items, feeds and favicons with which to construct a meaningful Hot view. Because they are ephemeral Hot links should not be cached in the same relational manner as items, feeds, groups and favicons.
Because Fever saves items and not individual links you can only "save" a Hot link when is_item
equals 1
.
The unread_item_ids
and saved_item_ids
arguments can be used to keep your local cache synced with the remote Fever installation.
http://yourdomain.com/fever/?api&unread_item_ids
A request with the unread_item_ids
argument will return one additional member:
unread_item_ids
(string/comma-separated list of positive integers)
http://yourdomain.com/fever/?api&saved_item_ids
A request with the saved_item_ids
argument will return one additional member:
saved_item_ids
(string/comma-separated list of positive integers)One of these members will be returned as appropriate when marking an item as read, unread, saved, or unsaved and when marking a feed or group as read.
Because groups and feeds will be limited in number compared to items, they should be synced by comparing an array of locally cached feed or group ids to an array of feed or group ids returned by their respective API request.
The public beta of the API does not provide a way to add, edit or delete feeds or groups but you can mark items, feeds and groups as read and save or unsave items. You can also unread recently read items. When writing to the Fever API you add arguments to the POST
data you submit to the API endpoint URL.
Adding unread_recently_read=1
to your POST
data will mark recently read items as unread.
You can update an individual item by adding the following three arguments to your POST
data:
mark=item
as=?
where ?
is replaced with read
, saved
or unsaved
id=?
where ?
is replaced with the id
of the item to modifyMarking a feed or group as read is similar but requires one additional argument to prevent marking new, unreceived items as read:
mark=?
where ?
is replaced with feed
or group
as=read
id=?
where ?
is replaced with the id
of the feed or group to modifybefore=?
where ?
is replaced with the Unix timestamp of the the local client’s most recent items
API requestYou can mark the “Kindling” super group (and the “Sparks” super group) as read by adding the following four arguments to your POST
data:
mark=group
as=read
id=0
before=?
where ?
is replaced with the Unix timestamp of the the local client’s last items
API requestSimilarly you can mark just the “Sparks” super group as read by adding the following four arguments to your POST
data:
mark=group
as=read
id=-1
before=?
where ?
is replaced with the Unix timestamp of the the local client’s last items
API request


Assimp
5.0.1, master @ cd42b955
Here is a list of all namespace members with links to the namespace documentation for each member:
- w -
WeightArray :
Assimp::FBX
WeightChannelList :
Assimp::LWO
WeightIndexArray :
Assimp::FBX
WeightList :
Assimp::MD5
wformat :
Assimp::Formatter
Write() :
Assimp
,
glTF2
,
glTF
Write< aiColor3D >() :
Assimp
Write< aiColor4D >() :
Assimp
Write< aiMatrix4x4 >() :
Assimp
Write< aiQuaternion >() :
Assimp
Write< aiQuatKey >() :
Assimp
Write< aiString >() :
Assimp
Write< aiVector3D >() :
Assimp
Write< aiVectorKey >() :
Assimp
Write< aiVertexWeight >() :
Assimp
Write< double >() :
Assimp
Write< float >() :
Assimp
Write< uint16_t >() :
Assimp
Write< unsigned int >() :
Assimp
WriteArray() :
Assimp
WriteAttrs() :
glTF2::anonymous_namespace{glTF2AssetWriter.inl}
,
glTF::anonymous_namespace{glTFAssetWriter.inl}
WriteBounds() :
Assimp
WriteColorOrTex() :
glTF::anonymous_namespace{glTFAssetWriter.inl}
WriteDump() :
Assimp::AssxmlFileWriter
WriteFloat() :
glTF2::anonymous_namespace{glTF2AssetWriter.inl}
WriteFormatInfo() :
Assimp
WriteLazyDict() :
glTF2
,
glTF
WriteMeshIndicesBinary_Generic() :
Assimp
WriteNode() :
Assimp::AssxmlFileWriter
WritePolygon() :
Assimp::IFC
WriteTex() :
glTF2::anonymous_namespace{glTF2AssetWriter.inl}
WriteVec() :
glTF2::anonymous_namespace{glTF2AssetWriter.inl}
Generated on Thu Apr 22 2021 22:30:02 for Assimp by
1.9.1


Farcry 3 is a FPS-adventure game developed by Ubisoft Montreal, Massive Entertainment, Ubisoft Shanghai, Red Storm Entertainment and Ubisoft Reflections. It is about a group of friends that decided to take a vacation, they start partying and skydiving, but it all changed when they got caught by pirates. What would Jason Brody do? Learn the ways of the forest. Save your friends. Kill Vaas.


Recursion Solver is a minimalistic, memoizing, one pass, JavaScript recursive descent parser that supports all kinds of left recursive definitions, using an algorithm similar to Packrat Parsers Can Support Left Recursion by Alessandro Warth, James R. Douglass and Todd Millstein. The one and only thing it does is enhancing functions with memoization and the ability to solve recursive calls between them, thereby making a recursive descent parser able to support left recursive definitions. Those functions are the production rules of a Recursion Solver parser, where languages are defined using running code, rather than an internal language or data structure specific to the library, as in most other parsers. A Recursion Solver rule may accept arguments, return any value, and parse any type of input, such as strings, symbols or even byte streams.
While this approach requires quite a lot of boilerplate code to do anything useful, it is very flexible and lightweight. It allows for relatively easy definition of languages that are hard or impossible to describe using regular CFGs or PEGs. Besides, examples of how to implement more compact PEG-style definitions on top of Recursion Solver will soon be written. Although Recursion Solver doesn't natively support any advanced techniques such as GLR parsing of very ambiguous languages, attribute grammars, incremental parsing, dynamic asynchronous loading of rules or language specification files, algorithms for these features might be possible to implement on top of Recursion Solver. But I can't guarantee it because I haven't tried it yet.
While this library was written mainly with parsing in mind, it might be flexible enough to be used in other applications that need to solve recursive function calls, such as set, graph or dynamic programming algorithms.
The API of Recursion Solver is the single method
recursionSolver.solve(key, progress, f, args, thisBinding)
,
where args = arg0, arg1, ... argN
are the arguments to pass to the function
f(arg0, arg1, ... argN)
.
Its implementation is quite complicated,
but its observable behavior only has two variants.
If the rule parses successfully, it will return
the result of some call to
f.apply(thisBinding, args)
.
This is equivalent to calling
thisBinding.f(arg0, arg1, ... argN)
,
if f
was a method named f on thisBinding
.
If the parsing has failed, it might return the result of calling
progress.onRecursion.apply(progress, args)
,
which is equivalent of calling
progress.onRecursion(arg0, arg1, ... argN)
.
This means that once the calling code has checked if the parsing was successfull,
it might use the result of solve
as if it was
the result of calling f
,
but with any recursive calls solved.
The key
parameter is a string that should uniquely identify
anything that might influence the execution of f
.
It should at least contain information about
the parsers current position in the input,
and what rule f
is.
Soon, an example will be written that describes how to genereate such keys
easily and efficiently using tree structures of JavaScript maps.
The progress
parameter is an object with functions that
describes the interaction needed between Recursion Solver and the
parser to solve recursions.
Normally, it is practical to pass the parser object itself as
progress
.
As usual in parsing, a simple calculator will be used as example. This calculator accepts strings with additions of digits as input. The rules have been implemented in their canonical form, for pedagogic reasons. Therefore, it has a sum rule acting as an alternative, or prioritized choice in PEG terms, and an addition rule acting as a sequence.
If the rules had been defined without using the recursion solver,
sum
would set its backtrack position
and call addition
.
Then addition
would call sum
.
Then, sum
would once more call addition
,
and the execution would be stuck with unlimited calls back and forth between
sum, addition, sum, addition, sum, addition, ...
until the stack is full.
But recursionSolver.solve
will solve that recursion and run
the rules of sum
and addition
on that solution instead.
The parsingMethod
function illustrates the recomended way of
using Recursion Solver by accepting a rule function,
and returning a parsing method function, that can solve recursions.
This way, the rule function will be created only once,
instead of in each call, as it would in conceptually simpler solutions.
This is not just an optimization;
it does also allow for more clever ways of producing keys,
than to pass their names explicitly, as in this example.
Besides that, parsingMethod
does also produce a key,
with the help of calculator.makeKey
.
The keys are central to the functionallity of all parts of Recursion Solver,
so it is very important that they ar produced in a correct way.
In essence, a key should represent everything that might influence the
observable behavior of f
, both its result and its side effects.
Recursion solver detects and breaks recursions by keeping track of the keys
of all rules that are currently on the stack.
The stack is represented as an object with null
as its prototype,
which means that it has no inherited attributes.
Therefore, stack[key]
will initially evaluate to
undefined
for any string key
.
Before a rule is run, its key is added to the stack by setting
stack[key] = true
.
When the rule is finished, delete stack[key]
is used to remove it from the stack.
Since undefined
is treated as false
,
the stack
can be used in a if-clause:
if(stack[key]){
// key is on stack
} else {
// key is not on stack
}
To start with, solve
will do nothing if the key is on the stack,
just to break the recursion.
Below is a representation of the calls that are made.
Entering a method is indicated by "\" and exiting it with "/"
Most keys are entered twice, like sum0t
on line 1 and 2.
This is because both parsing methods and rules are printed.
Line Parse tree result position parseSuccess stack
1 \sum0t |2+3+4 true {}
2 \sum0t |2+3+4 true {sum0t}
3 \add0t |2+3+4 true {sum0t}
4 \add0t |2+3+4 true {sum0t, add0t}
5 \sum0t |2+3+4 true {sum0t, add0t}
6 /sum0t undefined |2+3+4 true {sum0t, add0t}
7 \dig0t |2+3+4 true {sum0t, add0t}
8 \dig0t |2+3+4 true {sum0t, add0t, dig0t}
9 /dig0t 2 2|+3+4 true {sum0t, add0t, dig0t}
10 /dig0t 2 2|+3+4 true {sum0t, add0t}
11 /add0t NaN 2|+3+4 true {sum0t, add0t}
12 /add0t NaN 2|+3+4 true {sum0t}
13 /sum0t NaN 2|+3+4 true {sum0t}
14 /sum0t NaN 2|+3+4 true {}
On line 5, the parsing method of sum
detects that it is already on the stack,
so it doesn't call its rule.
Thus, the recursion is broken,
but the result
variable is never set,
so sum returns undefined
on line 6.
Then, the addition rule from line 4 fails to read a plus sign,
and calls digit, that succeeds to read 2, on line 9.
The addition rule from line 4 adds undefined
to 2 and returns the
result NaN
on line 11, because this is JavaScript.
Since parseSuccess == true
, the sum rule from line 2
also returns NaN
, and this is the final result.
It would be better if the final result was 2.
This is why progress.onRecursion
should fail the parser.
If it is called when the recursion is detected,
the calls would go like this instead:
Line Parse tree result position parseSuccess
1 \sum0t |2+3+4 true
2 \sum0t |2+3+4 true
3 \add0t |2+3+4 true
4 \add0t |2+3+4 true
5 \sum0t |2+3+4 true
6 /sum0t undefined |2+3+4 false
7 \dig0f |2+3+4 false
8 \dig0f |2+3+4 false
9 /dig0f 2 2|+3+4 false
10 /dig0f 2 2|+3+4 false
11 /add0t NaN 2|+3+4 false
12 /add0t NaN 2|+3+4 false
13 \dig0t |2+3+4 true
14 \dig0t |2+3+4 true
15 /dig0t 2 2|+3+4 true
16 /dig0t 2 2|+3+4 true
17 /sum0t 2 2|+3+4 true
18 /sum0t 2 2|+3+4 true
Now, the sum rule from line 2 detects that
the addition from line 3 has failed,
because sum from line 5 has set parseSuccess = false
by calling progress.onRecursion
.
Since parsing of the addition is reported as failed,
the sum rule from line 2 will try and succeed to parse the digit 2 instead,
on the lines 13 to 16.
Then 2 is returned as the final result.
In this step, the solve
algorithm
will be modified so that it parses 2+3
and returns 5.
This is done by letting the sum parsing method from line 1
memoize the result 2 on line 17, and then calling its rule again.
Then, the sum parsing method on line 5 will successfully return 2 on line 6,
and the addition rule will return 5.
The mechanism for making the sum parsing method calling its rule again
will be implemented first.
To do this, the sum parsing method from line 5 needs to tell
the sum parsing method from line 1 that it should recurse.
This is done using a string property isRecursive
.
A variable backtrack is also created using progress.backup
so that the iteration will start from the same position in the code,
using progress.recall
.
Line Parse tree result position parseSuccess isRecursive
1 \sum0t |2+3+4 true undefined
2 \sum0t |2+3+4 true undefined
3 \add0t |2+3+4 true undefined
4 \add0t |2+3+4 true undefined
5 \sum0t |2+3+4 true undefined
6 /sum0t undefined |2+3+4 false sum0t
7 \dig0f |2+3+4 false sum0t
8 \dig0f |2+3+4 false sum0t
9 /dig0f 2 2|+3+4 false sum0t
10 /dig0f 2 2|+3+4 false sum0t
11 /add0t NaN 2|+3+4 false sum0t
12 /add0t NaN 2|+3+4 false sum0t
13 \dig0t |2+3+4 true sum0t
14 \dig0t |2+3+4 true sum0t
15 /dig0t 2 2|+3+4 true sum0t
16 /dig0t 2 2|+3+4 true sum0t
17 /sum0t 2 2|+3+4 true sum0t
18 \sum0t |2+3+4 true sum0t
19 \add0t |2+3+4 true sum0t
20 \add0t |2+3+4 true sum0t
21 \sum0t |2+3+4 true sum0t
22 /sum0t undefined |2+3+4 false sum0t
23 \dig0f |2+3+4 false sum0t
24 \dig0f |2+3+4 false sum0t
25 /dig0f 2 2|+3+4 false sum0t
26 /dig0f 2 2|+3+4 false sum0t
27 /add0t NaN 2|+3+4 false sum0t
28 /add0t NaN 2|+3+4 false sum0t
29 \dig0t |2+3+4 true sum0t
30 \dig0t |2+3+4 true sum0t
31 /dig0t 2 2|+3+4 true sum0t
32 /dig0t 2 2|+3+4 true sum0t
33 /sum0t 2 2|+3+4 true sum0t
34 /sum0t 2 2|+3+4 true sum0t
Now, the algorithm does the exact same thing twice.
In order for it to parse 2+3
,
the sum parsing method from line 21 should return
the memoized result that the sum rule from line 2 returns on line 17,
that is, 2.
A map memo
with similar implementation as stack
will be used.
Line Parse tree result position memo
1 \sum0t |2+3+4
2 \sum0t |2+3+4
3 \add0t |2+3+4
4 \add0t |2+3+4
5 \sum0t |2+3+4
6 /sum0t undefined |2+3+4
7 \dig0f |2+3+4
8 \dig0f |2+3+4
9 /dig0f 2 2|+3+4
10 /dig0f 2 2|+3+4 2
11 /add0t NaN 2|+3+4
12 /add0t NaN 2|+3+4 NaN
13 \dig0t |2+3+4
14 \dig0t |2+3+4
15 /dig0t 2 2|+3+4
16 /dig0t 2 2|+3+4 2
17 /sum0t 2 2|+3+4
18 \sum0t |2+3+4
19 \add0t |2+3+4 NaN
20 /add0t NaN 2|+3+4 NaN
21 \dig0t |2+3+4 2
22 /dig0t 2 2|+3+4 2
23 /sum0t 2 2|+3+4
24 /sum0t 2 2|+3+4 2
This is worse than before.
Instead of sum supplying the 2
as a base case for the addition in the second iteration,
the addition parsing method returns NaN
on line 20
without evaluating its rule.
This is because the addition parsing method from line 3
has set memo["add0t"].result = NaN
,
so this is what the addition parsing method from line 19 will return.
In the normal case, this would be the desired behavior,
but in iterations, sometimes the memoized result should be ignored.
This can be solved if the addition maintains
a list in its memo-record of keys to let through,
by looking at isRecursive
.
Line Parse tree result position memo
1 \sum0t |2+3+4
2 \sum0t |2+3+4
3 \add0t |2+3+4
4 \add0t |2+3+4
5 \sum0t |2+3+4
6 /sum0t undefined |2+3+4
7 \dig0f |2+3+4
8 \dig0f |2+3+4
9 /dig0f 2 2|+3+4
10 /dig0f 2 2|+3+4 2
11 /add0t NaN 2|+3+4
12 /add0t NaN 2|+3+4 NaN
13 \dig0t |2+3+4
14 \dig0t |2+3+4
15 /dig0t 2 2|+3+4
16 /dig0t 2 2|+3+4 2
17 /sum0t 2 2|+3+4
18 \sum0t |2+3+4
19 \add0t |2+3+4 NaN
20 \add0t |2+3+4
21 \sum0t |2+3+4 2
22 /sum0t 2 2|+3+4 2
23 \dig2t 2+|3+4
24 \dig2t 2+|3+4
25 /dig2t 3 2+3|+4
26 /dig2t 3 2+3|+4 3
27 /add0t 5 2+3|+4
28 /add0t 5 2+3|+4 NaN
29 /sum0t 5 2+3|+4
30 /sum0t 5 2+3|+4 2
To generalize the algorithm to accept any number of additions,
it must contain a loop.
The loop will call the rule as long as it is able to successfully parse
more than it did in the former iteration.
This is checked by calling progress.hasProgressed
Then the algorithm will return the second-to-last result.
Line Parse tree result position memo
1 \sum0t |2+3+4
2 \sum0t |2+3+4
3 \add0t |2+3+4
4 \add0t |2+3+4
5 \sum0t |2+3+4
6 /sum0t undefined |2+3+4
7 \dig0f |2+3+4
8 \dig0f |2+3+4
9 /dig0f 2 2|+3+4
10 /dig0f 2 2|+3+4 2
11 /add0t NaN 2|+3+4
12 /add0t NaN 2|+3+4 NaN
13 \dig0t |2+3+4
14 \dig0t |2+3+4
15 /dig0t 2 2|+3+4
16 /dig0t 2 2|+3+4 2
17 /sum0t 2 2|+3+4
18 \sum0t |2+3+4
19 \add0t |2+3+4 NaN
20 \add0t |2+3+4
21 \sum0t |2+3+4 2
22 /sum0t 2 2|+3+4 2
23 \dig2t 2+|3+4
24 \dig2t 2+|3+4
25 /dig2t 3 2+3|+4
26 /dig2t 3 2+3|+4 3
27 /add0t 5 2+3|+4
28 /add0t 5 2+3|+4 NaN
29 /sum0t 5 2+3|+4
30 \sum0t |2+3+4
31 \add0t |2+3+4 NaN
32 \add0t |2+3+4
33 \sum0t |2+3+4 5
34 /sum0t 5 2+3|+4 5
35 \dig4t 2+3+|4
36 \dig4t 2+3+|4
37 /dig4t 4 2+3+4|
38 /dig4t 4 2+3+4| 4
39 /add0t 9 2+3+4|
40 /add0t 9 2+3+4| NaN
41 /sum0t 9 2+3+4|
42 \sum0t |2+3+4
43 \add0t |2+3+4 NaN
44 \add0t |2+3+4
45 \sum0t |2+3+4 9
46 /sum0t 9 2+3+4| 9
47 \dig5t 2+3+4|
48 \dig5t 2+3+4|
49 /dig5t undefined 2+3+4|
50 /dig5t undefined 2+3+4| undefined
51 /add0t NaN 2+3+4|
52 /add0t NaN 2+3+4| NaN
53 /sum0t NaN 2+3+4|
54 /sum0t 9 2+3+4| 9
While this code solves the initial acceptance test,
there are more complex languages.
Fortunatelly, the only thing needed to make RPDL work as expected
is to add support for detecting many recursive definitions.
This can be done by making isRecursive
a hashset of strings.
Then, it can't be used to see if it is on a parsing methods list,
so a new property currentRecursion
will be introduced.
So far, calls to addition has not been memoized.
Line Parse tree result position memo
1 \sum0t |2+3
2 \sum0t |2+3
3 \add0t |2+3
4 \add0t |2+3
5 \sum0t |2+3
6 /sum0t undefined |2+3
7 \dig0f |2+3
8 \dig0f |2+3
9 /dig0f 2 2|+3
10 /dig0f 2 2|+3 2
11 /add0t NaN 2|+3
12 /add0t NaN 2|+3 NaN
13 \dig0t |2+3
14 \dig0t |2+3
15 /dig0t 2 2|+3
16 /dig0t 2 2|+3 2
17 /sum0t 2 2|+3
18 \sum0t |2+3
19 \add0t |2+3 NaN
20 \add0t |2+3
21 \sum0t |2+3 2
22 /sum0t 2 2|+3 2
23 \dig2t 2+|3
24 \dig2t 2+|3
25 /dig2t 3 2+3|
26 /dig2t 3 2+3| 3
27 /add0t 5 2+3|
28 /add0t 5 2+3| 5
29 /sum0t 5 2+3|
30 \sum0t |2+3
31 \add0t |2+3 5
32 \add0t |2+3
33 \sum0t |2+3 5
34 /sum0t 5 2+3| 5
35 \dig3t 2+3|
36 \dig3t 2+3|
37 /dig3t undefined 2+3|
38 /dig3t undefined 2+3| undefined
39 /add0t NaN 2+3|
40 /add0t NaN 2+3| 5
41 /sum0t NaN 2+3|
42 /sum0t 5 2+3| 5


Furious mum slams Amazon delivery for 'ruining' six-year-old daughter's Christmas
Journalist Joanna Lovell was distraught to return to her home with her daughter Jasmine to discover the pink and white Barbie ambulance she had ordered for Christmas was unwrapped on the doorstep
by Milo Boyd, https://www.mirror.co.uk/authors/milo-boyd/A mum has hit out claiming an Amazon delivery ruined the surprise of a Christmas present for her daughter.
Joanna Lovell returned to her home on Wednesday evening with her daughter to be greeted by an unexpected sight.
The pink and white Barbie ambulance she had ordered for her daughter Jasmine was sat on the doorstep, with no packaging surrounding the box.
"When we got home there it was on the doorstep for all to see - and my daughter's eyes nearly popped out of her head with excitement when she saw it," the Hull Daily Mail reporter wrote.
"I'd had no chance to hide it because although I'd had an alert on the app to say it had been delivered, I never for one moment expected it to arrive as it is, with just an address label stuck to the side."
When Amazon was asked about the revealing delivery a spokesperson for the company noted its website website states the item arrives in packaging "which reveals what's inside".
If you order the item off a phone however, the message is not displayed.
Joanna continued: "I used my phone and at no point throughout the transaction was this message displayed.
"Having spoken with Amazon today I've gone back online to re-order it to check if I missed it and I hadn't.
"When using your phone to order, if you click 'buy now' you will not see the message, as my phone screenshot below shows.
"To see the message on your phone you would have to scroll right down, past the 'Add to basket' and 'Buy Now' buttons - which I had absolutely no need to do.
"It is only if you are using the website on a desktop computer that the message about packaging is displayed on the same screen under the 'Buy it Now' button - but even then it can easily be missed because it does not stand out at all."
The lack of packaging led Jasmine to throw some difficult questions her mother's way.
"Jasmine's excitement soon turned to a puzzled look when she began asking my why a toy she had put on her letter to Father Christmas just days before, had arrived at our house out of the blue," the mum explained.
"She reminded me we haven't even posted her letter to Santa yet, so how could he possibly know she wanted it and why had it arrived early? So. Many. Questions.
"Being totally caught on the hop I ended up saying it must be a mistake and had no idea how it got there, so you can only imagine her disapointment.
"I could have just said I ordered it for her as a surprise for being so well behaved recently - but A) she's a being a bit of a diva at the moment and B) it cost me £39.99 - and my mid-year treats don't usually cost me that much.
"Plus I'd have to do the same for my son, so I'd be £80 down through no fault of my own."
Now the mum is in a dilemma as to whether to give it to her daughter.
She wrote: "If she opens it on Christmas Day, the magic of Christmas will be ruined, because she will remember seeing it.
"But she will be disappointed if she doesn't get it. It's top of her list as she loves playing with it at her cousin's house.
 As a parent you do the best to keep the magic of Christmas alive for as long as you can - then Amazon come along and clumsily ruin it.
"You don't have to be a genius to work out that items like this, ordered in mid November, are probably a Christmas gift, so why there's an option for it to arrive without packaging seems pointless to me.
"Not only that, but I could hardly give it to her with a giant label on the side with my address on it! It's meant to come on Santa's sleigh."
Now Joanna is calling on Amazon to change its packaging policy so more festive treats aren't ruined.
"Any notices about packaging should be on the listing itself, and repeated again on the purchasing pages," the campaigning journalist argued.
"In fact you should not be able to buy the product until you have acknowledged you have read the message about packaging.
"The message should be visible for those using a phone to order - displayed before the 'Buy it Now' button.
"Yours sincerely, parents everywhere."


Study Buddy
Profile Update
Current Name
Current Password
ID
First Name:
Last Name:
Email Address:
User Name:
Password:
Phone number:
Biography:
Subject 1:
Subject 2:
Subject 3:
Price:


Invaluable Partners
Partnering with BillDesk provides a single location interconnected platform. We connect banks, merchants, billers, payment networks and customers simplifying the process of accepting and making payments.
Here's a glimpse of our partner network for whom our payment solutions create bridges.


This keyboard is designed for the East Cree syllabic script used in Northwestern Quebec, Canada. The keyboard has been developed to make it easy to type all of the symbols necessary for East Cree. This keyboard is fully compliant with the Unicode Standard.
Important Notice: The default for this keyboard is for characters to be composed. For example, this sequence "wa" would produce ᐗ (U+1417).
You can change the keyboard to produce decomposed characters in two ways. The preferred method is to use Keyman → Configuration.
This keyboard is phonetic. The basic consonant+vowel syllabic characters are formed as a result of pressing the equivalent Latin letters. For example, type na to get ᓇ, and type ni to get ᓂ. Type the vowel a second time to get the dot over the character for "long" syllables: nii to get ᓃ. For a consonant alone (finals) simply type the consonant not followed by a vowel: type niin to get ᓃᓐ. Finally, the "w" dot (mid-dot) is formed by typing the w key between the consonant and vowel: type nwa to get ᐧᓇ and nwaa to get ᐧᓈ.
The On Screen Keyboard view for this keyboard is simply a QWERTY US layout, since the keyboard equivalents are designed to match the Latin characters standard East Cree syllabic chart.
This keyboard installs with the Unicode Aboriginal Syllabic font BJCree UNI, which offers full support for the characters in East Cree and other related languages.
This typing guide is based on the standard East Cree syllabic chart.
| e | i/ii | o/oo | a/aa | finals | |
|---|---|---|---|---|---|
| ᐁ | ᐃ | ᐅ | ᐊ | ᐤ | |
| w | ᐧᐁ | ᐧᐃ | ᐧᐅ | ᐧᐊ | |
| p | ᐯ | ᐱ | ᐳ | ᐸ | ᑉ |
| t | ᑌ | ᑎ | ᑐ | ᑕ | ᑦ |
| k | ᑫ | ᑭ | ᑯ | ᑲ | ᒃ |
| ch | ᒉ | ᒋ | ᒍ | ᒐ | ᒡ |
| m | ᒣ | ᒥ | ᒧ | ᒪ | ᒻ |
| n | ᓀ | ᓂ | ᓄ | ᓇ | ᓐ |
| s | ᓭ | ᓯ | ᓱ | ᓴ | ᔅ |
| sh | ᔐ | ᔑ | ᔓ | ᔕ | ᔥ |
| y | ᔦ | ᔨ | ᔪ | ᔭ | ᔾ |
| r | ᕃ | ᕆ | ᕈ | ᕋ | ᕐ |
| l | ᓓ | ᓕ | ᓗ | ᓚ | ᓪ |
| f | ᕓ | ᕕ | ᕗ | ᕙ | ᕝ |
| th | ᕞ | ᕠ | ᕤ | ᕦ | ᕪ |
| (h) ᐦ | (l) ᓬ | (r) ᕒ |
A dot in front of any character puts a "w" after the first letter, like this: ᒪ = ma, ᐧᒪ = mwa, ᐧᒫ = mwaa ᙭ = Christ, ᙮ = . (period)


Death of Nancy Brunning, actress in film and television
Report from RNZ
Actress Nancy Brunning, who played roles ranging from Nurse Jaki in Shortland Street to matriarch Ramona Mahana in the film Mahana, has died at the age of 48.
Brunning won a Best Actress award at the New Zealand Film Awards for her role in the Once were Warriors sequel, What Becomes of the Broken Hearted.
Her friends had recently launched a crowdsourcing campaign to help to fund a non-subsidised life-prolonging drug.
“Our māmā, our sister, our aunty, our friend, she has followed the call of her tīpuna,” broadcaster Stacey Morrison posted on Facebook, on behalf of Brunning’s whānau. “Nancy’s passion was to bring unheard stories to the light. To remind our people that our voices are a powerful tool and aroha is the most important thing of all. And while she was loved by the world, she was loved even more by us. She was the person that bound our whānau together.”
“We wish to express our deep gratitude and mihi to everyone who has supported Nancy and our whānau. Thank you to the kind people at Mary Potter Hospice and the hardworking staff at Wellington Hospital. Thank you to all of you who supported her battle in many ways, including the Manaakitia fundraiser.
Moe mai rā Nan. Hoki atu ki ōu mātua tīpuna. Ka noho mātou ki roto i te mamae, me te aroha mutunga kore ki a koe.”
RNZ film reviewer Sarah McMullan said Nancy Brunning was a phenomenal actress, and a talented director and playwright.
Morrison told RNZ it’s a sad day for Brunning’s whānau and all those who loved her.
“We’re already seeing how huge an impact Nancy’s passing is having on people as she’s bringing back memories – incredible feelings of how she impacted people with her performance and mostly with her desire to tell untold stories.”
Morrison said Brunning would have thought her most important role was being a mother and whānau member.
“She will be remembered as a trailblazer in terms of Māori storytelling and art, performance and expression.”
Her body will be taken to Raukawa Marae in Ōtaki.


Veteran Actor Nii Saka Brown Is Now Pastor
by Ghbase New WriterAfter missing in action for a number years on our TV screens, veteran actor Nii Saka Brown has resurfaced as a pastor.
According to NEWS-ONE’s investigations, the actor is now a fly fledged pastor who is seriously winning souls for God
He confirmed the claim on Monday, revealing he got ordained together with his wife of many years.
“One shall put a thousand to flee and two shall put ten thousands to flee. My wife and I were ordained as pastors yesterday at The Pleasant Place Church, by Bishop Titi Offei. Responding to the high calling of God,” he said on Facebook.
Nii Saka Brown starred in several movies before his transition into the ‘Kingdom of God,’ some of which include Otoolege’, ‘Ogyam’, ‘Asew Red Card’, ‘Landlady’, ‘London Get Problem’ and other TV series like ‘Fon Shop.’


Before Change
for k in range(0,shape[2]):
for l in range(0,shape[3]):
for m in range(0,shape[4]):
f["volume/data"][i,j,k,l,m] = i + j + k + l + m
f.close()
// Read the entire HDF5 file and verify the contents
After Change
with h5py.File(self.testH5FileName) as f:
f.create_group("volume")
shape = (1,2,3,4,5)
f["volume"].create_dataset("data", data=numpy.indices(shape).sum(0).astype(numpy.float32))
// Read the entire HDF5 file and verify the contents
h5Reader = OpInputDataReader(graph=self.graph)


If someone comments on this entry and the author comments back, they'll appear here as Feedback friends :)
{{/friends_rows}}
Last time scraped
{{last_updated}}
N.B. Comments may take a while to appear, so don't worry if some are missing and the score is off.
{{date}}to {{author}} ({{score}}p){{{comment}}}Entry page |
{{date}} {{#uid_author}} {{author}} {{/uid_author}} {{^uid_author}} {{author}} {{/uid_author}} ({{score}}p){{{comment}}} |
{{date}} {{#uid_author}} {{author}} {{/uid_author}} {{^uid_author}} {{author}} {{/uid_author}}{{{comment}}}Entry page |


Golden Ratio Logo Programs used: |
|
Intro DeeJay Programs used: External Plugins/Presets |
|
"The Adventures of Programs used: |
|
| "Single Letter Logo" Whole Project designed Programs Used: |
Golden Ratio Logo Programs used: |
|
Intro DeeJay Programs used: External Plugins/Presets |
|
"The Adventures of Programs used: |
|
| "Single Letter Logo" Whole Project designed Programs Used: |


New Comment
Cancel
Who Are You?
*First Name:
Enter Your Name
Middle Name:
Last Name:
*Email:
Enter Your Email
Where Are You?
City:
*State:
Enter Your State
Country:
What Do You Do?
*Occupation:
Enter Your Occupation
Company:
Company Location:
Agree?
Clear Form