*Err
prg
body, which
will be executed during error processing. See also Error Handling
, *Msg
and ^
.
: (de *Err (prinl "Fatal error!"))
-> *Err
: (/ 3 0)
!? (/ 3 0)
Div/0
Fatal error!
?
*Ext
ext
), and the CDR should be a function taking a
single external symbol as an argument. This function should return a list, with
the value for that symbol in its CAR, and the property list (in the format used
by getl
and putl
) in its CDR. The symbol will be set to
this value and property list upon access. Typically this function will access
the corresponding symbol in a remote database process. See also qsym
and external symbols
.
### On the local machine ###
: (setq *Ext # Define extension functions
(mapcar
'((@Host @Ext)
(cons @Ext
(curry (@Host @Ext (Sock)) (Obj)
(when (or Sock (setq Sock (connect @Host 4040)))
(ext @Ext
(out Sock (pr (cons 'qsym Obj)))
(prog1
(in Sock (rd))
(unless @
(close Sock)
(off Sock) ) ) ) ) ) ) )
'("<IP_ADDRESS>" "<IP_ADDRESS>" "<IP_ADDRESS>" "<IP_ADDRESS>")
(20 40 60 80) ) )
### On the remote machines ###
(de go ()
...
(task (port 4040) # Set up background query server
(let? Sock (accept @) # Accept a connection
(unless (fork) # In child process
(in Sock
(while (rd) # Handle requests
(sync)
(tell)
(out Sock
(pr (eval @)) ) ) )
(bye) ) # Exit child process
(close Sock) ) )
(forked) # Close task in children
...
+Entity
+relation
and Database.
Messages to entity objects include
zap> () # Clean up relational structures, for removal from the DB
url> (Tab) # Call the GUI on that object (in optional Tab)
gui> () # Generate object-specific GUI fragment
upd> (X Old) # Callback method when object is created/modified/deleted
has> (Var Val) # Check if value is present
rel?> (Var Val) # Check if relations for value are correctly maintained
put> (Var Val) # Put a new value
put!> (Var Val) # Put a new value, single transaction
del> (Var Val) # Delete value (also partial)
del!> (Var Val) # Delete value (also partial), single transaction
inc> (Var Val) # Increment numeric value
inc!> (Var Val) # Increment numeric value, single transaction
dec> (Var Val) # Decrement numeric value
dec!> (Var Val) # Decrement numeric value, single transaction
mis> (Var Val) # Return error message if value or type mismatch
lose1> (Var) # Delete relational structures for a single attribute
lose> (Lst) # Delete relational structures (excluding 'Lst')
lose!> () # Delete relational structures, single transaction
keep1> (Var) # Restore relational structures for single attribute
keep> (Lst) # Restore relational structures (excluding 'Lst')
keep?> (Lst) # Test for restauration (excluding 'Lst')
keep!> () # Restore relational structures, single transaction
set> (Val) # Set the value (type, i.e. class list)
set!> (Val) # Set the value, single transaction
clone> () # Object copy
clone!> () # Object copy, single transaction
(e . prg) -> any
prg
in the execution
environment, or the currently executed expression if prg
is not
given. See also debug
, !
, ^
and
*Dbg
.
: (! + 3 4)
(+ 3 4)
! (e)
-> 7
(echo ['cnt ['cnt]] | ['sym ..]) -> sym
cnt
is given, only that many bytes are actually echoed. In case
of two cnt
arguments, the first one specifies the number of bytes
to skip in the input stream. Otherwise, if one or more sym
arguments are given, the echo process stops as soon as one of the symbol's names
is encountered in the input stream. In this case the name will be read and
returned, but not written. Returns non-NIL
if the operation was
successfully completed. See also from
.
: (in "x.l" (echo)) # Display file on console
..
: (out "x2.l" (in "x.l" (echo))) # Copy file "x.l" to "x2.l"
(edit 'sym ..) -> NIL
vim
editor on a temporary file with these
data. When closing the editor, the modified data are read and stored into the
symbol(s). During the edit session, individual symbols are separated by the
pattern (=======)
. These separators should not be modified. When
moving the cursor to the beginning of a symbol (no matter if internal, transient
or external), and hitting 'K
', that symbol is added to the
currently edited symbols. Hitting 'Q
' will go back one step and
return to the previously edited list of symbols.
edit
is especially useful for browsing through the database
(with 'K
' and 'Q
'), inspecting external symbols, but
care must be taken when modifying any data as then the entity/relation mechanisms are circumvented, and
commit
has to be called manually if
the changes should be persistent.
Another typical use case is inserting or removing !
breakpoints at arbitrary code locations, or
doing other temporary changes to the code for debugging purposes.
See also update
, show
, vi
and em
.
: (edit (db 'nr '+Item 1)) # Edit a database symbol
### 'vim' shows this ###
{3-1} (+Item)
nr 1
inv 100
pr 29900
sup {2-1} # (+CuSu)
nm "Main Part"
(=======)
### Hitting 'K' on the '{' of '{2-1} ###
{2-1} (+CuSu)
nr 1
plz "3425"
mob "37 176 86303"
tel "37 4967 6846-0"
fax "37 4967 68462"
nm "Active Parts Inc."
nm2 "East Division"
ort "Freetown"
str "Wildcat Lane"
em<EMAIL_ADDRESS>(=======)
{3-1} (+Item)
nr 1
inv 100
pr 29900
sup {2-1} # (+CuSu)
nm "Main Part"
(=======)
### Entering ':q' in vim ###
-> NIL
(em 'sym) -> sym
(em 'sym 'cls) -> sym
(em '(sym . cls)) -> sym
(em) -> NIL
sym
. A call to ld
thereafter will load
the modified file. A call without
arguments permanently switches the REPL line editor and the edit
function to "emacs" mode. See also
doc
, edit
, vi
, *Dbg
, debug
and pp
.
: (em 'url> '+CuSu) # Edit the method's source code, then exit from 'emacs'
-> T
(env ['lst] | ['sym 'val] ..) -> lst
lst
, or the explicitly given sym
-val
arguments. See also bind
, job
, trail
and up
.
: (env)
-> NIL
: (let (A 1 B 2) (env))
-> ((A . 1) (B . 2))
: (let (A 1 B 2) (env '(A B)))
-> ((B . 2) (A . 1))
: (let (A 1 B 2) (env 'X 7 '(A B (C . 3)) 'Y 8))
-> ((Y . 8) (C . 3) (B . 2) (A . 1) (X . 7))
(eof ['flg]) -> flg
flg
is non-NIL
, the channel's status is forced to
end-of-file, so that the next call to eof
will return
T
, and calls to char
,
peek
, line
, from
, till
, read
or skip
will return NIL
. Note that
eof
cannot be used with the binary rd
function. See also eol
.
: (in "file" (until (eof) (println (line T))))
...
(eol) -> flg
eof
.
: (make (until (prog (link (read)) (eol)))) # Read line into a list
a b c (d e f) 123
-> (a b c (d e f) 123)
equal/2
=
, different/2
and member/2
.
: (? (equal 3 4))
-> NIL
: (? (equal @N 7))
@N=7
-> NIL
(err 'sym . prg) -> any
sym
during the execution
of prg
. The current standard error stream will be saved and
restored appropriately. If the argument is NIL
, the current output
stream will be used. Otherwise, sym
is taken as a file name (opened
in "append" mode if the first character is "+"), where standard error is to be
written to. See also in
, out
and ctl
.
: (err "/dev/null" # Suppress error messages
(call 'ls 'noSuchFile) )
-> NIL
(errno) -> cnt
native
.
: (in "foo") # Produce an error
!? (in "foo")
"foo" -- Open error: No such file or directory
? (errno)
-> 2 # Returned 'ENOENT'
(eval 'any ['cnt ['lst]]) -> any
any
. Note that because of the standard argument
evaluation, any
is actually evaluated twice. If a lambda-binding
environment offset cnt
is given, the second evaluation takes place
in the corresponding environment, and an optional lst
of excluded
symbols can be supplied. cnt
should be greater than zero. See also
run
and up
.
: (eval (list '+ 1 2 3))
-> 6
: (setq X 'Y Y 7)
-> 7
: X
-> Y
: Y
-> 7
: (eval X)
-> 7
: (de f (A)
(list
(eval 'A)
(eval 'A 1)
(eval 'A 2) ) )
-> f
: (de g (A)
(f (inc A)) )
-> g
: (one A)
-> 1
: (g (inc A))
-> (3 2 1)
(exec 'any ..)
any
arguments specify
the command and its arguments. Does not return to the caller; the current
process is replaced with a new process image. See also fork
and call
.
: (pipe (exec 'echo 123 "abc")
(list (read) (read)) )
-> (123 abc)
(unless (fork)
(exec "@bin/ssl" # Start replication process
"<IP_ADDRESS>" 443
"app/!replica" "key/app" "fifo/app" "db/app/blob/" 20 ) )
(expDat 'sym) -> dat
date
string according to
the current locale
(delimiter, and
order of year, month and day). Accepts abbreviated input, without delimiter and
with only the day, or the day and month, or the day, month and year of current
century. A single dot "." expands to "today", and a signed number to a date such
many days in the past or future. See also datStr
, day
, expTel
.
: (date)
-> 733133
: (date (date))
-> (2007 5 31)
: (expDat "31")
-> 733133
: (expDat "315")
-> 733133
: (expDat "3105")
-> 733133
: (expDat "31057")
-> 733133
: (expDat "310507")
-> 733133
: (expDat "2007-05-31")
-> 733133
: (expDat "7-5-31")
-> 733133
: (locale "DE" "de")
-> NIL
: (expDat "31.5")
-> 733133
: (expDat "31.5.7")
-> 733133
(expTel 'sym) -> sym
+
or 00
is removed, a leading national trunk
prefix is replaced with the current country code. Otherwise, NIL
is
returned. See also telStr
, expDat
and locale
.
: (expTel "+49 1234 5678-0")
-> "49 1234 5678-0"
: (expTel "0049 1234 5678-0")
-> "49 1234 5678-0"
: (expTel "01234 5678-0")
-> NIL
: (locale "DE" "de")
-> NIL
: (expTel "01234 5678-0")
-> "49 1234 5678-0"
(export ['sym]) sym|lst
sym
is given.
(export)
expects a single symbol or a list of symbols immediately
following in the current input stream. See also pico
, symbols
, private
, local
, import
and intern
.
: (symbols 'myLib 'pico)
-> (pico)
myLib: (export) (foo bar) # Intern 'foo' and 'bar' in 'pico'
(expr 'sym) -> fun
subr
.
: car
-> 67313448
: (expr 'car)
-> (@ (pass $385260187))
: (car (1 2 3))
-> 1
(ext 'cnt . prg) -> any
prg
, all external symbols
processed by rd
, pr
,
blk
or udp
are modified by an offset cnt
suitable for mapping via the *Ext
mechanism. All external symbol's file numbers are decremented by
cnt
during output, and incremented by cnt
during
input.
: (out 'a (ext 5 (pr '({6-2} ({8-9} . a) ({7-7} . b)))))
-> ({6-2} ({8-9} . a) ({7-7} . b))
: (in 'a (rd))
-> ({2} ({3-9} . a) ({2-7} . b))
: (in 'a (ext 5 (rd)))
-> ({6-2} ({8-9} . a) ({7-7} . b))
(ext? 'any) -> sym | NIL
any
when it is an existing external
symbol, otherwise NIL
. See also sym?
, box?
, str?
, extern
and lieu
.
: (ext? *DB)
-> {1}
: (ext? 'abc)
-> NIL
: (ext? "abc")
-> NIL
: (ext? 123)
-> NIL
(extend cls) -> cls
cls
, by storing it in the global variable
*Class
. As a consequence, all
following method, relation and class variable definitions are applied to that
class. See also OO Concepts, class
, dm
, var
,
rel
, type
and isa
.
(extern 'sym) -> sym | NIL
sym
is already extern, it is returned. Otherwise, a new external
symbol is returned. NIL
is returned if sym
does not
exist in the database. See also intern
and ext?
.
: (extern "A1b")
-> {A1b}
: (extern "{A1b}")
-> {A1b}
(extra ['any ..]) -> any
This
, this time starting the search for a method at the
remaining branches of the inheritance tree of the class where the current method
was found. See also OO Concepts, super
, method
, meth
, send
and try
.
(dm key> (C) # 'key>' method of the '+Uppc' class
(uppc (extra C)) ) # Convert 'key>' of extra classes to upper case
(extract 'fun 'lst ..) -> lst
fun
to each element of lst
. When
additional lst
arguments are given, their elements are also passed
to fun
. Returns a list of all non-NIL
values returned
by fun
. (extract 'fun 'lst)
is equivalent to
(mapcar 'fun (filter 'fun 'lst))
or, for non-NIL results, to
(mapcan '((X) (and (fun X) (cons @))) 'lst)
. See also filter
, find
, pick
and mapcan
.
: (setq A NIL B 1 C NIL D 2 E NIL F 3)
-> 3
: (filter val '(A B C D E F))
-> (B D F)
: (extract val '(A B C D E F))
-> (1 2 3)


You have ongoing high score . You can try to improve it.
You can start a new game to set a new high score.
Log in to save score: Login.
Logged in as - Logout.


>
This is a company dedicated for people who travel a lot. There has been some cases where people get hurt while traveling. The problem is for the family that doesn´t know where their love one has been hurt. They don´t know in which hospital their love one is, what is his or her situation and what they could do to help them. With this webpage you will be able to know if your love one is at a hospital by by givin some information. The local police department will call you, if your love one is not answering, and let them investigate.The hospital could call you if the patient has been found.
------------------------------------------------------------------------------------------------------------------------------------------------------------


- edit(View) - Method in class cmput301w16t08.scaling_pancake.activities.ViewInstrumentActivity
-
- editCurrentUser(String, String) - Method in class cmput301w16t08.scaling_pancake.controllers.Controller
-
Attempts to edit the username and email of the currently logged in User
- editCurrentUserEmail(String) - Method in class cmput301w16t08.scaling_pancake.controllers.Controller
-
Edits the email of the currently logged in User
- editCurrentUserName(String) - Method in class cmput301w16t08.scaling_pancake.controllers.Controller
-
Attempts to edit the username of the currently logged in User
- editInstrument(Instrument, String, String) - Method in class cmput301w16t08.scaling_pancake.controllers.Controller
-
Edits an Instrument
owned by the currently logged in User
- editInstrument(int, String, String) - Method in class cmput301w16t08.scaling_pancake.controllers.Controller
-
Edits the Instrument
at the supplied index that is owned by the currently
logged in User
- EditInstrumentActivity - Class in cmput301w16t08.scaling_pancake.activities
-
Provides a view where the User
can edit one of their Instrument
s.
- EditInstrumentActivity() - Constructor for class cmput301w16t08.scaling_pancake.activities.EditInstrumentActivity
-
- editOwnedInstrument(Instrument, String, String) - Method in class cmput301w16t08.scaling_pancake.models.User
-
Edits the name and description of an Instrument
owned by the user
- editOwnedInstrument(int, String, String) - Method in class cmput301w16t08.scaling_pancake.models.User
-
Edits the name and description of the user's owned Instrument
at the specified index
- EditProfileActivity - Class in cmput301w16t08.scaling_pancake.activities
-
Allows the user to modify their existing profile.
- EditProfileActivity() - Constructor for class cmput301w16t08.scaling_pancake.activities.EditProfileActivity
-
- ElasticsearchController - Class in cmput301w16t08.scaling_pancake.controllers
-
ElasticsearchController
is a class containing classes that deal with saving User
s
using elasticsearch.
- ElasticsearchController() - Constructor for class cmput301w16t08.scaling_pancake.controllers.ElasticsearchController
-
- ElasticsearchController.CreateUserTask - Class in cmput301w16t08.scaling_pancake.controllers
-
CreateUserTask
is used to save a new User
- ElasticsearchController.CreateUserTask() - Constructor for class cmput301w16t08.scaling_pancake.controllers.ElasticsearchController.CreateUserTask
-
- ElasticsearchController.DeleteUserByIdTask - Class in cmput301w16t08.scaling_pancake.controllers
-
DeleteUserByIdTask
is used to delete the User
with the supplied id
- ElasticsearchController.DeleteUserByIdTask() - Constructor for class cmput301w16t08.scaling_pancake.controllers.ElasticsearchController.DeleteUserByIdTask
-
- ElasticsearchController.DeleteUserTask - Class in cmput301w16t08.scaling_pancake.controllers
-
DeleteUserTask
is used to delete a User
- ElasticsearchController.DeleteUserTask() - Constructor for class cmput301w16t08.scaling_pancake.controllers.ElasticsearchController.DeleteUserTask
-
- ElasticsearchController.GetUserByInstrumentIdTask - Class in cmput301w16t08.scaling_pancake.controllers
-
GetUserByInstrumentIdTask
is used to search for the User
that owns the supplied
Instrument
.
- ElasticsearchController.GetUserByInstrumentIdTask() - Constructor for class cmput301w16t08.scaling_pancake.controllers.ElasticsearchController.GetUserByInstrumentIdTask
-
- ElasticsearchController.GetUserByNameTask - Class in cmput301w16t08.scaling_pancake.controllers
-
GetUserByNameTask
is used to search for the User
with the supplied username
Returns an ArrayList
of JSON strings that can be translated into User
s
using the Deserializer
class.
- ElasticsearchController.GetUserByNameTask() - Constructor for class cmput301w16t08.scaling_pancake.controllers.ElasticsearchController.GetUserByNameTask
-
- ElasticsearchController.GetUserTask - Class in cmput301w16t08.scaling_pancake.controllers
-
GetUserTask
is used to search for the User
with the supplied id
Returns an ArrayList
of JSON strings that can be translated into User
s
using the Deserializer
class.
- ElasticsearchController.GetUserTask() - Constructor for class cmput301w16t08.scaling_pancake.controllers.ElasticsearchController.GetUserTask
-
- ElasticsearchController.SearchInstrumentsTask - Class in cmput301w16t08.scaling_pancake.controllers
-
SearchInstrumentsTask
is used to search all the Instrument
s already saved
and find the ones containing the keywords that are separated by a space in the supplied string.
- ElasticsearchController.SearchInstrumentsTask(PrePostActionWrapper) - Constructor for class cmput301w16t08.scaling_pancake.controllers.ElasticsearchController.SearchInstrumentsTask
-
- ElasticsearchController.UpdateUserTask - Class in cmput301w16t08.scaling_pancake.controllers
-
UpdateUserTask
is used to update the index of the User
to reflect
any new changes
- ElasticsearchController.UpdateUserTask() - Constructor for class cmput301w16t08.scaling_pancake.controllers.ElasticsearchController.UpdateUserTask
-


Goals available for this plugin:
| Goal | Description |
|---|---|
| permazen:generate | Generates a schema XML file from a set of Permazen model classes.
Such a file can be used to detect schema changes that require a new schema version number as Java model classes are modified over time. |
| permazen:help | Display help information on permazen-maven-plugin. Call mvn permazen:help -Ddetail=true
-Dgoal=<goal-name> to display parameter details. |
| permazen:verify | Verify the Permazen schema auto-generated from user-supplied model
classes.
This goal verifies that the Permazen schema can be successfully
auto-generated from user-supplied model classes. It also checks
that the schema will not lead to any
Such exceptions occur when either:
The first case is detected by having an expected schema XML
file. This file should correspond to the project's current schema
version, and is is used to verify that the schema auto-generated
from the project's model classes is still "same version" compatible
with this schema version, ensuring no mismatch error will occur at
runtime. In other words, the actual schema generated from the
compiled classes is verified to match what is expected, which is
recorded in this file. The current expected schema XML file
location is configured by
The second case it detected by supplying XML files containing
any old schema versions that are still active in the old schema
files directory. All files ending in If this goal fails due to an incompatibility of the first type:
If this goal fails due to an incompatibility of the second type,
you must adjust your model classes to make them compatible again.
For example, manually reassign a conflicting field a different
|
The following specifies the minimum requirements to run this Maven plugin:
| Maven | 2.0 |
| JDK | 8 |
| Memory | No minimum requirement. |
| Disk Space | No minimum requirement. |
You should specify the version in your project's plugin configuration:
<project> ... <build> <!-- To define the plugin version in your parent POM --> <pluginManagement> <plugins> <plugin> <groupId>io.permazen</groupId> <artifactId>permazen-maven-plugin</artifactId> <version>4.2.0</version> </plugin> ... </plugins> </pluginManagement> <!-- To use the plugin goals in your POM or parent POM --> <plugins> <plugin> <groupId>io.permazen</groupId> <artifactId>permazen-maven-plugin</artifactId> <version>4.2.0</version> </plugin> ... </plugins> </build> ... </project>
For more information, see "Guide to Configuring Plug-ins"


Routes
South Station Saturday Bus 22018
World Trade Center
Silver Line Way
Courthouse
Manulife Via Park
Courts to Boston Logan Airport
Friday Fenway-Beacon
One Bus
Charles Union
Highland-Davis
Your Live Bus Tracking and Prediction App
Choose your bus route
Trip Name:
Find Bus


@* * Copyright 2021 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @import config.FrontendAppConfig @import controllers.PlaLanguageController @import helpers.templates.formInlineDateInput @import play.api.Application @import uk.gov.hmrc.play.views.html.{helpers => govHelpers} @import config.FrontendAppConfig @(withdrawDateForm: Form[WithdrawDateFormModel], protectionType: String, status: String)(implicit request: Request[_], messages: Messages, application: Application, context: config.PlaContext, partialRetriever: uk.gov.hmrc.play.partials.FormPartialRetriever, templateRenderer: uk.gov.hmrc.renderer.TemplateRenderer, appConfig: FrontendAppConfig) @lc = @{ Application.instanceCache[PlaLanguageController].apply(application) } @scriptElement = { } @views.html.main_template(title = Messages("pla.withdraw.date-input.title"), scriptElem = Some(scriptElement), bodyClasses = None) { Back @if(withdrawDateForm.hasErrors){ @govHelpers.errorSummary(Messages("pla.base.errorSummaryLabel"), withdrawDateForm) } @govHelpers.form(action = routes.WithdrawProtectionController.postWithdrawDateInput()) {


Algorithms Index , Frequency-Domain
Filtering in Triana , Time-Domain
Filtering in Triana, Triana Spectral
Storage Model
WindowFnc
Author : Ian Taylor, Bernard Schutz
Version: 2.0
Input Types : VectorType,
TimeFrequency
Output Types : VectorType,
TimeFrequency
Date : 3 March 2001
Contents
Description of WindowFnc
WindowFnc allows the user to apply one of six window functions to the input
data set. A window function is a function which is multiplied into a data
set in order to taper it at its edges. Such functions begin at a small
value, rise smoothly to a peak, and then fall again in a symmetrical way.
The choices offered here defined below.
The unit can accept any VectorType
input, and works intelligently on special types. By default, it scales
the chosen window to the width of the input data set, multiplies the data
(real or complex is allowed) by the window, and outputs a data set of the
same type as the input but with the shaped data. However, if the input
is a Spectrum
or ComplexSpectrum,
then the function is applied in a way that matches the meaning of the data.
If the input spectrum contains zero-frequency, then the shaping is applied
only to the upper-frequency limit of the data. If the data is narrow-band
and does not include zero-frequency, then the shaping is applied to the
frequency band, rounding it off at its lower and upper limits.
The unit can also accept TImeFrequency
input data. It windows the frequency dimension of this two-dimensional
data set, using the same principles as described in the previous paragraph,
and outputs a TimeFrequency
data set containing the shaped data.
Windowing can be used with Fourier transforms to make the result of
a transform seem more reasonable. If a time-series has sharp edges, then
its Fourier transform will show oscillations or peaks. Rounding the shoulders
of the time-series makes the Fourier transform smoother. Conversely, if
the window function is applied to a spectrum before it is inverted to the
time domain, then the inversion will be smoother and not show the oscillations
that sharp edges in the spectrum would generate. The FFT
unit contains the option to apply these windows to the input time-series
data. Other units offer rounding of spectral data sets using these as well:
WinFT,
LowPass,
HighPass,
BandPass,
MultiBand,
and HetdyneF. Windowing
is also available for time-domain filtering in the units FIR_LowPass,
FIR_HighPass,
FIR_BandPass.
Using WindowFnc
The parameter window for WindowFnc is shown below:
Just select the appropriate window from the choice box.
Description of the Windows
The built-in windows are defined by the following names (see below
for a reference) and associated functions, all of which are given here
on the domain (-0.5, 0.5):
-
Rectangle: 1
-
Bartlett: 1 - 2*|x|
-
Blackman: 0.42 + 0.5*cos(2*pi*x) + 0.08*cos(4*pi*x)
-
Gaussian: exp(-18*x^2).
-
Hamming: 0.54 + 0.46*cos( 2*pi*x)
-
Hann: cos^2(pi*x) (also known as Hanning)
-
Welch: 1 - 4*x^2
-
BlackmanHarris92: 0.35875 + 0.48829*cos( 2*pi*x ) + 0.14128*cos( 4*pi*x
) + 0.01168*cos( 6*pi*x )
-
Nuttall3: 0.375 + 0.5*cos( 2*pi*x ) + 0.125*cos( 4*pi*x )
-
Nuttall3a: 0.40897 + 0.5*cos( 2*pi*x ) + 0.09103*cos( 4*pi*x )
-
Nuttall3b: 0.4243801 + 0.4973406*cos( 2*pi*x ) + 0.0782793*cos( 4*pi*x
)
-
Nuttall4: 0.3125 + 0.46875*cos( 2*pi*x ) + 0.1875*cos( 4*pi*x ) + 0.03125*cos(
6*pi*x )
-
SFT3F: 0.26526 + 0.5*cos( 2*pi*x ) + 0.23474*cos( 4*pi*x )
-
SFT4F: 0.21706 + 0.42103*cos( 2*pi*x ) + 0.28294*cos( 4*pi*x ) + 0.07897*cos(
6*pi*x )
-
SFT5F: 0.1881 + 0.36923*cos( 2*pi*x ) + 0.28702*cos( 4*pi*x ) + 0.13077*cos(
6*pi*x ) + .02488*cos( 8*pi*x )
-
SFT3M: 0.28235 + 0.52105*cos( 2*pi*x ) + 0.19659*cos( 4*pi*x )
-
SFT4M: 0.241906 + 0.460841*cos( 2*pi*x ) + 0.255381*cos( 4*pi*x ) + 0.041872*cos(
6*pi*x )
-
SFT5M: 0.209671 + 0.407331*cos( 2*pi*x ) + 0.281225*cos( 4*pi*x ) + 0.092669*cos(
6*pi*x ) + 0.0091036*cos( 8*pi*x )
-
FTNI: 0.2810639 + 0.5208972*cos( 2*pi*x ) + 0.1980399*cos( 4*pi*x )
-
FTHP: 1.0 + 1.912510941*cos( 2*pi*x ) + 1.079173272*cos( 4*pi*x ) + 0.1832630879*cos(
6*pi*x )
-
FTSRS: 1.0 + 1.93*cos( 2*pi*x ) + 1.29*cos( 4*pi*x ) + 0.388*cos( 6*pi*x
) + 0.028*cos( 8*pi*x )
-
HFT70: 1 + 1.90796*cos( 2*pi*x ) + 1.07349*cos( 4*pi*x ) + 0.18199*cos(
6*pi*x )
-
HFT95: 1 + 1.9383379*cos( 2*pi*x ) + 1.3045202*cos( 4*pi*x ) + 0.4028270*cos(
6*pi*x ) + 0.0350665*cos( 8*pi*x )
-
Kaiser3, Kaiser4, Kaiser5, Kasier6, Kasier7: All Kaiser windows are computed
from the following formula, which depends on the parameter alpha:
I0(pi*alpha*sqrt(1-4*x^2))/I0(pi*alpha),
where I0 is the Bessel function of order 0. The value of alpha
used for a particular window is given in its name: Kaiser3 uses alpha=3,
for example.
All windows defined here are symmetrical about their center (x=0), and
(except for Rectangle) they taper monotonically to a very small value from
a maximum of 1. When a window function is used, its domain is scaled to
the width of the input data set. If a window width has an odd number of
elements, then the central value is 1 and values are sampled from the continuous
functions defined here on either side of the maximum. If the window width
is even, then the values are sampled symmetrically about the maximum, so
that the maximum is not actually a sampled value. Note that the Rectangle
window is not really a window at all: it does not modify the input data.
The reference used for constructing these windows,
and for naming them, is: G Heinzel, A Rudiger, R Schilling, "Spectrum and
spectral density estimation by the discrete Fourier transform (DFT), including
a comprehensive list of window functions and some new flat-top windows",
preprint (2002). Contact: ghh@mpq.mpg.de


{{ book.title }}
by {{ book.all_authors }}
Due: {{ loan.due_date }}
Books borrowed: {{ borrower.num_loans }}
Add Thirty Days
You currently have too many books outstanding!
Books borrowed: {{ borrower.num_loans }}


Toggle navigation
Find Study Resources
By Subjects
Assignment Help
Ask a Tutor a Question
Login
Signup
CONTACT US
Home
Contact Us
First Name
Last Name
Email address
Message
Submit
Tutors On Net LLC.
3000 S Hulen Street Suite 124-526
Fort Worth, Texas, USA


class: center, middle # 10 awesome features of Python that you can't use because you refuse to upgrade to Python 3 .footnote[[There is also a pdf version of these slides](http://asmeurer.github.io/python3-presentation/python3-presentation.pdf)] --- class: center, middle # 10 awesome features of Python that you can't use because you refuse to upgrade to Python 3 # or # Turning it up to 13! --- # Prelude - Last month (March) APUG: only three people use Python 3 (including me) - Lots of new features of Python 3. - Some have been backported to Python 2.7. (like dictionary/set comprehensions or set literals, `__future__.print_function`) - But there's more than that. - New features that you *can't* use unless you are in Python 3. - New syntax. New interpreter behavior. Standard library fixes. - And it's more than bytes/unicode... --- layout: true # Feature 1: Advanced unpacking --- - You can already do this: ```py >>> a, b = range(2) >>> a 0 >>> b 1 ``` -- - Now you can do this: ```py >>> a, b, *rest = range(10) >>> a 0 >>> b 1 >>> rest [2, 3, 4, 5, 6, 7, 8, 9] ``` -- - `*rest` can go anywhere: ```py >>> a, *rest, b = range(10) >>> a 0 >>> b 9 >>> rest [1, 2, 3, 4, 5, 6, 7, 8] ``` ```py >>> *rest, b = range(10) >>> rest [0, 1, 2, 3, 4, 5, 6, 7, 8] >>> b 9 ``` --- ## Get the first and last lines of a file ```py >>> with open("using_python_to_profit") as f: ... first, *_, last = f.readlines() # Warning: this puts the whole file contents in memory! >>> first 'Step 1: Use Python 3\n' >>> last 'Step 10: Profit!\n' ``` --- layout: true # Feature 2: Keyword only arguments --- ```py def f(a, b, *args, option=True): ... ``` -- - `option` comes *after* `*args`. -- - The only way to access it is to explicitly call `f(a, b, option=True)` -- - You can write just a `*` if you don't want to collect `*args`. ```py def f(a, b, *, option=True): ... ``` --- - No more, "Oops, I accidentally passed too many arguments to the function, and one of them was swallowed by a keyword argument". ```py def sum(a, b, biteme=False): if biteme: shutil.rmtree('/') else: return a + b ``` ```py >>> sum(1, 2) 3 ``` ```py >>> sum(1, 2, 3) ``` -- .center[
] --- - Instead write ```py def sum(a, b, *, biteme=False): if biteme: shutil.rmtree('/') else: return a + b ``` ```py >>> sum(1, 2, 3) Traceback (most recent call last): File "
", line 1, in
TypeError: sum() takes 2 positional arguments but 3 were given ``` -- .center[![](borat.jpg)] --- - Or, "I reordered the keyword arguments of a function, but something was implicitly passing in arguments expecting the order" - Example: ```py def maxall(iterable, key=None): """ A list of all max items from the iterable """ key = key or (lambda x: x) m = max(iterable, key=key) return [i for i in iterable if key(i) == key(m)] ``` ```py >>> maxall(['a', 'ab', 'bc'], len) ['ab', 'bc'] ``` --- - The `max` builtin supports `max(a, b, c)`. We should allow that too. ```py def maxall(*args, key=None): """ A list of all max items from the iterable """ if len(args) == 1: iterable = args[0] else: iterable = args key = key or (lambda x: x) m = max(iterable, key=key) return [i for i in iterable if key(i) == key(m)] ``` - We just broke any code that passed in the key as a second argument without using the keyword. ```py >>> maxall(['a', 'ab', 'ac'], len) Traceback (most recent call last): File "
", line 1, in
File "
", line 10, in maxall TypeError: unorderable types: builtin_function_or_method() > list() ``` - (Actually in Python 2 it would just return `['a', 'ab', 'ac']`, see feature 6). - By the way, `max` shows that this is already possible in Python 2, but only if you write your function in C. - Obviously, we should have used `maxall(iterable, *, key=None)` to begin with. --- - You can make your APIs "future change proof". - Stupid example: ```py def extendto(value, shorter, longer): """ Extend list `shorter` to the length of list `longer` with `value` """ if len(shorter) > len(longer): raise ValueError('The `shorter` list is longer than the `longer` list') shorter.extend([value]*(len(longer) - len(shorter))) ``` ```py >>> a = [1, 2] >>> b = [1, 2, 3, 4, 5] >>> extendto(10, a, b) >>> a [1, 2, 10, 10, 10] ``` -- - Hmm, maybe it makes more sense for `longer` to come before `shorter`... - Too bad, you'll break the code. --- - In Python 3, you can use ```py def extendto(value, *, shorter=None, longer=None): """ Extend list `shorter` to the length of list `longer` with `value` """ if shorter is None or longer is None: raise TypeError('`shorter` and `longer` must be specified') if len(shorter) > len(longer): raise ValueError('The `shorter` list is longer than the `longer` list') shorter.extend([value]*(len(longer) - len(shorter))) ``` - Now, `a` and `b` *have* to be passed in as `extendto(10, shorter=a, longer=b)`. -- - Or if you prefer, `extendto(10, longer=b, shorter=a)`. --- - Add new keyword arguments without breaking API. - Python 3 did this in the standard library. -- - For example, functions in `os` have `follow_symlinks` option. -- - So you can just use `os.stat(file, follow_symlinks=False)` instead of `os.lstat`. -- - In case that sounds more verbose, it lets you do ```py s = os.stat(file, follow_symlinks=some_condition) ``` instead of ```py if some_condition: s = os.stat(file) else: s = os.lstat(file) ``` -- - But `os.stat(file, some_condition)` doesn't work. - Keeps you from thinking it's a two-argument function. --- - In Python 2, you have to use `**kwargs` and do the handling yourself.  -- - No longer self documenting. -- - If you somehow are writing for a Python 3 only codebase, I highly recommend making all your keyword arguments keyword only, especially keyword arguments that represent "options". --- layout: true # Feature 3: Chained exceptions --- - **Situation:** you catch an exception with `except`, do something, and then raise a different exception. ```py def mycopy(source, dest): try: shutil.copy2(source, dest) except OSError: # We don't have permissions. More on this later raise NotImplementedError("automatic sudo injection") ``` - **Problem:** You lose the original traceback ```py >>> mycopy('noway', 'noway2') >>> mycopy(1, 2) Traceback (most recent call last): File "
", line 1, in
File "
", line 5, in mycopy NotImplementedError: automatic sudo injection ``` -- - What happened with the `OSError`? --- - Python 3 shows you the whole chain of exceptions: ```py mycopy('noway', 'noway2') Traceback (most recent call last): File "
", line 3, in mycopy File "/Users/aaronmeurer/anaconda3/lib/python3.3/shutil.py", line 243, in copy2 copyfile(src, dst, follow_symlinks=follow_symlinks) File "/Users/aaronmeurer/anaconda3/lib/python3.3/shutil.py", line 109, in copyfile with open(src, 'rb') as fsrc: PermissionError: [Errno 13] Permission denied: 'noway' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "
", line 1, in
File "
", line 5, in mycopy NotImplementedError: automatic sudo injection ``` -- - You can also do this manually using `raise from` ```py raise exception from e ``` ```py >>> raise NotImplementedError from OSError OSError The above exception was the direct cause of the following exception: Traceback (most recent call last): File "
", line 1, in
NotImplementedError ``` --- layout: true # Feature 4: Fine grained `OSError` subclasses --- - The code I just showed you is wrong. - It catches `OSError` and assumes it is a permission error. - But `OSError` can be a lot of things (file not found, is a directory, is not a directory, broken pipe, ...) - You really have to do ```py import errno def mycopy(source, dest): try: shutil.copy2(source, dest) except OSError as e: if e.errno in [errno.EPERM, errno.EACCES]: raise NotImplementedError("automatic sudo injection") else: raise ``` -- - Wow. That sucks. -- .center[
] --- - Python 3 fixes this by adding a ton of [new exceptions](https://docs.python.org/3.4/library/exceptions.html#os-exceptions). - You can just do ```py def mycopy(source, dest): try: shutil.copy2(source, dest) except PermissionError: raise NotImplementedError("automatic sudo injection") ``` - (Don't worry, `PermissionError` subclasses from `OSError` and still has `.errno`. Old code will still work). --- layout: true # Feature 5: Everything is an iterator --- - This is the hardest one to sell. - Iterators exist in Python 2 as well. - But you have to use them. Don't write `range` or `zip` or `dict.values` or .... --- - If you do... -- ```py def naivesum(N): """ Naively sum the first N integers """ A = 0 for i in range(N + 1): A += i return A ``` -- ```py In [3]: timeit naivesum(1000000) 10 loops, best of 3: 61.4 ms per loop ``` -- ```py In [4]: timeit naivesum(10000000) 1 loops, best of 3: 622 ms per loop ``` -- ```py In [5]: timeit naivesum(100000000) ``` -- .center[
] --- .center[![](badtime.jpg)] --- - Instead write some variant (`xrange`, `itertools.izip`, `dict.itervalues`, ...). - Inconsistent API anyone? --- - In Python 3, `range`, `zip`, `map`, `dict.values`, etc. all return memory-efficient iterables. - If you want a list, just wrap the result with `list`. - Explicit is better than implicit. - Harder to write code that accidentally uses too much memory, because the input was bigger than you expected. --- layout: true # Feature 6: No more comparison of everything to everything --- - In Python 2, you can do ```py >>> max(['one', 2]) # One *is* the loneliest number 'one' ``` -- - Hurray. I just disproved math! .center[![](disprovemath.jpg)] --- - It's because in Python 2, you can `<` compare anything to anything. ```py >>> 'abc' > 123 True >>> None > all False ``` -- - In Python 3, you can't do this: ```py >>> 'one' > 2 Traceback (most recent call last): File "
", line 1, in
TypeError: unorderable types: str() > int() ``` - This avoids subtle bugs, e.g., from not coercing all types from int to str or visa versa. - Especially when you use `>` implicitly, like with `max` or `sorted`. - In Python 2: ```py >>> sorted(['1', 2, '3']) [2, '1', '3'] ``` --- layout: true # Feature 7: yield from --- - Pretty great if you use generators - Instead of writing ```py for i in gen(): yield i ``` Just write ```py yield from gen() ``` - Easily refactor generators into subgenerators. --- - Makes it easier to turn everything into a generator. See "Feature 5: Everything is an iterator" above for why you should do this. - Instead of accumulating a list, just `yield` or `yield from`. - **Bad** ```py def dup(n): A = [] for i in range(n): A.extend([i, i]) return A ``` **Good** ```py def dup(n): for i in range(n): yield i yield i ``` **Better** ```py def dup(n): for i in range(n): yield from [i, i] ``` --- In case you don't know, generators are awesome because: - Only one value is computed at a time. Low memory impact (see `range` example above). - Can break in the middle. Don't have to compute everything just to find out you needed none of it. Compute just what you need. If you often *don't* need it all, you can gain a lot of performance here. - If you need a list, just call `list()` on the generator iterator. If you need slicing, use the efficient `itertools.islice()`. - Function state is "saved" between yields. - This leads to interesting possibilities, à la coroutines... --- layout: true # Feature 8: asyncio --- - Uses new coroutine features and saved state of generators to do asynchronous IO. ```py # Taken from Guido's slides from “Tulip: Async I/O for Python 3” by Guido # van Rossum, at LinkedIn, Mountain View, Jan 23, 2014 @coroutine def fetch(host, port): r,w = yield from open_connection(host,port) w.write(b'GET /HTTP/1.0\r\n\r\n ') while (yield from r.readline()).decode('latin-1').strip(): pass body=yield from r.read() return body @coroutine def start(): data = yield from fetch('python.org', 80) print(data.decode('utf-8')) ``` -- - Not going to lie to you. I still don't get this. -- - It's OK, though. Even David Beazley had a hard time with it: .center[
] --- layout: true # Feature 9: Standard library additions --- ## `faulthandler` - Display (limited) tracebacks, even when Python dies the hard way. - Won't work with `kill -9`, but does work with, e.g., segfaults. ```py import faulthandler faulthandler.enable() def killme(): # Taken from http://nbviewer.ipython.org/github/ipython/ipython/blob/1.x/examples/notebooks/Part%201%20-%20Running%20Code.ipynb import sys from ctypes import CDLL # This will crash a Linux or Mac system; equivalent calls can be made on # Windows dll = 'dylib' if sys.platform == 'darwin' else 'so.6' libc = CDLL("libc.%s" % dll) libc.time(-1) # BOOM!! killme() ``` ```bash $python test.py Fatal Python error: Segmentation fault Current thread 0x00007fff781b6310: File "test.py", line 11 in killme File "test.py", line 13 in
Segmentation fault: 11 ``` - Or `kill -6` (`SIGABRT`) - Can also enable with `python -X faulthandler` --- ## `ipaddress` - Exactly that. IP addresses. ```py >>> ipaddress.ip_address('<IP_ADDRESS>') IPv4Address('<IP_ADDRESS>') >>> ipaddress.ip_address('2001:db8::') IPv6Address('2001:db8::') ``` - Just another thing you don't want to roll yourself. --- ## `functools.lru_cache` - A LRU cache decorator for your functions. - From [docs](https://docs.python.org/3/whatsnew/3.2.html#functools). ```py @lru_cache(maxsize=32) def get_pep(num): 'Retrieve text of a Python Enhancement Proposal' resource = 'http://www.python.org/dev/peps/pep-%04d/' % num try: with urllib.request.urlopen(resource) as s: return s.read() except urllib.error.HTTPError: return 'Not Found' >>> for n in 8, 290, 308, 320, 8, 218, 320, 279, 289, 320, 9991: ... pep = get_pep(n) ... print(n, len(pep)) >>> get_pep.cache_info() CacheInfo(hits=3, misses=8, maxsize=32, currsize=8) ``` --- ## `enum` - Finally, an enumerated type in the standard library. - Python 3.4 only. ```py >>> from enum import Enum >>> class Color(Enum): ... red = 1 ... green = 2 ... blue = 3 ... ``` - Uses some magic that is only possible in Python 3 (due to metaclass changes): ```py >>> class Shape(Enum): ... square = 2 ... square = 3 ... Traceback (most recent call last): ... TypeError: Attempted to reuse key: 'square' ``` --- layout: true # Feature 10: Fun --- ## Unicode variable names ```py >>> résumé = "knows Python" >>> π = math.pi ``` -- - Sorry, letter-like characters only. - `🍺 = "beer"` does not work. -- ## Function annotations ```py def f(a: stuff, b: stuff = 2) -> result: ... ``` - Annotations can be arbitrary Python objects. - Python doesn't do anything with the annotations other than put them in an `__annotations__` dictionary. ```py >>> def f(x: int) -> float: ... pass ... >>> f.__annotations__ {'return':
, 'x':
} ``` - But it leaves open the possibility for library authors to do fun things. - Example, IPython 2.0 widgets. - Run IPython notebook (in Python 3) from IPython git checkout and open http://<IP_ADDRESS>:8888/notebooks/examples/Interactive%20Widgets/Image%20Processing.ipynb --- layout: true # Feature 11: Unicode and bytes --- - In Python 2, `str` acts like bytes of data. - There is also `unicode` type to represent Unicode strings. -- - In Python 3, `str` is a *string*. - `bytes` are bytes. - There is no `unicode`. `str` strings are Unicode. --- layout: true # Feature 12: Matrix Multiplication --- In Python 3.5, you are able to replace ```py >>> a = np.array([[1, 0], [0, 1]]) >>> b = np.array([[4, 1], [2, 2]]) >>> np.dot(a, b) array([[4, 1], [2, 2]]) ``` with ```py >>> a = np.array([[1, 0], [0, 1]]) >>> b = np.array([[4, 1], [2, 2]]) >>> a @ b array([[4, 1], [2, 2]]) ``` - Any object can override `__matmul__` to use `@`. --- layout: true # Feature 13: Pathlib --- - In Python 2, path handling is verbose ```py import os directory = "/etc" filepath = os.path.join(directory, "test_file.txt") if os.path.exists(filepath): stuff ``` - In Python 3, it is much more simpler ```py from pathlib import Path directory = Path("/etc") filepath = directory / "test_file.txt" if filepath.exists(): stuff ``` --- layout: true class: center, middle --- # Discuss .center[![](homer.gif)] --- Slides were made with http://remarkjs.com/ All images have been blatantly stolen from the internet. Source for slides can be found at https://github.com/asmeurer/python3-presentation. I am Aaron Meurer ([@asmeurer](https://github.com/asmeurer/)). I gave this presentation on April 9, 2014 at [APUG](http://www.meetup.com/austinpython/).  This presentation was updated by Jules David ([@galactics](https://github.com/galactics)) on march 2016, to include some changes brought by Python 3.5.


You are viewing an historical archive of past issues. Please report new issues to the appropriate project issue tracker on GitHub.
Issues
| # | Summary | Product | Status | Kind | When |
|---|---|---|---|---|---|
| 1995 |
CommandTAcceptSelection error |
Command-T | closed | bug | Created , updated |
| 1994 |
Output a warning when g:CommandTMaxFiles is reached |
Command-T | closed | bug | Created , updated |
| 1993 |
System-wide installation |
Command-T | open | bug | Created , updated |
| 1992 |
Authorship info misaligned on forum topic |
wincent.com | closed | bug | Created , updated |
| 1991 |
Crashes Vim on Mountain Lion |
Command-T | closed | support ticket | Created , updated |
| 1990 |
my registration info does not work |
Synergy | open | support ticket | |
| 1989 |
Test to see whether a computed goto could beat the performance of the giant switch statement |
wikitext | open | feature request | |
| 1988 |
Update to Git v<IP_ADDRESS> |
wincent.com | closed | feature request | Created , updated |
| 1987 |
synergy will not start on log in |
Synergy | open | bug | |
| 1986 |
Set up delayed_job for async processing |
wincent.com | open | feature request |


TRACK RACING
Crest / RBM Cycling is the promoter of the following premier track races
- Dollar Night at the $uperdrome
- Track on Speed
For more information on the Superdrome please go to www.superdrome.com
or for information on races visit www.TxBra.org


{% load i18n %} {% load static %}
{% blocktrans %}Deposit {{ amount }} {{ coin }} into {{ payment_info }}{% endblocktrans %}
{% blocktrans trimmed %} We're waiting for a successful deposit to the address provided. Kindly deposit to the address and wait for confirmation. Please contact us if this takes more than an hour after you've made a deposit. {% endblocktrans %}


WITNESS LIST Business & Industry Committee (Subcommittee on Mergers & Acquisitions) June 3, 1998-1:30P Mergers & Acquisitions On: Bailey, Charles (Texas Hospital Assoc) Bearden, Mary (herself) Corrigan, Robert (himself) James, Reggie (Consumers Union) Kamm, Robert (TABCC) Perkins, Pam (OAG) Sylvester, James (himself) Tobey, Mark (OAG) Willcutts, Karen (herself)


Well-known Asian & European view sports Betting available here
Unforgettable experience with the best live casino games online
Exciting animations and cool 3D Effects
Unforgettable experience with the best live casino games online
Exciting animations and cool 3D Effects


{{?content.scheduled}}
Since Chrome {{content.scheduled}}.
Warning: this is the current Dev channel.
{{:content.scheduled}}
Dev channel only.
{{/content.scheduled}}
{{- TODO(kalman): Link to an actual article about API/feature availability and
feature detection. -}}
Learn more.


(234) 567-8910
This is the first test item about housing.
This is the second test item about health.
This is the third test item about housing.


Example
Plugins are used to perform drawing operations. Here the fill plugin gets applied on the rectangle plugin. This operation is called application. Gray is the default fill style: a gray rectangle!fill => rect
Example
You can assign properties to plugins. e.g. set a fill color. The syntax is CSS-like.fill{color:#f80} => rect
Example
A plugin exists for rounded rectangles. Oh, btw.: You should really resize your browser window - now! :-)fill{color:#fff} => roundedRect
Example
You can also set the properties of plugins on the right hand side. More curves!!!fill => roundedRect{radius:80}
Example
Using an array-like syntax you can chain plugins: First draw a shadow, then fill it. Both plugins in the chain act on a roundedRect.[shadow fill] => roundedRect
Example
You can chain as mainy plugins as you want. Properties can by set on any plugin.[shadow border{color:#fff} fill{color:#f80}] => roundedRect{radius:30}
Example
Loads of plugins exist, e.g. the gradient plugin - and you can write your own! If you are familiar with HTML canvas you're ready to go.gradient{from:rgba(255, 255, 255, 0.2); to:#888;} => roundedRect{radius:50}
Example
Applications can be chained as well to perform multiple operations inside one canvas. Just seperate them with a comma.gradient => rect, border => roundedRect{radius:60}
Example
The application operation can be used recursively by using regular brackets. This gives a different way of chaining operations.fill => rect, mandala => ([border{color:#fff; width:1}] => roundedRect{radius:10})


| Pedigree of : |
| Kriscoland's Plum Crazy |
| Born: January 25, 2005 |
| Ch. Kriscoland's Blast Off |
Tabatha's Hunterleigh Rocket |
Am Ch Dickendall Arnold |
Am Ch Dickendall Ruffy SH |
| Dickendall A-Ha | |||
| Tabatha's Pocket |
Bryndafydd Beren | ||
| Tabatha's Tangle | |||
| Ch. Kriscoland's Purify Me Claire MBISS |
Ch Kriscoland Hunterleigh Wink
|
Kellygreens High Diver | |
| Ch Hunterleigh Kriscoland Summer |
|||
| Kriscoland's Nell |
Ch Balcroft's Reedbay Time Traveler | ||
| Beautawn's Ties To Kriscoland |
|
Parents
|
Grand Parents
|
Great Grand Parents
|
Great Great Grand Parent
|
|
Ch Kriscoland's Perpetual Breeze |
Am Can Ch Kriscoland's Distictive Mark WC
|
Ch Kriscoland's Sensation' Al
|
Int Ch Autumn's Thunder Vision JH
|
|
Ch Hunterleigh Kriscoland Summer
|
|||
|
Kriscoland's Nell
|
Ch Balcroft's Reedbay Time Traveler | ||
|
Beautawn's Ties To Kriscoland
|
|||
|
Ch Kriscoland's West Coast Breeze
|
Wingmstr's Just Another Fella
|
Wingmstr's Yellow Fella
|
|
|
Jennifers Sugar Kane Lade
|
|||
|
Ch Kriscoland Hunterleigh Pearl
|
Kellygreens High Diver
|
||
|
Ch Hunterleigh Kriscoland Summer
|
Copyright © 2000 - 2001 Harold
deGroot - Last Update : March 4, 2003
All Rights Reserved
Webmaster: hdegroot@staghorn-labs.com


This page lists all projects associated with the currently selected proposal.
Projects allow you to group data collections, proteins, and samples into a single place