3. Fink filters: how they work?¶
In the previous tutorial, we have seen how to connect to an existing stream generated by a Fink filter. This third tutorial details the Fink filters structure and how to build such a filter to redirect a stream tailored for your science.
3.1. Quality cuts¶
ZTF incoming alert streams contain unfiltered stream of all 5-sigma (only the most obvious artefacts are rejected upstream). Fink has a built-in filter to increase the purity of this incoming stream:
# Alert must satisfy:
mask = nbad.values == 0
mask *= rb.values >= 0.55
mask *= abs(magdiff.values) <= 0.1
Note that ZTF proposes even more aggressive filter criteria to build a pure sample (see here). All alerts enter this particular filter, which is ran automatically for each new alert sent to Fink. Alerts flagged out by this filter do not continue in the science pipelines (but they are kept on disk in case of re-analysis or later processing). For ZTF streams, the yield of this filter fluctuates (up to 50% sometimes), and it often depends on observing condition (weather, etc.).
3.2. Fink filters¶
In Fink, the distribution to users is provided by the broker filtering services. A filter is typically a Python routine that selects which alerts need to be sent based on user-defined criteria. Criteria are based on the alert entries: position, flux, properties, … You can find what is available in ZTF raw alerts here, and Fink added values here.
Let us know about your interest to access particular part of the stream! If you already have a working filter, we would be super happy to make the integration within the broker, otherwise we can design it together. Keep in mind, the criteria for acceptance are:
- The filter works ;-)
- The volume of data to be transferred is tractable on our side.
LSST incoming stream is 10 million alerts per night, or ~1TB/night. Hence your filter must focus on a specific aspect of the stream, to reduce the outgoing volume of alerts. Based on your submission, we will provide estimate of the volume to be transferred.
In the following, we will walk together and see how to build such a filter with an existing example. At first, you are not required to build it, but rather to understand how it works. Once comfortable, it will be your turn to play!
3.3. Fink filters in practice¶
3.3.1. Set up your development environment¶
Fork and clone the fink-filters repository, and create a new folder in fink_filters
. The name of the new folder does not matter much, but try to make it meaningful as much as possible! Let’s call it filter_snlike
for the sake of this example. This is where we will put our filter.
If you want to be able to test your filter inside the broker, you will need to install it. You have two options:
- Local installation
- Docker installation
3.3.2. Define your filter¶
A filter is typically a Python routine that selects which alerts need to be sent based on user-defined criteria. In this example, let’s imagine you want to receive SN Ia like candidates based on a few criteria. You would create a file called filter.py
and define a simple routine:
@pandas_udf(BooleanType(), PandasUDFType.SCALAR)
def snialike(rfscore, cdsxmatch, neargaia, distpsnr1) -> pd.Series:
""" Return alerts considered as SN-Ia like
Parameters
----------
rfscore: Spark DataFrame Column
Column containing the probability to be a SN Ia
from the Random Forest classifier.
cdsxmatch: Spark DataFrame Column
Column containing the cross-match values
neargaia: Spark DataFrame Column
Column containing the distance to closest Gaia object
distpsnr1: Spark DataFrame Column
Column containing the distance to closest PS1 object
Returns
----------
out: pandas.Series of bool
Return a Pandas DataFrame with the appropriate flag:
false for bad alert, and true for good alert.
"""
mask = rfscore.values > 0.0
mask *= cdsxmatch.values == "Unknown"
mask *= neargaia.values > 5.0
mask *= distpsnr1.values > 5.0
return pd.Series(mask)
Remarks:
- Note the use of the decorator is mandatory. It is a decorator for Apache Spark, and it specifies the output type as well as the type of operation. Just copy and paste it for simplicity.
- The name of the routine will be used as the name of the Kafka topic. So once the filter loaded, you would subscribe to the topic
snialike
to receive alerts from this filter. Hence choose a meaningful name! - The name of the input argument must match the name of an alert field (either root or in
candidate
). You can also choose Fink added values (usually at the root level), ascdsxmatch
which is one column added by the xmatch module orrfscore
which the probability to be a SN Ia returned by the Random Forest classifier. - You can as many input columns as wanted.
Do not forget to include the __init__.py
file in your new folder to make it a package.
3.3.3. Test your filter in the broker (only for the brave)¶
Once your filter is written, it is time to test it on mock data! First of all, make sure you installed fink-broker correctly (see above) and fink-filters is in your PYTHONPATH
. Edit the bin/distribution.py
file to register the path of your filter:
# User-defined topics - python path to the filter
userfilters = [
'fink_filters.filter_snlike.filter.snialike'
]
Then in the conf/fink.conf.distribution
configuration file, edit the topic name:
# Kafka topic to publish on as defined by
# the name of your filter
DISTRIBUTION_TOPIC="snialike"
Finally deploy the broker (see the tutorial). Note that when launching the distribution service, you must see the following line at the end of the log:
19/11/28 14:22:10 INFO apply_user_defined_filter (filters.py line 239): new filter/topic registered: rrlyr from fink_filters.filter_snlike.filter
It means your filter is taken into account by the broker! You can estimate the data volume sent by your filter on mock data following the tutorial.
3.3.4. Open a pull request¶
Once your filter is done, we will review it. The criteria for acceptance are:
- The filter works ;-)
- The volume of data to be transferred is tractable on our side.
Keep in mind, LSST incoming stream is 10 million alerts per night, or ~1TB/night. Hence your filter must focus on a specific aspect of the stream, to reduce the outgoing volume of alerts. Based on your submission, we will also provide estimate of the volume to be transferred.
3.3.5. Play!¶
If your filter is accepted, it will be plugged in the broker, and you will be able to receive your alerts in real-time using fink-client (see previous tutorial). Note that we do not keep alerts forever available in the broker. The current retention period is 4 days after alert emission.
3.3.6. Exercise¶
- How the previous filter could be enhanced given other ZTF alert fields?
- Do you have a filter in mind that would serve your scientific needs?


RDF Binary encoding using Thrift
Binary RDF is useful for efficient processing and transfer rather than relying on text-based formats. Text based formats are more expensive to write and to parse.
The text oriented syntaxes (e.g. Turtle) provide human readability while the line-oriented syntaxes (e.g. N-Triples provide reasonable universal dump and machine exchange formats on the web. N-triples, despite being larger than Turtle, is generally reported to be faster to parse.
Apache Thrift, and Google’s Protocol Buffers are data formats designed for efficient exchange of data between co-operating processes. This data exchange may be via disk or network. The formats are design for efficient processing and not human readability.
RDF Binary is a uses Apache Thrift for a binary encoding for fast machine encoding and decoding. Apache Thrift provides libraries for reading and writing the encoding in a wide variety of programming languages.
Extended RDF Terms
The datastructures of graph/datasets and SPARQL result sets (e.g. in JSON) build on RDF Terms. RDF Thrift defines RDF Terms in Thrift and adds some forms to give a single set of basic building blocks.
- RDF Terms – IRIs, literals and blank nodes
- Prefixed names – shortened IRIs for compression. See prefixed names in Turtle or SPARQL.
- Named variables (as in SPARQL)
ANY
– a wildcard often found in RDF APIs for finding triples etc.UNDEF
– explicit indication that something does not have a value (e.g. for SPARQL results).
A possible future (meta) term is
REPEAT
– a marker to indicate the same term is to be used as the previous “row”
In addition, there is a way to declare a prefix and the associated IRI.
These basic elements are used for
- triples and quads for graphs and datasets
- rows of values, for SPARQL result sets
This makes for reuse of code to process these different datastructures and simplicity, efficiency and easy of implementation with the assumption that each datastructure built on top is careful about erroneous use of these elements.
Prefix Declarations
Prefix declarations can be inserted at any point where a triple or quad is expected and apply from that the end of the declaration in the data stream.
Graphs and Datasets
Content type: application/rdf+thrift
File extensions: rt, trdf
- Triple (3 RDF terms)
- Quad (4 RDF terms)
- Prefix declaration.
A graph is a stream comprised only of prefix declarations and triples.
A dataset is a stream comprised only of prefix declarations, triples and quads. (A triple is in the default graph; quads go into named graphs.)
This format is like N-Triples and N-Quads, except encoded in binary, and with prefixed names as a way to write IRIs. This means the prefix declarations travel with the triples and quads as they do with Turtle and TriG.
Prefix declarations can be inserted at any point where a triple or quad is expected and apply from that the end of the declaration in the data stream.
SPARQL Result Set
Content type: application/sparql-results+thrift
File extensions: srt
- Header row: a list of variables.
- Data row: a list of RDF terms to match the header.
- Prefix declaration.
A SPARQL Result Set has one row of variables (the header row) and zero or more rows of data rows. The header row is mandatory.
All data rows are the same length as the header row.
Prefix declarations can be inserted at any point where a row is expected and apply from that the end of the declaration in the data stream.
A data row uses UNDEF
to indicate that a variable not set in the result set for this
In addition, a data row may use the term REPEAT
to indicate that the same
RDF term from the previous row is used again. REPEAT
is illegal in the
first data row.
(REPEAT
subject to deployment testing that it does provide useful data reduction.)
Details of Thrift Encoding
This section details the encoding in Thrift.
Encoding values
Use of encoding literals by value is optional.
Some literals can be encoded using their values, rather than their lexical form and datatype. This can lead to a reduction is space. It can result in the changes to the term encoded.
The exact lexcial form is not retained, so "001"^^xsd:integer
,
"+1"^^xsd:integer
and "1"^^xsd:integer
are all encoded as the value 1
and when read, will result in the same RDF term ("1"^^xsd:integer
is the XSD canonical form).
Some derived dataypes are lost - xsd:long
, xsd:int
, xsd:short
,
xsd:byte
are encoded as their integer value and will become xsd:integer
when read back in.
| Input Datatype | Value space | Outcome Datatype |
|---|---|---|
| xsd:integer | Integer | xsd:integer |
| xsd:long | Integer | xsd:integer |
| xsd:int | Integer | xsd:integer |
| xsd:short | Integer | xsd:integer |
| xsd:byte | Integer | xsd:integer |
| xsd:decimal | Decimal | xsd:decimal |
| xsd:double | Double | xsd:double |
Whether this matters, depends on the data. For use as a failthful, general purpose database dump format, value encoding should not be used.
Prefixes
The use of prefixes can reduce the size of the data because it replaces common character sequences with a smaller string.
There are no detailed syntax rules for prefixes, unlike
Turtle
and SPARQL where, for
example, the local part can not include a #
(it must be \#
) and the
local part can’t start with a .
.
In RDf Thrift, the prefix part is any string, the local part is any string. The reconsistuted URI is the concatenation of the URI for the prefix and the local part.
There are no escape sequences in either part. Neither %
nor \
are special.
Thrift encoding of RDF Terms
RDF Thrift uses the Thrift compact protocol.
struct RDF_IRI {
1: required string iri
}
struct RDF_PrefixName {
1: required string prefix ;
2: required string localName ;
}
struct RDF_BNode {
1: required string label
}
struct RDF_Literal {
1: required string lex ;
2: optional string langtag ;
3: optional string datatype ;
4: optional RDF_PrefixName dtPrefix ;
}
struct RDF_Decimal {
1: required i64 value ;
2: required i32 scale ;
}
struct RDF_VAR {
1: required string name ;
}
struct RDF_ANY { }
struct RDF_UNDEF { }
struct RDF_REPEAT { }
union RDF_Term {
1: RDF_IRI iri
2: RDF_BNode bnode
3: RDF_Literal literal
4: RDF_PrefixName prefixName
5: RDF_VAR variable
6: RDF_ANY any
7: RDF_UNDEF undefined
8: RDF_REPEAT repeat
9: RDF_Triple tripleTerm # RDF-star
# Value forms of literals.
10: i64 valInteger
11: double valDouble
12: RDF_Decimal valDecimal
}
Thrift encoding of Triples, Quads and rows.
struct RDF_Triple {
1: required RDF_Term S
2: required RDF_Term P
3: required RDF_Term O
}
struct RDF_Quad {
1: required RDF_Term S
2: required RDF_Term P
3: required RDF_Term O
4: optional RDF_Term G
}
struct RDF_PrefixDecl {
1: required string prefix ;
2: required string uri ;
}
Thrift encoding of RDF Graphs and RDF Datasets
union RDF_StreamRow {
1: RDF_PrefixDecl prefixDecl
2: RDF_Triple triple
3: RDF_Quad quad
}
RDF Graphs are encoded as a stream of RDF_Triple
and RDF_PrefixDecl
.
RDF Datasets are encoded as a stream of RDF_Triple
, RDF-Quad
and RDF_PrefixDecl
.
Thrift encoding of SPARQL Result Sets
A SPARQL Result Set is encoded as a list of variables (the header), then a stream of rows (the results).
struct RDF_VarTuple {
1: list<RDF_VAR> vars
}
struct RDF_DataTuple {
1: list<RDF_Term> row
}


Imagine the grid where every pixel is open with some probability p. What is the probability to get from left side of the grid to right via open pixels (site percolation)?
**Result**:
Probability to enable a pixel (0 to 100):
Pixel size:
Note: If you want to get an idea of critical percolation threshold (high probability that long-range connectivity occurs), it is possible to run multiple iterations for all probabilities (0 to 100) and calculate how many times long-range connectivity occured. In order to do it, open developer’s console in browser and execute:
>> simulate(20); //for every input prob runs 20 iterations to calculate prob of long-range connectivity
probability to enable pixel = 0 probability of long-range connectivity = 0
probability to enable pixel = 0.01 probability of long-range connectivity = 0
....
probability to enable pixel = 0.59 probability of long-range connectivity = 0
probability to enable pixel = 0.6 probability of long-range connectivity = 0.15
probability to enable pixel = 0.61 probability of long-range connectivity = 0.35
probability to enable pixel = 0.62 probability of long-range connectivity = 0.7
probability to enable pixel = 0.63 probability of long-range connectivity = 0.9
...


TOP
Section: Linux User's Manual (1)Updated: September 2002
Index Return to Main Contents
NAME
top - display Linux tasks
SYNOPSIS
top -hv | -abcHimMsS -d delay -n iterations -p pid [, pid ...]The traditional switches '-' and whitespace are optional.
DESCRIPTION
The top program provides a dynamic real-time view of a running system. It can display system summary information as well as a list of tasks currently being managed by the Linux kernel. The types of system summary information shown and the types, order and size of information displayed for tasks are all user configurable and that configuration can be made persistent across restarts.The program provides a limited interactive interface for process manipulation as well as a much more extensive interface for personal configuration -- encompassing every aspect of its operation. And while top is referred to throughout this document, you are free to name the program anything you wish. That new name, possibly an alias, will then be reflected on top's display and used when reading and writing a configuration file.
OVERVIEW
Documentation
The remaining Table of Contents1. COMMAND-LINE Options
2. FIELDS / Columns
a. DESCRIPTIONS of Fields
b. SELECTING and ORDERING Columns
3. INTERACTIVE Commands
a. GLOBAL Commands
b. SUMMARY Area Commands
c. TASK Area Commands
d. COLOR Mapping
4. ALTERNATE-DISPLAY Mode
a. WINDOWS Overview
b. COMMANDS for Windows
5. FILES
a. SYSTEM Configuration File
b. PERSONAL Configuration File
6.  Kernel Magic
b. Bouncing Windows
c. The Big Bird Window
7. BUGS, 8. HISTORY Former top, 9. AUTHOR, 10. SEE ALSO
Operation
When operating top, the two most important keys are help ('h' or '?') and quit ('q') key. Alternatively, you could simply use the traditional interrupt key ('^C') when you're done.When you start top for the first time, you'll be presented with the traditional screen elements: 1) Summary Area; 2) Message/Prompt Line; 3) Columns Header; 4) Task Area. There will, however, be some differences when compared to the former top.
- Highlighting
-
Summary_Area:
There is no highlighting for load/uptime and only values are highlighted for
other elements.
Task_Area: Tasks running (or ready to run) will be highlighted, and bold is only one way of emphasizing such processes.
- Content/Labels
-
Summary_Area:
The program name is shown, perhaps a symlink or alias.
The Cpu(s) state label hints at other possibilities.
The memory stats use a lower case 'k'.
Columns_Header: Will show a new field and some changed labels. More new fields will be found as you customize your top.
Note: the width of top's display will be limited to 512 positions. Displaying all fields requires a minimum of 160 characters. The remaining width could be used for the 'Command' column.
Startup Defaults
The following startup defaults assume no configuration file, thus no user customizations. Even so, items shown with an asterisk ('*') could be overridden through the command-line.
 COMMAND-LINE Options
The command-line syntax for top consists of:
-hv | -abcHimMsS -d delay -n iterations -p pid [,pid...]
The typically mandatory switches ('-') and even whitespace are completely optional.
- -a : Sort by memory usage
-
This switch makes top to sort the processes by allocated memory
- -b : Batch mode operation
-
Starts top in 'Batch mode', which could be useful for sending output
from top to other programs or to a file.
In this mode, top will not accept input and runs until the iterations
limit you've set with the '-n' command-line option or until killed.
- -c : Command line/Program name toggle
-
Starts top with the last remembered 'c' state reversed.
Thus, if top was displaying command lines, now that field will show program
names, and visa versa.
See the 'c' interactive command for additional information.
- -d : Delay time interval as: -d ss.tt (seconds.tenths)
-
Specifies the delay between screen updates, and overrides the corresponding
value in one's personal configuration file or the startup default.
Later this can be changed with the 'd' or 's' interactive commands.
Fractional seconds are honored, but a negative number is not allowed. In all cases, however, such changes are prohibited if top is running in 'Secure mode', except for root (unless the 's' command-line option was used). For additional information on 'Secure mode' see topic 5a. SYSTEM Configuration File.
- -h : Help
-
Show library version and the usage prompt, then quit.
- -H : Threads toggle
-
Starts top with the last remembered 'H' state reversed.
When this toggle is On, all individual threads will be displayed. Otherwise, top displays a summation of all threads in a process.
- -i : Idle Processes toggle
-
Starts top with the last remembered 'i' state reversed.
When this toggle is Off, tasks that are idled or zombied will not be displayed.
- -m : VIRT/USED toggle
-
Reports USED (sum of process rss and swap total count) instead of VIRT
- -M : Detect memory units
-
Show memory units (k/M/G) and display floating point values in the memory
summary.
- -n : Number of iterations limit as: -n number
-
Specifies the maximum number of iterations, or frames, top should
produce before ending.
- -p : Monitor PIDs as: -pN1 -pN2 ... or -pN1, N2 [,...]
- Monitor only processes with specified process IDs. This option can be given up to 20 times, or you can provide a comma delimited list with up to 20 pids. Co-mingling both approaches is permitted.
This is a command-line option only. And should you wish to return to normal operation, it is not necessary to quit and and restart top -- just issue the '=' interactive command.
- -s
: Secure mode operation - Monitor only processes with specified process IDs. This option can be given up to 20 times, or you can provide a comma delimited list with up to 20 pids. Co-mingling both approaches is permitted.
-
Starts top with secure mode forced, even for root.
This mode is far better controlled through the system configuration file
(see topic 5. FILES).
- -S : Cumulative time mode toggle
-
Starts top with the last remembered 'S' state reversed.
When 'Cumulative mode' is On, each process is listed with the cpu
time that it and its dead children have used.
See the 'S' interactive command for additional information regarding this mode.
- -u : Monitor by user as: -u somebody
- Monitor only processes with an effective UID or user name matching that given.
- -U
: Monitor by user as: -U somebody- Monitor only processes with a UID or user name matching that given. This matches real, effective, saved, and filesystem UIDs.
- -v
: Version - Monitor only processes with an effective UID or user name matching that given.
-
Show library version and the usage prompt, then quit.
2. FIELDS / Columns
2a. DESCRIPTIONS of Fields
Listed below are top's available fields. They are always associated with the letter shown, regardless of the position you may have established for them with the 'o' (Order fields) interactive command.Any field is selectable as the sort field, and you control whether they are sorted high-to-low or low-to-high. For additional information on sort provisions see topic 3c. TASK Area Commands.
- a: PID -- Process Id
-
The task's unique process ID, which periodically wraps,
though never restarting at zero.
- b: PPID -- Parent Process Pid
-
The process ID of a task's parent.
- c: RUSER -- Real User Name
-
The real user name of the task's owner.
- d: UID -- User Id
-
The effective user ID of the task's owner.
- e: USER -- User Name
-
The effective user name of the task's owner.
- f: GROUP -- Group Name
-
The effective group name of the task's owner.
- g: TTY -- Controlling Tty
-
The name of the controlling terminal.
This is usually the device (serial port, pty, etc.) from which the
process was started, and which it uses for input or output.
However, a task need not be associated with a terminal, in which case
you'll see '?' displayed.
- h: PR -- Priority
-
The priority of the task.
- i: NI -- Nice value
-
The nice value of the task.
A negative nice value means higher priority, whereas a positive nice value
means lower priority.
Zero in this field simply means priority will not be adjusted in determining a
task's dispatchability.
- j: P -- Last used CPU (SMP)
-
A number representing the last used processor.
In a true SMP environment this will likely change frequently since the kernel
intentionally uses weak affinity.
Also, the very act of running top may break this weak affinity and cause more
processes to change CPUs more often (because of the extra demand for
cpu time).
- k: %CPU -- CPU usage
-
The task's share of the elapsed CPU time since the last screen update,
expressed as a percentage of total CPU time.
In a true SMP environment, if 'Irix mode' is Off, top will operate
in 'Solaris mode' where a task's cpu usage will be divided by the total
number of CPUs.
You toggle 'Irix/Solaris' modes with the 'I' interactive command.
- l: TIME -- CPU Time
-
Total CPU time the task has used since it started.
When 'Cumulative mode' is On, each process is listed with the cpu
time that it and its dead children has used.
You toggle 'Cumulative mode' with 'S', which is a command-line option and an interactive command.
See the 'S' interactive command for additional information regarding this mode.
- m: TIME+ -- CPU Time, hundredths
-
The same as 'TIME', but reflecting more granularity through hundredths of
a second.
- n: %MEM -- Memory usage (RES)
-
A task's currently used share of available physical memory.
- o: VIRT -- Virtual Image (kb)
-
The total amount of virtual memory used by the task.
It includes all code, data and shared libraries plus pages that have been
swapped out. (Note: you can define the STATSIZE=1 environment variable and the VIRT
will be calculated from the /proc/#/state VmSize field.)
- p: SWAP -- Swapped size (kb)
-
Per-process swap values are now taken from /proc/#/status VmSwap field.
- q: RES -- Resident size (kb)
-
The non-swapped physical memory a task has used.
RES = CODE + DATA.
- r: CODE -- Code size (kb)
-
The amount of physical memory devoted to executable code, also known as
the 'text resident set' size or TRS.
- s: DATA -- Data+Stack size (kb)
-
The amount of physical memory devoted to other than executable code, also known as
the 'data resident set' size or DRS.
- t: SHR -- Shared Mem size (kb)
-
The amount of shared memory used by a task.
It simply reflects memory that could be potentially shared with
other processes.
- u: nFLT -- Page Fault count
-
The number of major page faults that have occurred for a task.
A page fault occurs when a process attempts to read from or write to a virtual
page that is not currently present in its address space.
A major page fault is when disk access is involved in making that
page available.
- v: nDRT -- Dirty Pages count
-
The number of pages that have been modified since they were last
written to disk.
Dirty pages must be written to disk before the corresponding physical memory
location can be used for some other virtual page.
- w: S -- Process Status
-
The status of the task which can be one of:
'D' = uninterruptible sleep
'R' = running
'S' = sleeping
'T' = traced or stopped
'Z' = zombieTasks shown as running should be more properly thought of as 'ready to run' -- their task_struct is simply represented on the Linux run-queue. Even without a true SMP machine, you may see numerous tasks in this state depending on top's delay interval and nice value.
- x: Command -- Command line or Program name
-
Display the command line used to start a task or the name of the associated
program.
You toggle between command line and name with 'c', which is both
a command-line option and an interactive command.
When you've chosen to display command lines, processes without a command line (like kernel threads) will be shown with only the program name in parentheses, as in this example:
( mdrecoveryd )Either form of display is subject to potential truncation if it's too long to fit in this field's current width. That width depends upon other fields selected, their order and the current screen width.
Note: The 'Command' field/column is unique, in that it is not fixed-width. When displayed, this column will be allocated all remaining screen width (up to the maximum 512 characters) to provide for the potential growth of program names into command lines.
- y: WCHAN -- Sleeping in Function
-
Depending on the availability of the kernel link map ('System.map'), this field
will show the name or the address of the kernel function in which the task is
currently sleeping.
Running tasks will display a dash ('-') in this column.
Note: By displaying this field, top's own working set will be increased by over 700Kb. Your only means of reducing that overhead will be to stop and restart top.
- z: Flags -- Task Flags
-
This column represents the task's current scheduling flags which are
expressed in hexadecimal notation and with zeros suppressed.
These flags are officially documented in <linux/sched.h>.
Less formal documentation can also be found on the 'Fields select'
and 'Order fields' screens.
2b. SELECTING and ORDERING Columns
After pressing the interactive commands 'f' (Fields select) or 'o' (Order fields) you will be shown a screen containing the current fields string followed by names and descriptions for all fields.Here is a sample fields string from one of top's four windows/field groups and an explanation of the conventions used:
- -
-
Sample fields string:
ANOPQRSTUVXbcdefgjlmyzWHIK - -
- The order of displayed fields corresponds to the order of the letters in that string.
- -
-
If the letter is upper case the corresponding field itself will
then be shown as part of the task display (screen width permitting).
This will also be indicated by a leading asterisk ('*'), as in this excerpt:
...
* K: %CPU = CPU usage
l: TIME = CPU Time
m: TIME+ = CPU Time, hundredths
* N: %MEM = Memory usage (RES)
* O: VIRT = Virtual Image (kb)
... - Fields select screen -- the 'f' interactive command
-
You toggle the display of a field by simply pressing the
corresponding letter.
- Order fields screen -- the 'o' interactive command
-
You move a field to the left by pressing the corresponding
upper case letter and to the right with the lower case
letter.
2c. SUMMARY Area Fields
The summary area fields describing CPU statistics are abbreviated. They provide information about times spent in:us = user mode
sy = system mode
ni = low priority user mode (nice)
id = idle task
wa = I/O waiting
hi = servicing IRQs
si = servicing soft IRQs
st = steal (time given to other DomU instances)
3. INTERACTIVE Commands
Listed below is a brief index of commands within categories. Some commands appear more than once -- their meaning or scope may vary depending on the context in which they are issued.
3a. GLOBAL_Commands
<Ret/Sp> ?, =, A, B, d, G, h, I, k, q, r, s, W, Z
3b. SUMMARY_Area_Commands
l, m, t, 1
3c. TASK_Area_Commands
Appearance: b, x, y, z
Content: c, f, H, o, S, u
Size: #, i, n
Sorting: <, >, F, O, R
3d. COLOR_Mapping
<Ret>, a, B, b, H, M, q, S, T, w, z, 0 - 7
4b. COMMANDS_for_Windows
-, _, =, +, A, a, G, g, w
3a. GLOBAL Commands
The global interactive commands are always available in both full-screen mode and alternate-display mode. However, some of these interactive commands are not available when running in 'Secure mode'.If you wish to know in advance whether or not your top has been secured, simply ask for help and view the system summary on the second line.
- <Enter> or <Space> :Refresh_Display
-
These commands do nothing, they are simply ignored.
However, they will awaken top and following receipt of any input
the entire display will be repainted.
Use either of these keys if you have a large delay interval and wish to see current status,
- '?' or 'h' :Help
-
There are two help levels available.
The first will provide a reminder of all the basic interactive commands.
If top is secured, that screen will be abbreviated.
Typing 'h' or '?' on that help screen will take you to help for those interactive commands applicable to alternate-display mode.
- '=' :Exit_Task_Limits
-
Removes restrictions on which tasks are shown.
This command will reverse any 'i' (idle tasks) and 'n' (max tasks) commands
that might be active.
It also provides for an 'exit' from PID monitoring.
See the '-p' command-line option for a discussion of PID monitoring.
When operating in alternate-display mode this command has a slightly broader meaning.
- 'A' :Alternate_Display_Mode_toggle
-
This command will switch between full-screen mode and alternate-display mode.
See topic 4. ALTERNATE-DISPLAY Mode and the 'G' interactive command for insight into
'current' windows and field groups.
- 'B' :Bold_Disable/Enable_toggle
-
This command will influence use of the 'bold' terminfo capability and
alters both the summary area and task area for the 'current' window.
While it is intended primarily for use with dumb terminals, it can be
applied anytime.
Note: When this toggle is On and top is operating in monochrome mode, the entire display will appear as normal text. Thus, unless the 'x' and/or 'y' toggles are using reverse for emphasis, there will be no visual confirmation that they are even on.
- * 'd' or 's' :Change_Delay_Time_interval
-
You will be prompted to enter the delay time, in seconds, between
display updates.
Fractional seconds are honored, but a negative number is not allowed. Entering 0 causes (nearly) continuous updates, with an unsatisfactory display as the system and tty driver try to keep up with top's demands. The delay value is inversely proportional to system loading, so set it with care.
If at any time you wish to know the current delay time, simply ask for help and view the system summary on the second line.
- 'G' :Choose_Another_Window/Field_Group
-
You will be prompted to enter a number between 1 and 4 designating the
window/field group which should be made the 'current' window.
You will soon grow comfortable with these 4 windows, especially after
experimenting with alternate-display mode.
- 'I' :Irix/Solaris_Mode_toggle
-
When operating in 'Solaris mode' ('I' toggled Off), a task's cpu usage
will be divided by the total number of CPUs.
After issuing this command, you'll be informed of the new state of this toggle.
- 'u' :select a user
-
You will be prompted for a UID or username. Only processes
belonging to the selected user will be displayed. This option
matches on the effective UID.
- 'U' :select a user
-
You will be prompted for a UID or username. Only processes
belonging to the selected user will be displayed. This option
matches on the real, effective, saved, and filesystem UID.
- * 'k' :Kill_a_task
-
You will be prompted for a PID and then the signal to send.
The default signal, as reflected in the prompt, is SIGTERM.
However, you can send any signal, via number or name.
If you wish to abort the kill process, do one of the following depending on your progress:
1) at the pid prompt, just press <Enter>
2) at the signal prompt, type 0 - 'q' :Quit
-
- * 'r' :Renice_a_Task
-
You will be prompted for a PID and then the value to nice it to.
Entering a positive value will cause a process to lose priority.
Conversely, a negative value will cause a process to be viewed more
favorably by the kernel.
- 'W' :Write_the_Configuration_File
-
This will save all of your options and toggles plus the current
display mode and delay time.
By issuing this command just before quitting top, you will be able restart
later in exactly that same state.
- 'Z' :Change_Color_Mapping
- This key will take you to a separate screen where you can change the colors for the 'current' window, or for all windows. For details regarding this interactive command see topic 3d. COLOR Mapping.
- *
- The commands shown with an asterisk ('*') are not available in 'Secure mode', nor will they be shown on the level-1 help screen.
- This key will take you to a separate screen where you can change the colors for the 'current' window, or for all windows. For details regarding this interactive command see topic 3d. COLOR Mapping.
3b. SUMMARY Area Commands
The summary area interactive commands are always available in both full-screen mode and alternate-display mode. They affect the beginning lines of your display and will determine the position of messages and prompts.These commands always impact just the 'current' window/field group. See topic 4. ALTERNATE-DISPLAY Mode and the 'G' interactive command for insight into 'current' windows and field groups.
- 'l' :Toggle_Load_Average/Uptime -- On/Off
-
This is also the line containing the program name (possibly an alias) when
operating in full-screen mode or the 'current' window name when operating in alternate-display mode.
- 'm' :Toggle_Memory/Swap_Usage -- On/Off
-
This command affects two summary area lines.
- 't' :Toggle_Task/Cpu_States -- On/Off
-
This command affects from 2 to many summary area lines, depending on the state
of the '1' toggle and whether or not top is running under true SMP.
- '1' :Toggle_Single/Separate_Cpu_States -- On/Off
-
This command affects how the 't' command's Cpu States portion is shown.
Although this toggle exists primarily to serve massively-parallel SMP machines,
it is not restricted to solely SMP environments.
When you see 'Cpu(s):' in the summary area, the '1' toggle is On and all cpu information is gathered in a single line. Otherwise, each cpu is displayed separately as: 'Cpu0, Cpu1, ...'
Note: If the entire summary area has been toggled Off for any window, you would be left with just the message line. In that way, you will have maximized available task rows but (temporarily) sacrificed the program name in full-screen mode or the 'current' window name when in alternate-display mode.
3c. TASK Area Commands
The task area interactive commands are always available in full-screen mode.The task area interactive commands are never available in alternate-display mode if the 'current' window's task display has been toggled Off (see topic 4. ALTERNATE-DISPLAY Mode).
APPEARANCE of task window
The following commands will also be influenced by the state of the
global 'B' (bold disable) toggle.
- 'b' :Bold/Reverse_toggle
-
This command will impact how the 'x' and 'y' toggles are displayed.
Further, it will only be available when at least one of those toggles is On.
- 'x' :Column_Highlight_toggle
-
Changes highlighting for the current sort field.
You probably don't need a constant visual reminder of the sort field and
top hopes that you always run with 'column highlight' Off, due to the cost
in path-length.
If you forget which field is being sorted this command can serve as a quick visual reminder.
- 'y' :Row_Highlight_toggle
-
Changes highlighting for "running" tasks.
For additional insight into this task state, see topic 2a. DESCRIPTIONS of Fields,
Process Status.
Use of this provision provides important insight into your system's health. The only costs will be a few additional tty escape sequences.
- 'z' :Color/Monochrome_toggle
-
Switches the 'current' window between your last used color scheme and the older form
of black-on-white or white-on-black.
This command will alter both the summary area and task area but does not affect the
state of the 'x', 'y' or 'b' toggles.
CONTENT of task window
- 'c' :Command_Line/Program_Name_toggle
-
This command will be honored whether or not the 'Command' column
is currently visible.
Later, should that field come into view, the change you applied will be seen.
- 'f' and 'o' :Fields_select or Order_fields
-
These keys display separate screens where you can change which
fields are displayed and their order.
For additional information on these interactive commands
see topic 2b. SELECTING and ORDERING Columns.
- 'H' :Threads_toggle
-
When this toggle is On, all individual threads will be displayed. Otherwise, top displays a summation of all threads in a process.
- 'S' :Cumulative_Time_Mode_toggle
-
When 'Cumulative mode' is On, each process is listed with the cpu
time that it and its dead children have used.
When Off, programs that fork into many separate tasks will appear less demanding. For programs like 'init' or a shell this is appropriate but for others, like compilers, perhaps not. Experiment with two task windows sharing the same sort field but with different 'S' states and see which representation you prefer.
After issuing this command, you'll be informed of the new state of this toggle. If you wish to know in advance whether or not 'Cumulative mode' is in effect, simply ask for help and view the window summary on the second line.
- 'u' :Show_Specific_User_Only
-
You will be prompted to enter the name of the user to display.
Thereafter, in that task window only matching User ID's will be shown, or possibly
no tasks will be shown.
Later, if you wish to monitor all tasks again, re-issue this command but just press <Enter> at the prompt, without providing a name.
SIZE of task window
- 'i' :Idle_Processes_toggle
-
Displays all tasks or just active tasks.
When this toggle is Off, idled or zombied processes will not be displayed.
If this command is applied to the last task display when in alternate-display mode, then it will not affect the window's size, as all prior task displays will have already been painted.
- 'n' or '#' :Set_Maximum_Tasks
-
You will be prompted to enter the number of tasks to display.
The lessor of your number and available screen rows will be used.
When used in alternate-display mode, this is the command that gives you precise control over the size of each currently visible task display, except for the very last. It will not affect the last window's size, as all prior task displays will have already been painted.
Note: If you wish to increase the size of the last visible task display when in alternate-display mode, simply decrease the size of the task display(s) above it.
SORTING of task window
For compatibility, this top supports most of the former top sort keys.
Since this is primarily a service to former top users, these commands do
not appear on any help screen.
command sorted field supported
A start time (non-display) No
M %MEM Yes
N PID Yes
P %CPU Yes
T TIME+ Yes
Before using any of the following sort provisions, top suggests that you temporarily turn on column highlighting using the 'x' interactive command. That will help ensure that the actual sort environment matches your intent.
The following interactive commands will only be honored when the
current sort field is visible.
The sort field might not be visible because:
1) there is insufficient Screen Width
2) the 'f' interactive command turned it Off
- '<' :Move_Sort_Field_Left
-
Moves the sort column to the left unless the current sort field is
the first field being displayed.
- '>' :Move_Sort_Field_Right
-
Moves the sort column to the right unless the current sort field is
the last field being displayed.
The following interactive commands will always be honored whether or not the current sort field is visible.
- 'F' or 'O' :Select_Sort_Field
-
These keys display a separate screen where you can change which field
is used as the sort column.
If a field is selected which was not previously being displayed, it will be forced On when you return to the top display. However, depending upon your screen width and the order of your fields, this sort field may not be displayable.
This interactive command can be a convenient way to simply verify the current sort field, when running top with column highlighting turned Off.
- 'R' :Reverse/Normal_Sort_Field_toggle
-
Using this interactive command you can alternate between high-to-low and low-to-high sorts.
Note: Field sorting uses internal values, not those in column display. Thus, the TTY and WCHAN fields will violate strict ASCII collating sequence.
3d. COLOR Mapping
When you issue the 'Z' interactive command, you will be presented with a separate screen. That screen can be used to change the colors in just the 'current' window or in all four windows before returning to the top display.
Available interactive commands
4 upper case letters to select a target
8 numbers to select a color
normal toggles available
'B' :bold disable/enable
'b' :running tasks "bold"/reverse
'z' :color/mono
other commands available
'a'/'w' :apply, then go to next/prior
<Enter> :apply and exit
'q' :abandon current changes and exit
If your use 'a' or 'w' to cycle the targeted window, you will have applied the color scheme that was displayed when you left that window. You can, of course, easily return to any window and reapply different colors or turn colors Off completely with the 'z' toggle.
The Color Mapping screen can also be used to change the 'current' window/field group in either full-screen mode or alternate-display mode. Whatever was targeted when 'q' or <Enter> was pressed will be made current as you return to the top display.
4. ALTERNATE-DISPLAY Mode
4a. WINDOWS Overview
- Field Groups/Windows:
-
In full-screen mode there is a single window represented by the entire screen. That single window can still be changed to display 1 of 4 different field groups (see the 'G' interactive command, repeated below). Each of the 4 field groups has a unique separately configurable summary area and its own configurable task area.In alternate-display mode, those 4 underlying field groups can now be made visible simultaneously, or can be turned Off individually at your command.
The summary area will always exist, even if it's only the message line. At any given time only one summary area can be displayed. However, depending on your commands, there could be from zero to four separate task displays currently showing on the screen.
- Current Window:
-
The 'current' window is the window associated with the summary area and the window to which task related commands are always directed. Since in alternate-display mode you can toggle the task display Off, some commands might be restricted for the 'current' window.A further complication arises when you have toggled the first summary area line Off. With the loss of the window name (the 'l' toggled line), you'll not easily know what window is the 'current' window.
4b. COMMANDS for Windows
- '-' and '_' :Show/Hide_Window(s)_toggles
-
The '-' key turns the 'current' window's task display On and Off.
When On, that task area will show a minimum of the columns header you've
established with the 'f' and 'o' commands.
It will also reflect any other task area options/toggles you've applied yielding
zero or more tasks.
The '_' key does the same for all task displays. In other words, it switches between the currently visible task display(s) and any task display(s) you had toggled Off. If all 4 task displays are currently visible, this interactive command will leave the summary area as the only display element.
- * '=' and '+' :Equalize_(re-balance)_Window(s)
-
The '=' key forces the 'current' window's task display to be visible.
It also reverses any 'i' (idle tasks) and 'n' (max tasks) commands that might
be active.
The '+' key does the same for all windows. The four task displays will reappear, evenly balanced. They will also have retained any customizations you had previously applied, except for the 'i' (idle tasks) and 'n' (max tasks) commands.
- * 'A' :Alternate_Display_Mode_toggle
-
This command will switch between full-screen mode and alternate-display mode.
The first time you issue this command, all four task displays will be shown. Thereafter when you switch modes, you will see only the task display(s) you've chosen to make visible.
- * 'a' and 'w' :Next_Window_Forward/Backward
-
This will change the 'current' window, which in turn changes the window to which
commands are directed.
These keys act in a circular fashion so you can reach any desired 'current' window
using either key.
Assuming the window name is visible (you have not toggled 'l' Off), whenever the 'current' window name loses its emphasis/color, that's a reminder the task display is Off and many commands will be restricted.
- * 'G' :Choose_Another_Window/Field_Group
-
You will be prompted to enter a number between 1 and 4 designating the
window/field group which should be made the 'current' window.
In full-screen mode, this command is necessary to alter the 'current' window. In alternate-display mode, it is simply a less convenient alternative to the 'a' and 'w' commands.
- 'g' :Change_Window/Field_Group_Name
-
You will be prompted for a new name to be applied to the 'current' window.
It does not require that the window name be visible
(the 'l' toggle to be On).
- *
-
The interactive commands shown with an asterisk ('*') have use beyond alternate-display mode.
'=', 'A', 'G' are always available
'a', 'w' act the same when color mapping
5. FILES
5a. SYSTEM Configuration File
The presence of this file will influence which version of the 'help' screen is shown to an ordinary user. More importantly, it will limit what ordinary users are allowed to do when top is running. They will not be able to issue the following commands.k Kill a task
r Renice a task
d or s Change delay/sleep interval
The system configuration file is not created by top. Rather, you create this file manually and place it in the /etc directory. Its name must be 'toprc' and must have no leading '.' (period). It must have only two lines.
Here is an example of the contents of /etc/toprc:
s # line 1: 'secure' mode switch
5.0 # line 2: 'delay' interval in seconds
5b. PERSONAL Configuration File
This file is written as '$HOME/.your-name-4-top' + 'rc'. Use the 'W' interactive command to create it or update it.
Here is the general layout:
global # line 1: the program name/alias notation
" # line 2: id,altscr,irixps,delay,curwin
per ea # line a: winname,fieldscur
window # line b: winflags,sortindx,maxtasks
" # line c: summclr,msgsclr,headclr,taskclr
If the $HOME variable is not present, top will try to write the personal configuration file to the current directory, subject to permissions.
6. STUPID TRICKS Sampler
Many of these 'tricks' work best when you give top a scheduling boost. So plan on starting him with a nice value of -10, assuming you've got the authority.6a.
- -*-
-
The user interface, through prompts and help, intentionally implies
that the delay interval is limited to tenths of a second.
However, you're free to set any desired delay.
If you want to see Linux at his scheduling best, try a delay of .09
seconds or less.
For this experiment, under x-windows open an xterm and maximize it. Then do the following:
. provide a scheduling boost and tiny delay via:
nice -n -10 top -d.09
. keep sorted column highlighting Off to minimize
path length
. turn On reverse row highlighting for emphasis
. try various sort columns (TIME/MEM work well),
and normal or reverse sorts to bring the most
active processes into viewWhat you'll see is a very busy Linux doing what he's always done for you, but there was no program available to illustrate this.
- -*-
-
Under an xterm using 'white-on-black' colors, try setting top's task color
to black and be sure that task highlighting is set to bold, not reverse.
Then set the delay interval to around .3 seconds.
After bringing the most active processes into view, what you'll see are the ghostly images of just the currently running tasks.
- -*-
-
Delete the existing rcfile, or create a new symlink.
Start this new version then type 'T' (a secret key, see topic 3c. TASK Area
Commands, Sorting) followed by 'W' and 'q'.
Finally, restart the program with -d0 (zero delay).
Your display will be refreshed at three times the rate of the former top, a 300% speed advantage. As top climbs the TIME ladder, be as patient as you can while speculating on whether or not top will ever reach the top.
6b.
- -*-
-
With 3 or 4 task displays visible, pick any window other than the last
and turn idle processes Off.
Depending on where you applied 'i', sometimes several task displays are bouncing and
sometimes it's like an accordion, as top tries his best to allocate space.
- -*-
-
Set each window's summary lines differently: one with no memory; another with
no states; maybe one with nothing at all, just the message line.
Then hold down 'a' or 'w' and watch a variation on bouncing windows --
hopping windows.
- -*-
-
Display all 4 windows and for each, in turn, set idle processes to Off.
You've just entered the "extreme bounce" zone.
6c.
- -*-
-
Display all 4 windows and make sure that 1:Def is the 'current' window.
Then, keep increasing window size until the all the other task displays
are "pushed out of the nest".
When they've all been displaced, toggle between all visible/invisible windows. Then ponder this:
is top fibbing or telling honestly your imposed truth?
7. BUGS
Send bug reports to:Albert D. Cahalan<EMAIL_ADDRESS>The top command calculates Cpu(s) by looking at the change in CPU time values between samples. When you first run it, it has no previous sample to compare to, so these initial values are the percentages since boot. It means you need at least two loops or you have to ignore summary output from the first loop. This is problem for example for batch mode. There is a possible workaround if you define the CPULOOP=1 environment variable. The top command will be run one extra hidden loop for CPU data before standard output.
8. HISTORY Former top
The original top was written by Roger Binns, based on Branko Lankester's<EMAIL_ADDRESS>ps program.Robert Nation<EMAIL_ADDRESS>adapted it for the proc file system.
Helmut Geyer<EMAIL_ADDRESS>added support for configurable fields.
Plus many other individuals contributed over the years.
9. AUTHOR
This entirely new and enhanced replacement was written by:Jim / James C. Warner<EMAIL_ADDRESS>With invaluable help from:
Albert D. Cahalan<EMAIL_ADDRESS>Craig Small<EMAIL_ADDRESS>10. SEE ALSO
free(1), ps(1), uptime(1), atop(1), slabtop(1), vmstat(8), w(1).
Index
- NAME
- SYNOPSIS
- DESCRIPTION
- OVERVIEW
- 1. COMMAND-LINE Options
- 2. FIELDS / Columns
- 3. INTERACTIVE Commands
- 4. ALTERNATE-DISPLAY Mode
- 5. FILES
- 6. STUPID TRICKS Sampler
- 7. BUGS
- 8. HISTORY Former top
- 9. AUTHOR
- 10. SEE ALSO
This document was created by man2html, using the manual pages.
Time: 05:29:11 GMT, December 24, 2015


Overdose alert issued for Penticton
by Kathy MichaelsPenticton drug users are being urged to exercise caution in the wake of a recent increase in suspected drug overdoses in the area.
Interior Health is reporting a rise in the number of opioid overdoses in the Penticton community after people have used what was believed to be a stimulant or upper, such as amphetamines or methamphetamines.
Anyone using illegal drugs is advised to take steps to reduce the risk:
For safety sake:
- Get your drugs checked for the presence of fentanyl available at the SOWINS (South Okanagan Women in Need Society) mobile outreach van. Call or text<PHONE_NUMBER>. For more information visit: www.drugchecking.ca
- Remember, smoking substances can still lead to overdose, take measures to prevent overdose.
- Avoid using different drugs at the same time or using drugs and alcohol together.
- Don’t use alone. Leave the door unlocked. Tell someone to check on you.
- Test by using a small amount, then go slow.
- Carry a Naloxone kit and know how to use it.
- Use at overdose prevention or supervised consumption site if one is near you. Know the signs of overdose and how to respond
- Recognize the signs of an OD: slow or no breathing, gurgling or gasping, lips/fingertips turning blue, difficult to rouse (awaken), non-responsive.
- Call 9-1-1 immediately
- Open airway and give rescue breaths
- Give naloxone (Narcan) if you have it.
For more resources and links related to overdose and substance use visit: https://www.interiorhealth.ca/AboutUs/Leadership/MHO/Pages/PHEmergency.aspx.


Latest Blog
-
This is just a place holder.
April 02, 2012You can remove any link to our website from this website template, you're free to use this website template without linking back to us.…
-
This is just a place holder.
May 29, 2012You can remove any link to our website from this website template, you're free to use this website template without linking back to us.…
Testimonials
"You can remove any link to our website from this website template, you're free to use this website template without linking back to us. This is just a place holder, so you can see what the site would look like." - Juan De La Cruz


GROOVE (Sony Classics) Starring: Lola Glaudini, Hamish Linklater, Denny Kirkwood, Mackenzie Firgens, Steve Van Wormer, Vince Riverside, Rachel True. Screenplay: Greg Harrison. Producers: Greg Harrison and Danielle Renfrew. Director: Greg Harrison.  Reviewed by Scott Renshaw.
That uniquely fin-de-siecle phenomenon known as the "rave" gets its sociological moment in the sun in GROOVE, a film that will be more effective as cultural curiosity a few years hence than it is as a story today. Greg Harrison's episodic tale opens with a group of self-styled San Francisco party masters, led by Ernie (Steve Van Wormer), selecting an abandoned warehouse for the following night's party. Then the word goes out to email and pagers, bringing together a collection of characters for dancing into the wee hours. Colin (Denny Kirkwood) brings along his more straight-laced brother David (Hamish Linklater), who expects he'll want to leave early. Colin also brings along his girlfriend Harmony (Mackenzie Firgens), to whom he intends to propose, while David hooks up with recently transplanted New Yorker Leyla (Lola Glaudini). As the DJs spin on, so do their stories and several others spin along for 86 minutes.
That time is moderately well-spent as an introduction to the rave sub-culture. Harrison drops in a few bits of memorable lingo ("buying a vowel" for purchasing either acid or Ecstasy; "the nod" for the party-goer's acknowledgement of the party-thrower's success; "baked, not fried" for one fellow's expressed preference for marijuana over hallucinogens) to set the scene without stranding newcomers in the minutia. There's a funny scene in which a relatively inexperienced DJ (Bing Ching) shakes his head at the expertise of a pro, and another in which the uptight David assumes Leyla is offering him drugs when she's offering him earplugs. From the dance floor to the fruit-and-water-stocked "chill room," GROOVE re-creates its unique world as effectively as you could hope for.
Harrison then proceeds to populate that world with one unmemorable, uninvolving character after another. Most of the narrative is spent on David and Leyla, whose budding relationship is supposed to be the core of the film but feels like just another drug-fueled party scam. Worse still is the contrived drama in the relationship between Colin and Harmony, which takes a "hip," independent film sort of turn for the worse. There are other sub-plots, including the inability of a gay couple to find the party location, but they offer little to latch on to. The acting is servicable at best, the characterizations not even that. GROOVE is composed entirely of people doing the sort of thing one sees people do at raves, played with all the energy and commitment of people playing types -- you're the uncomfortable geek, you're the dealer, you're the party princess, and so on.
The issue isn't that GROOVE meanders along in its night-in-the-life way without trying to be particularly profound. DAZED AND CONFUSED and AMERICAN GRAFFITI were charming studies of its era's revellers, and no one much cared if an epiphany was to be found. Both of those films, however, had the benefit of a nostalgic distance, allowing both film-maker and audience to recognize the silliness inherent in youthful celebration. Greg Harrison is too serious about this milieu; he seems to be making the suggestion that kids really have found party nirvana this time, not like those goofy kids of the '60s, '70s and '80s. It's no wonder the characters are irrelevant; Harrison just needed bodies to jump up and down to the beat. His take on the rave scene, detailed though it may be, isn't DAZED AND CONFUSED for the '90s. It's THANK GOD IT'S FRIDAY for the '90s.
On the Renshaw scale of 0 to 10 rave reviews: 5.
Visit Scott Renshaw's Screening Room http://www.inconnect.com/~renshaw/ *** Subscribe to receive new reviews directly by email! See the Screening Room for details, or reply to this message with subject "Subscribe".
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Hydroxyproline rich glycoproteins (HRGPs) are one of the most complex families of macromolecules found in plants, due to the diversity of glycans decorating the protein backbone, as well as the heterogeneity of the protein backbones. While this diversity is responsible for the wide array of physiological functions associated with HRGPs, it hinders attempts for homology based identification. Current approaches, based on identifying sequences with characteristic motifs and biased amino acid composition, are limited to prototypical sequences.
ragp
is an R package for mining and analyses of HRGPs, with emphasis on arabinogalactan protein sequences (AGPs). The ragp
filtering pipeline exploits one of the HRGPs key features, the presence of hydroxyprolines which represent glycosylation sites. Main package features include prediction of proline hydroxylation sites, amino acid motif and bias analyses, efficient communication with web servers for prediction of N-terminal signal peptides and glycosylphosphatidylinositol modification sites, as well as the ability to annotate sequences through CDD or hmmscan and subsequent GO enrichment, based on predicted Pfam domains.
The workflow in ragp
is illustrated with the following diagram (ragp
functions to be used for each of the tasks are boxed grey):
The filtering layer:
get_signalp5()
which queries SignalP5 (Almagro Armenteros et al. 2019).predict_hyp()
) and filter sequences containing several (for example three or more) potential hydroxyprolines.The analysis layer:
scan_ag()
) among the hydroxyproline containing sequences.maab()
) to classify hydroxyproline containing sequences.get_hmm()
) and enrich with gene ontology (GO) terms (pfam2go()
). Alternatively annotate domains using CDD.get_big_pi()
, get_pred_gpi()
and get_netGPI()
).get_espritz()
).get_phobius()
and get_tmhmm()
)Additionally ragp
provides tools for visualization of the mentioned attributes via plot_prot()
.
You can install ragp from github with:
# install.packages("remotes") #if not present
# install.packages("git2r") #if not present
remotes::install_github("missuse/ragp")
Or alternatively to build vignettes use:
# install.packages("remotes")
# install.packages("git2r")
remotes::install_git("https://github.com/missuse/ragp",
build_vignettes = FALSE)
Vignettes can be viewed by:
browseVignettes("ragp")
If you encounter undesired behavior in ragp
functions or you have ideas how to improve them please open an issue at: https://github.com/missuse/ragp/issues.
A shiny web interface to ragp
functions predict_hyp()
, scan_ag()
and maab()
is available at https://ragp.shinyapps.io/Rapp/.
If you find ragp
useful in your own research please cite our Glycobiology paper.
Milan B Dragićević, Danijela M Paunović, Milica D Bogdanović, Slađana I Todorović, Ana D Simonović (2020) ragp: Pipeline for mining of plant hydroxyproline-rich glycoproteins with implementation in R, Glycobiology 30(1) 19–35, https://doi.org/10.1093/glycob/cwz072
You can get citation info via citation("ragp")
or by copying the following BibTex entry:
@article{10.1093/glycob/cwz072,
author = "{Dragićević, Milan B and Paunović, Danijela M and Bogdanović, Milica D and Todorović, Slađana I and Simonović, Ana D}",
title = "{ragp: Pipeline for mining of plant hydroxyproline-rich glycoproteins with implementation in R}",
journal = "{Glycobiology}",
issn = "{1460-2423}",
publisher = "{Oxford University Press}",
year = "{2020}",
volume = "{30}",
number = "{1}",
pages = "{19–35}",
url = "{https://doi.org/10.1093/glycob/cwz072}",
doi = "{10.1093/glycob/cwz072}",
eprint = "{https://academic.oup.com/glycob/article-pdf/30/1/19/5567434/cwz072.pdf}"
}
This software was developed with funding from the Ministry of Education, Science and Technological Development of the Republic of Serbia (Projects TR31019 and OI173024).


You are following:
{% for user in user.users_followed %}
- {{ user.username }}
{% for book in user.books_read %}
{{ book.title }} ({{ book.score }}){% if not loop.last %}->{% endif %}
{% else %}
The user didn't read anything yet
{% endfor %}
{% else %}
You're not following anyone
{% endfor %}
You've read
{% for book in user.books_read %}
{{ book.title }} ({{ book.score }}) {% if not loop.last %}->{% endif %}
{% else %}
You didn't read anything yet
{% endfor %}
Users you might be interested in


Font size:
Links related to Scriptella
Powered by Scriptella
Use this button to let people know your favorite ETL tool:
|
|  |
Scriptella-Related Sites
- Scriptella Blog
- Author's LinkedIn
- Scriptella on StackOverflow
- Scriptella Examples on GitHub
- Article: Groovy ETLs with Scriptella
- - Scriptella ETL metrics by Ohloh
- Follow us on Twitter
- Scriptella is a member of DataMigrationPro.com global professional community.
- Scriptella examples at DZone Snippets
Companies and products that use Scriptella
- CFOsoft uses Scriptella for their Laguna BI platform.


Southwest Airlines, Cargo
Transforming a digital experience
Southwest Cargo provides fast and efficient shipping services for valued customers around the country. As a subsidiary of Southwest Airlines, Southwest Cargo focuses on enhancing customer experience with every package that is shipped.
My team consisted of 6 members. Two designers, one project manager and three UI developers. Before we began designing, a different agency had previously provided some mockups that we based our designs on. With the provided wireframes, my experience director and I finished all the designs while making them responsive. We collaborated with the client’s team to finish this project in 6 design sprints.
The Challenge: How do we redesign Southwest’s Cargo website to keep it competitive with other airlines?
The Solution: We created a responsive web-based experience that emulates Southwest’s digital branding to allow for smooth transitions into next generation designs.
My Role: Along with my Experience Director, Lan Nguyen, I was the experience designer who focused on creating high fidelity wireframes, IA documentation and design patterns.
Unfolding the project cycle
1. Sprint! (2 week intervals)
We began each sprint by prioritizing features. Once we figured out which features were high priority I began designing wireframes.
2. Design Review
We presented our designs to our main stakeholders on a weekly basis to receive feedback as well as approvals.
3. Feedback
In addition to presenting designs to stakeholders, they had the opportunity to look through WIP designs using InVision.
4. Iterate
Based on feedback, the experience director and I would iterate on our designs and prepare for our sprint review.
5. Demo to Client
I presented current designs to key stakeholders to receive final feedback before moving onto the next sprint.
Discovery
We spoke with our key stakeholders to understand what they were looking for in the redesign and what they were hoping to achieve. Southwest Cargo’s website hadn’t been updated since the early 2000’s and our stakeholders believed that they could reach a larger audience by transforming their web experience. We researched other cargo sites such as American Airlines, Delta Airlines, and Virgin Atlantic to see how they handled customer support, landing pages, and navigation.
It’s common for a cargo customer to already know what they’re shipping. They want to see the specifications for shipping certain products as well as locating a shipping facility. Our team focused on the customer experience for a user searching for their nearest facility and the landing pages for different packages. In order for Southwest Cargo to stay relevant in the industry they needed to also have a couple key features such as real - time tracking updates and a customer portal that had all their profile information.
Untangling paths to create a more intuitive sitemap
Before redesigning Southwest Cargo we had to understand how each page interacted with one another. A firm understanding of the taxonomy would solidify how we would organize parent pages, nested pages and external links. After mapping out the current state of Southwest Cargo, our experience director and I went to work. We created a sitemap that efficiently showed how each page interacted within the website while showing which pages could link to another page.
We saw that the current sitemap did not match the layout of the existing site. In order to update the IA of the website, we needed to discover what pages were linked to other headers and what paths a user could take to complete a task. For example, a user could decide to send a package via NFG (Next Flight Guaranteed) by clicking the header, Ship, and get to the service levels to learn more about that shipping method. The user can also access the information for NFG by clicking the header, Learn, and looking under specialty shipments. A user can take multiple paths to complete a task and we determined these paths on the sitemap above.
Prioritizing user needs
During sprint planning, we had to understand which tasks were the most common and frequent. After talking to our stakeholders and reviewing what the main purpose of the website was, we determined a couple high priority user flows. We learned that users go to the Cargo website to either locate their nearest shipping facility or track a shipment.
As a user, I want to learn about each facility so I can visit and send my cargo from the nearest location.
As a user, I want to see my tracking history so I can locate my shipment.
Conceptualizing designs
New data leads to updated designs -
The tracking details page is comprised of multiple cards that show the current status of your shipment, shipper information, consignee information, lot information and total shipment content. Users are able to scroll through the information to look up their shipping details. In order to get to the tracking details page, the user must first choose the right card on the Tracking Results page. We highlighted the airway bill number at the top of each card so a user could tap on the number or the card itself.
Towards the bottom of the page the user can see their “Lot Tracking Information”. If a shipment has multiple boxes they can be separated and sent on different planes. Visualizing the data for multiple lots was an area that we needed to think more through. Currently, the data is displayed on individual cards but with two or three different lots it can cause problems for the user.
Track your shipment -
The revamped Southwest Cargo website allows customers to seamlessly navigate through the site no matter what device they’re using. We followed Southwest’s brand philosophy and kept the user at the focus when making design decisions. Our goal was to give enough affordance throughout our designs to make it easy for users to locate, ship, learn, and manage shipments.
Next steps
We finished the design sprints in 3 months. After multiple iterations, we redesigned Southwest Cargo’s website to be responsive. In order to allow for next generation adjustments, we created a framework that could be applied to current and future designs. The website is now live but we are still in the process of updating UI based on client feedback.
Research, research, and more research
Research is not just valuable in the early stages of a project but valuable at every stage in the project cycle. As more people start to use Cargo’s new website it is essential to understand how they’re using the product and what features to add. With added time, I’d like to recruit participants who use the Cargo website to ship multiple packages at once. With multiple packages, users are presented with different ‘Lot’ data. Unfortunately, we did not have the time to interview or conduct contextual inquiries to observe how they interpret that data.


{% extends "global/Page.html" %} {% block title %} Announcement {% endblock %} {% block content %} {% if removal == True %}
Starting now, the Minimum Wage policy is removed. Please adjust your decisions accordingly.
{% elif implementation == True %}Starting now, the Minimum Wage policy is implemented. Please adjust your decisions accordingly.
{% endif %}Please click on Next button if you are ready to proceed.
{% next_button %} {% endblock %}