public class SecondaryCursor extends Cursor
Secondary cursors are returned by SecondaryDatabase.openCursor
and SecondaryDatabase.openSecondaryCursor
. The distinguishing characteristics
of a secondary cursor are:
put()
methods on a secondary cursor
are prohibited.
delete(com.sleepycat.je.WriteOptions)
method of a secondary cursor will delete the primary
record and as well as all its associated secondary records.
dup(boolean)
will return a SecondaryCursor
.
To obtain a secondary cursor with default attributes:
SecondaryCursor cursor = myDb.openSecondaryCursor(txn, null);
To customize the attributes of a cursor, use a CursorConfig object.
CursorConfig config = new CursorConfig(); config.setReadUncommitted(true); SecondaryCursor cursor = myDb.openSecondaryCursor(txn, config);
| Modifier and Type | Method and Description |
|---|---|
OperationStatus |
delete()
Delete the record to which the cursor refers from the primary database
and all secondary indices.
|
OperationResult |
delete(WriteOptions options)
Delete the record to which the cursor refers from the primary database
and all secondary indices.
|
SecondaryCursor |
dup(boolean samePosition)
Returns a new
SecondaryCursor for the same transaction as
the original cursor. |
SecondaryCursor |
dupSecondary(boolean samePosition)
Deprecated.
As of JE 4.0.13, replaced by
Cursor.dup(boolean) . |
OperationResult |
get(DatabaseEntry key,
DatabaseEntry pKey,
DatabaseEntry data,
Get getType,
ReadOptions options)
Moves the cursor to a record according to the specified
Get
type. |
OperationResult |
get(DatabaseEntry key,
DatabaseEntry data,
Get getType,
ReadOptions options)
Moves the cursor to a record according to the specified
Get
type. |
OperationStatus |
getCurrent(DatabaseEntry key,
DatabaseEntry pKey,
DatabaseEntry data,
LockMode lockMode)
Returns the key/data pair to which the cursor refers.
|
OperationStatus |
getCurrent(DatabaseEntry key,
DatabaseEntry data,
LockMode lockMode)
Returns the key/data pair to which the cursor refers.
|
SecondaryDatabase |
getDatabase()
Returns the Database handle associated with this Cursor.
|
OperationStatus |
getFirst(DatabaseEntry key,
DatabaseEntry pKey,
DatabaseEntry data,
LockMode lockMode)
Move the cursor to the first key/data pair of the database, and return
that pair.
|
OperationStatus |
getFirst(DatabaseEntry key,
DatabaseEntry data,
LockMode lockMode)
Moves the cursor to the first key/data pair of the database, and returns
that pair.
|
OperationStatus |
getLast(DatabaseEntry key,
DatabaseEntry pKey,
DatabaseEntry data,
LockMode lockMode)
Move the cursor to the last key/data pair of the database, and return
that pair.
|
OperationStatus |
getLast(DatabaseEntry key,
DatabaseEntry data,
LockMode lockMode)
Moves the cursor to the last key/data pair of the database, and returns
that pair.
|
OperationStatus |
getNext(DatabaseEntry key,
DatabaseEntry pKey,
DatabaseEntry data,
LockMode lockMode)
Move the cursor to the next key/data pair and return that pair.
|
OperationStatus |
getNext(DatabaseEntry key,
DatabaseEntry data,
LockMode lockMode)
Moves the cursor to the next key/data pair and returns that pair.
|
OperationStatus |
getNextDup(DatabaseEntry key,
DatabaseEntry pKey,
DatabaseEntry data,
LockMode lockMode)
If the next key/data pair of the database is a duplicate data record for
the current key/data pair, move the cursor to the next key/data pair of
the database and return that pair.
|
OperationStatus |
getNextDup(DatabaseEntry key,
DatabaseEntry data,
LockMode lockMode)
If the next key/data pair of the database is a duplicate data record for
the current key/data pair, moves the cursor to the next key/data pair of
the database and returns that pair.
|
OperationStatus |
getNextNoDup(DatabaseEntry key,
DatabaseEntry pKey,
DatabaseEntry data,
LockMode lockMode)
Move the cursor to the next non-duplicate key/data pair and return that
pair.
|
OperationStatus |
getNextNoDup(DatabaseEntry key,
DatabaseEntry data,
LockMode lockMode)
Moves the cursor to the next non-duplicate key/data pair and returns
that pair.
|
OperationStatus |
getPrev(DatabaseEntry key,
DatabaseEntry pKey,
DatabaseEntry data,
LockMode lockMode)
Move the cursor to the previous key/data pair and return that pair.
|
OperationStatus |
getPrev(DatabaseEntry key,
DatabaseEntry data,
LockMode lockMode)
Moves the cursor to the previous key/data pair and returns that pair.
|
OperationStatus |
getPrevDup(DatabaseEntry key,
DatabaseEntry pKey,
DatabaseEntry data,
LockMode lockMode)
If the previous key/data pair of the database is a duplicate data record
for the current key/data pair, move the cursor to the previous key/data
pair of the database and return that pair.
|
OperationStatus |
getPrevDup(DatabaseEntry key,
DatabaseEntry data,
LockMode lockMode)
If the previous key/data pair of the database is a duplicate data record
for the current key/data pair, moves the cursor to the previous key/data
pair of the database and returns that pair.
|
OperationStatus |
getPrevNoDup(DatabaseEntry key,
DatabaseEntry pKey,
DatabaseEntry data,
LockMode lockMode)
Move the cursor to the previous non-duplicate key/data pair and return
that pair.
|
OperationStatus |
getPrevNoDup(DatabaseEntry key,
DatabaseEntry data,
LockMode lockMode)
Moves the cursor to the previous non-duplicate key/data pair and returns
that pair.
|
Database |
getPrimaryDatabase()
Returns the primary
Database
associated with this cursor. |
OperationStatus |
getSearchBoth(DatabaseEntry key,
DatabaseEntry pKey,
DatabaseEntry data,
LockMode lockMode)
Move the cursor to the specified secondary and primary key, where both
the primary and secondary key items must match.
|
OperationStatus |
getSearchBoth(DatabaseEntry key,
DatabaseEntry data,
LockMode lockMode)
This operation is not allowed with this method signature.
|
OperationStatus |
getSearchBothRange(DatabaseEntry key,
DatabaseEntry pKey,
DatabaseEntry data,
LockMode lockMode)
Move the cursor to the specified secondary key and closest matching
primary key of the database.
|
OperationStatus |
getSearchBothRange(DatabaseEntry key,
DatabaseEntry data,
LockMode lockMode)
This operation is not allowed with this method signature.
|
OperationStatus |
getSearchKey(DatabaseEntry key,
DatabaseEntry pKey,
DatabaseEntry data,
LockMode lockMode)
Move the cursor to the given key of the database, and return the datum
associated with the given key.
|
OperationStatus |
getSearchKey(DatabaseEntry key,
DatabaseEntry data,
LockMode lockMode)
Moves the cursor to the given key of the database, and returns the datum
associated with the given key.
|
OperationStatus |
getSearchKeyRange(DatabaseEntry key,
DatabaseEntry pKey,
DatabaseEntry data,
LockMode lockMode)
Move the cursor to the closest matching key of the database, and return
the data item associated with the matching key.
|
OperationStatus |
getSearchKeyRange(DatabaseEntry key,
DatabaseEntry data,
LockMode lockMode)
Moves the cursor to the closest matching key of the database, and
returns the data item associated with the matching key.
|
OperationStatus |
put(DatabaseEntry key,
DatabaseEntry data)
This operation is not allowed on a secondary cursor.
|
OperationResult |
put(DatabaseEntry key,
DatabaseEntry data,
Put putType,
WriteOptions options)
This operation is not allowed on a secondary cursor.
|
OperationStatus |
putCurrent(DatabaseEntry data)
This operation is not allowed on a secondary cursor.
|
OperationStatus |
putNoDupData(DatabaseEntry key,
DatabaseEntry data)
This operation is not allowed on a secondary cursor.
|
OperationStatus |
putNoOverwrite(DatabaseEntry key,
DatabaseEntry data)
This operation is not allowed on a secondary cursor.
|
close, count, countEstimate, getCacheMode, getConfig, setCacheMode, skipNext, skipPrev
public SecondaryDatabase getDatabase()
getDatabase
in interface ForwardCursor
getDatabase
in class Cursor
public Database getPrimaryDatabase()
Database
associated with this cursor.
Calling this method is the equivalent of the following expression:
getDatabase().getPrimaryDatabase()
Database
associated with this cursor.public SecondaryCursor dup(boolean samePosition)
SecondaryCursor
for the same transaction as
the original cursor.
dup
in class Cursor
samePosition
- If true, the newly created cursor is initialized
to refer to the same position in the database as the original cursor
(if any) and hold the same locks (if any). If false, or the original
cursor does not hold a database position and locks, the returned
cursor is uninitialized and will behave like a newly created cursor.public SecondaryCursor dupSecondary(boolean samePosition)
Cursor.dup(boolean)
.SecondaryCursor
.
Calling this method is the equivalent of calling dup(boolean)
and
casting the result to SecondaryCursor
.
dup(boolean)
public OperationResult delete(WriteOptions options)
This method behaves as if Database.delete(Transaction,
DatabaseEntry, WriteOptions)
were called for the primary database,
using the primary key associated with this cursor position.
The cursor position is unchanged after a delete, and subsequent calls to cursor functions expecting the cursor to refer to an existing record will fail.
WARNING: Unlike read operations using a SecondaryCursor, write operations like this one are deadlock-prone.
public OperationStatus delete()
This method behaves as if Database.delete(Transaction,
DatabaseEntry, WriteOptions)
were called for the primary database,
using the primary key associated with this cursor position.
The cursor position is unchanged after a delete, and subsequent calls to cursor functions expecting the cursor to refer to an existing record will fail.
Calling this method is equivalent to calling delete(WriteOptions)
.
delete
in class Cursor
OperationStatus.KEYEMPTY
if the record at the cursor position has
already been deleted; otherwise, OperationStatus.SUCCESS
.public OperationResult put(DatabaseEntry key, DatabaseEntry data, Put putType, WriteOptions options)
UnsupportedOperationException
will always be thrown by this method.
The corresponding method on the primary cursor should be used instead.put
in class Cursor
key
- the key used as
input. Must be null when
putType is Put.CURRENT
.data
- the data used as
input. May be partial only when
putType is Put.CURRENT
.putType
- the Put operation type. May not be null.options
- the WriteOptions, or null to use default options.public OperationStatus put(DatabaseEntry key, DatabaseEntry data)
UnsupportedOperationException
will always be thrown by this method.
The corresponding method on the primary cursor should be used instead.put
in class Cursor
key
- the key used as
input..data
- the data used as
input.OperationStatus.SUCCESS
.public OperationStatus putNoOverwrite(DatabaseEntry key, DatabaseEntry data)
UnsupportedOperationException
will always be thrown by this method.
The corresponding method on the primary cursor should be used instead.putNoOverwrite
in class Cursor
key
- the key used as
input..data
- the data used as
input.OperationStatus.KEYEXIST
if the key already appears in the database,
else OperationStatus.SUCCESS
public OperationStatus putNoDupData(DatabaseEntry key, DatabaseEntry data)
UnsupportedOperationException
will always be thrown by this method.
The corresponding method on the primary cursor should be used instead.putNoDupData
in class Cursor
key
- the key used as
input..data
- the data used as
input.OperationStatus.KEYEXIST
if the key/data pair already appears in the
database, else OperationStatus.SUCCESS
public OperationStatus putCurrent(DatabaseEntry data)
UnsupportedOperationException
will always be thrown by this method.
The corresponding method on the primary cursor should be used instead.putCurrent
in class Cursor
data
- the data used as
input.
A partial data item may be
specified to optimize for partial data update.OperationStatus.KEYEMPTY
if the key/pair at the cursor position has
been deleted; otherwise, OperationStatus.SUCCESS
.public OperationResult get(DatabaseEntry key, DatabaseEntry data, Get getType, ReadOptions options)
Get
type.
The difference between this method and the method it overrides in
Cursor
is that the key here is defined as the secondary
records's key, and the data is defined as the primary record's data.
In addition, two operations are not supported by this method:
Get.SEARCH_BOTH
and Get.SEARCH_BOTH_GTE
.
get
in interface ForwardCursor
get
in class Cursor
key
- the key input or output parameter, depending on getType.data
- the data input or output parameter, depending on getType.getType
- the Get operation type. May not be null.options
- the ReadOptions, or null to use default options.public OperationResult get(DatabaseEntry key, DatabaseEntry pKey, DatabaseEntry data, Get getType, ReadOptions options)
Get
type.
If the operation succeeds, the record at the resulting cursor
position will be locked according to the lock mode
specified, the key, primary key,
and/or data will be returned via the (non-null) DatabaseEntry
parameters, and a non-null OperationResult will be returned. If the
operation fails because the record requested is not found, null is
returned.
The following table lists each allowed operation and whether the key,
pKey and data parameters are input
or output parameters. Also specified is whether the cursor must be
initialized (positioned on a record) before calling this method. See the
individual Get
operations for more information.
| Get operation | Description | 'key' parameter | 'pKey' parameter | 'data' parameter | Cursor position must be initialized? |
|---|---|---|---|---|---|
Get.SEARCH |
Searches using an exact match by key. | input | output | output | no |
Get.SEARCH_BOTH |
Searches using an exact match by key and pKey. | input | input | output | no |
Get.SEARCH_GTE |
Searches using a GTE match by key. | input/output | output | output | no |
Get.SEARCH_BOTH_GTE |
Searches using an exact match by key and a GTE match by pKey. | input | input/output | output | no |
Get.CURRENT |
Accesses the current record | output | output | output | yes |
Get.FIRST |
Finds the first record in the database. | output | output | output | no |
Get.LAST |
Finds the last record in the database. | output | output | output | no |
Get.NEXT |
Moves to the next record. | output | output | output | no** |
Get.NEXT_DUP |
Moves to the next record with the same key. | output | output | output | yes |
Get.NEXT_NO_DUP |
Moves to the next record with a different key. | output | output | output | no** |
Get.PREV |
Moves to the previous record. | output | output | output | no** |
Get.PREV_DUP |
Moves to the previous record with the same key. | output | output | output | yes |
Get.PREV_NO_DUP |
Moves to the previous record with a different key. | output | output | output | no** |
** - For these 'next' and 'previous' operations the cursor may be uninitialized, in which case the cursor will be moved to the first or last record, respectively.
key
- the secondary key input or output parameter, depending on
getType.pKey
- the primary key input or output parameter, depending on
getType.data
- the primary data output parameter.getType
- the Get operation type. May not be null.options
- the ReadOptions, or null to use default options.OperationFailureException
- if one of the Read Operation
Failures occurs.EnvironmentFailureException
- if an unexpected, internal or
environment-wide failure occurs.java.lang.IllegalStateException
- if the cursor or database has been closed,
the cursor is uninitialized (not positioned on a record) and this is not
permitted (see above), or the non-transactional cursor was created in a
different thread.java.lang.IllegalArgumentException
- if an invalid parameter is specified.
This includes passing a null getType, a null input key/pKey parameter,
an input key/pKey parameter with a null data array, a partial key/pKey
input parameter, and specifying a lock mode
of READ_COMMITTED.public OperationStatus getCurrent(DatabaseEntry key, DatabaseEntry data, LockMode lockMode)
Calling this method is equivalent to calling Cursor.get(DatabaseEntry, DatabaseEntry, Get, ReadOptions)
with
Get.CURRENT
.
Cursor
is that the key here is defined as the secondary
records's key, and the data is defined as the primary record's data.getCurrent
in interface ForwardCursor
getCurrent
in class Cursor
key
- the key returned as
output.data
- the data returned as
output.lockMode
- the locking attributes; if null, default attributes are
used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.KEYEMPTY
if the key/pair at the cursor position has
been deleted; otherwise, OperationStatus.SUCCESS
.public OperationStatus getCurrent(DatabaseEntry key, DatabaseEntry pKey, DatabaseEntry data, LockMode lockMode)
key
- the secondary key returned as output. Its byte array does
not need to be initialized by the caller.pKey
- the primary key returned as output. Its byte array does not
need to be initialized by the caller.data
- the primary data returned as output. Its byte array does
not need to be initialized by the caller.
A partial data item may be
specified to optimize for key only or partial data retrieval.lockMode
- the locking attributes; if null, default attributes are
used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.KEYEMPTY
if the key/pair at the cursor position has
been deleted; otherwise, OperationStatus.SUCCESS
.OperationFailureException
- if one of the Read Operation
Failures occurs.EnvironmentFailureException
- if an unexpected, internal or
environment-wide failure occurs.java.lang.IllegalStateException
- if the cursor or database has been closed,
or the cursor is uninitialized (not positioned on a record), or the
non-transactional cursor was created in a different thread.java.lang.IllegalArgumentException
- if an invalid parameter is specified,
for example, if a DatabaseEntry parameter is null or does not contain a
required non-null byte array.public OperationStatus getFirst(DatabaseEntry key, DatabaseEntry data, LockMode lockMode)
Calling this method is equivalent to calling Cursor.get(DatabaseEntry, DatabaseEntry, Get, ReadOptions)
with
Get.FIRST
.
Cursor
is that the key here is defined as the secondary
records's key, and the data is defined as the primary record's data.getFirst
in class Cursor
key
- the key returned as
output.data
- the data returned as
output.lockMode
- the locking attributes; if null, default attributes are
used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.NOTFOUND
if no matching key/data pair is found;
otherwise, OperationStatus.SUCCESS
.public OperationStatus getFirst(DatabaseEntry key, DatabaseEntry pKey, DatabaseEntry data, LockMode lockMode)
key
- the secondary key returned as output. Its byte array does
not need to be initialized by the caller.pKey
- the primary key returned as output. Its byte array does not
need to be initialized by the caller.data
- the primary data returned as output. Its byte array does
not need to be initialized by the caller.
A partial data item may be
specified to optimize for key only or partial data retrieval.lockMode
- the locking attributes; if null, default attributes are
used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.NOTFOUND
if no matching key/data pair is found;
otherwise, OperationStatus.SUCCESS
.OperationFailureException
- if one of the Read Operation
Failures occurs.EnvironmentFailureException
- if an unexpected, internal or
environment-wide failure occurs.java.lang.IllegalStateException
- if the cursor or database has been closed,
or the non-transactional cursor was created in a different thread.java.lang.IllegalArgumentException
- if an invalid parameter is specified,
for example, if a DatabaseEntry parameter is null or does not contain a
required non-null byte array.public OperationStatus getLast(DatabaseEntry key, DatabaseEntry data, LockMode lockMode)
Calling this method is equivalent to calling Cursor.get(DatabaseEntry, DatabaseEntry, Get, ReadOptions)
with
Get.LAST
.
Cursor
is that the key here is defined as the secondary
records's key, and the data is defined as the primary record's data.getLast
in class Cursor
key
- the key returned as
output.data
- the data returned as
output.lockMode
- the locking attributes; if null, default attributes are
used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.NOTFOUND
if no matching key/data pair is found;
otherwise, OperationStatus.SUCCESS
.public OperationStatus getLast(DatabaseEntry key, DatabaseEntry pKey, DatabaseEntry data, LockMode lockMode)
key
- the secondary key returned as output. Its byte array does
not need to be initialized by the caller.pKey
- the primary key returned as output. Its byte array does not
need to be initialized by the caller.data
- the primary data returned as output. Its byte array does
not need to be initialized by the caller.
A partial data item may be
specified to optimize for key only or partial data retrieval.lockMode
- the locking attributes; if null, default attributes are
used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.NOTFOUND
if no matching key/data pair is found;
otherwise, OperationStatus.SUCCESS
.OperationFailureException
- if one of the Read Operation
Failures occurs.EnvironmentFailureException
- if an unexpected, internal or
environment-wide failure occurs.java.lang.IllegalStateException
- if the cursor or database has been closed,
or the non-transactional cursor was created in a different thread.java.lang.IllegalArgumentException
- if an invalid parameter is specified,
for example, if a DatabaseEntry parameter is null or does not contain a
required non-null byte array.public OperationStatus getNext(DatabaseEntry key, DatabaseEntry data, LockMode lockMode)
Calling this method is equivalent to calling Cursor.get(DatabaseEntry, DatabaseEntry, Get, ReadOptions)
with
Get.NEXT
.
If the cursor is not yet initialized, move the cursor to the first key/data pair of the database, and return that pair. Otherwise, the cursor is moved to the next key/data pair of the database, and that pair is returned. In the presence of duplicate key values, the value of the key may not change.
The difference between this method and the method it overrides inCursor
is that the key here is defined as the secondary
records's key, and the data is defined as the primary record's data.getNext
in interface ForwardCursor
getNext
in class Cursor
key
- the key returned as
output.data
- the data returned as
output.lockMode
- the locking attributes; if null, default attributes are
used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.NOTFOUND
if no matching key/data pair is found;
otherwise, OperationStatus.SUCCESS
.public OperationStatus getNext(DatabaseEntry key, DatabaseEntry pKey, DatabaseEntry data, LockMode lockMode)
If the cursor is not yet initialized, move the cursor to the first key/data pair of the database, and return that pair. Otherwise, the cursor is moved to the next key/data pair of the database, and that pair is returned. In the presence of duplicate key values, the value of the key may not change.
key
- the secondary key returned as output. Its byte array does
not need to be initialized by the caller.pKey
- the primary key returned as output. Its byte array does not
need to be initialized by the caller.data
- the primary data returned as output. Its byte array does
not need to be initialized by the caller.
A partial data item may be
specified to optimize for key only or partial data retrieval.lockMode
- the locking attributes; if null, default attributes are
used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.NOTFOUND
if no matching key/data pair is found;
otherwise, OperationStatus.SUCCESS
.OperationFailureException
- if one of the Read Operation
Failures occurs.EnvironmentFailureException
- if an unexpected, internal or
environment-wide failure occurs.java.lang.IllegalStateException
- if the cursor or database has been closed,
or the non-transactional cursor was created in a different thread.java.lang.IllegalArgumentException
- if an invalid parameter is specified,
for example, if a DatabaseEntry parameter is null or does not contain a
required non-null byte array.public OperationStatus getNextDup(DatabaseEntry key, DatabaseEntry data, LockMode lockMode)
Calling this method is equivalent to calling Cursor.get(DatabaseEntry, DatabaseEntry, Get, ReadOptions)
with
Get.NEXT_DUP
.
Cursor
is that the key here is defined as the secondary
records's key, and the data is defined as the primary record's data.getNextDup
in class Cursor
key
- the key returned as
output.data
- the data returned as
output.lockMode
- the locking attributes; if null, default attributes are
used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.NOTFOUND
if no matching key/data pair is found;
otherwise, OperationStatus.SUCCESS
.public OperationStatus getNextDup(DatabaseEntry key, DatabaseEntry pKey, DatabaseEntry data, LockMode lockMode)
key
- the secondary key returned as output. Its byte array does
not need to be initialized by the caller.pKey
- the primary key returned as output. Its byte array does not
need to be initialized by the caller.data
- the primary data returned as output. Its byte array does
not need to be initialized by the caller.
A partial data item may be
specified to optimize for key only or partial data retrieval.lockMode
- the locking attributes; if null, default attributes are
used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.NOTFOUND
if no matching key/data pair is found;
otherwise, OperationStatus.SUCCESS
.OperationFailureException
- if one of the Read Operation
Failures occurs.EnvironmentFailureException
- if an unexpected, internal or
environment-wide failure occurs.java.lang.IllegalStateException
- if the cursor or database has been closed,
or the cursor is uninitialized (not positioned on a record), or the
non-transactional cursor was created in a different thread.java.lang.IllegalArgumentException
- if an invalid parameter is specified,
for example, if a DatabaseEntry parameter is null or does not contain a
required non-null byte array.public OperationStatus getNextNoDup(DatabaseEntry key, DatabaseEntry data, LockMode lockMode)
Calling this method is equivalent to calling Cursor.get(DatabaseEntry, DatabaseEntry, Get, ReadOptions)
with
Get.NEXT_NO_DUP
.
If the cursor is not yet initialized, move the cursor to the first key/data pair of the database, and return that pair. Otherwise, the cursor is moved to the next non-duplicate key of the database, and that key/data pair is returned.
The difference between this method and the method it overrides inCursor
is that the key here is defined as the secondary
records's key, and the data is defined as the primary record's data.getNextNoDup
in class Cursor
key
- the key returned as
output.data
- the data returned as
output.lockMode
- the locking attributes; if null, default attributes are
used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.NOTFOUND
if no matching key/data pair is found;
otherwise, OperationStatus.SUCCESS
.public OperationStatus getNextNoDup(DatabaseEntry key, DatabaseEntry pKey, DatabaseEntry data, LockMode lockMode)
If the cursor is not yet initialized, move the cursor to the first key/data pair of the database, and return that pair. Otherwise, the cursor is moved to the next non-duplicate key of the database, and that key/data pair is returned.
key
- the secondary key returned as output. Its byte array does
not need to be initialized by the caller.pKey
- the primary key returned as output. Its byte array does not
need to be initialized by the caller.data
- the primary data returned as output. Its byte array does
not need to be initialized by the caller.
A partial data item may be
specified to optimize for key only or partial data retrieval.lockMode
- the locking attributes; if null, default attributes are
used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.NOTFOUND
if no matching key/data pair is found;
otherwise, OperationStatus.SUCCESS
.OperationFailureException
- if one of the Read Operation
Failures occurs.EnvironmentFailureException
- if an unexpected, internal or
environment-wide failure occurs.java.lang.IllegalStateException
- if the cursor or database has been closed,
or the non-transactional cursor was created in a different thread.java.lang.IllegalArgumentException
- if an invalid parameter is specified,
for example, if a DatabaseEntry parameter is null or does not contain a
required non-null byte array.public OperationStatus getPrev(DatabaseEntry key, DatabaseEntry data, LockMode lockMode)
Calling this method is equivalent to calling Cursor.get(DatabaseEntry, DatabaseEntry, Get, ReadOptions)
with
Get.PREV
.
If the cursor is not yet initialized, move the cursor to the last key/data pair of the database, and return that pair. Otherwise, the cursor is moved to the previous key/data pair of the database, and that pair is returned. In the presence of duplicate key values, the value of the key may not change.
The difference between this method and the method it overrides inCursor
is that the key here is defined as the secondary
records's key, and the data is defined as the primary record's data.getPrev
in class Cursor
key
- the key returned as
output.data
- the data returned as
output.lockMode
- the locking attributes; if null, default attributes are
used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.NOTFOUND
if no matching key/data pair is found;
otherwise, OperationStatus.SUCCESS
.public OperationStatus getPrev(DatabaseEntry key, DatabaseEntry pKey, DatabaseEntry data, LockMode lockMode)
If the cursor is not yet initialized, move the cursor to the last key/data pair of the database, and return that pair. Otherwise, the cursor is moved to the previous key/data pair of the database, and that pair is returned. In the presence of duplicate key values, the value of the key may not change.
key
- the secondary key returned as output. Its byte array does
not need to be initialized by the caller.pKey
- the primary key returned as output. Its byte array does not
need to be initialized by the caller.data
- the primary data returned as output. Its byte array does
not need to be initialized by the caller.
A partial data item may be
specified to optimize for key only or partial data retrieval.lockMode
- the locking attributes; if null, default attributes are
used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.NOTFOUND
if no matching key/data pair is found;
otherwise, OperationStatus.SUCCESS
.OperationFailureException
- if one of the Read Operation
Failures occurs.EnvironmentFailureException
- if an unexpected, internal or
environment-wide failure occurs.java.lang.IllegalStateException
- if the cursor or database has been closed,
or the non-transactional cursor was created in a different thread.java.lang.IllegalArgumentException
- if an invalid parameter is specified,
for example, if a DatabaseEntry parameter is null or does not contain a
required non-null byte array.public OperationStatus getPrevDup(DatabaseEntry key, DatabaseEntry data, LockMode lockMode)
Calling this method is equivalent to calling Cursor.get(DatabaseEntry, DatabaseEntry, Get, ReadOptions)
with
Get.PREV_DUP
.
Cursor
is that the key here is defined as the secondary
records's key, and the data is defined as the primary record's data.getPrevDup
in class Cursor
key
- the key returned as
output.data
- the data returned as
output.lockMode
- the locking attributes; if null, default attributes are
used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.NOTFOUND
if no matching key/data pair is found;
otherwise, OperationStatus.SUCCESS
.public OperationStatus getPrevDup(DatabaseEntry key, DatabaseEntry pKey, DatabaseEntry data, LockMode lockMode)
key
- the secondary key returned as output. Its byte array does
not need to be initialized by the caller.pKey
- the primary key returned as output. Its byte array does not
need to be initialized by the caller.data
- the primary data returned as output. Its byte array does
not need to be initialized by the caller.
A partial data item may be
specified to optimize for key only or partial data retrieval.lockMode
- the locking attributes; if null, default attributes are
used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.NOTFOUND
if no matching key/data pair is found;
otherwise, OperationStatus.SUCCESS
.OperationFailureException
- if one of the Read Operation
Failures occurs.EnvironmentFailureException
- if an unexpected, internal or
environment-wide failure occurs.java.lang.IllegalStateException
- if the cursor or database has been closed,
or the cursor is uninitialized (not positioned on a record), or the
non-transactional cursor was created in a different thread.java.lang.IllegalArgumentException
- if an invalid parameter is specified,
for example, if a DatabaseEntry parameter is null or does not contain a
required non-null byte array.public OperationStatus getPrevNoDup(DatabaseEntry key, DatabaseEntry data, LockMode lockMode)
Calling this method is equivalent to calling Cursor.get(DatabaseEntry, DatabaseEntry, Get, ReadOptions)
with
Get.PREV_NO_DUP
.
If the cursor is not yet initialized, move the cursor to the last key/data pair of the database, and return that pair. Otherwise, the cursor is moved to the previous non-duplicate key of the database, and that key/data pair is returned.
The difference between this method and the method it overrides inCursor
is that the key here is defined as the secondary
records's key, and the data is defined as the primary record's data.getPrevNoDup
in class Cursor
key
- the key returned as
output.data
- the data returned as
output.lockMode
- the locking attributes; if null, default attributes are
used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.NOTFOUND
if no matching key/data pair is found;
otherwise, OperationStatus.SUCCESS
.public OperationStatus getPrevNoDup(DatabaseEntry key, DatabaseEntry pKey, DatabaseEntry data, LockMode lockMode)
If the cursor is not yet initialized, move the cursor to the last key/data pair of the database, and return that pair. Otherwise, the cursor is moved to the previous non-duplicate key of the database, and that key/data pair is returned.
key
- the secondary key returned as output. Its byte array does
not need to be initialized by the caller.pKey
- the primary key returned as output. Its byte array does not
need to be initialized by the caller.data
- the primary data returned as output. Its byte array does
not need to be initialized by the caller.
A partial data item may be
specified to optimize for key only or partial data retrieval.lockMode
- the locking attributes; if null, default attributes are
used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.NOTFOUND
if no matching key/data pair is found;
otherwise, OperationStatus.SUCCESS
.OperationFailureException
- if one of the Read Operation
Failures occurs.EnvironmentFailureException
- if an unexpected, internal or
environment-wide failure occurs.java.lang.IllegalStateException
- if the cursor or database has been closed,
or the non-transactional cursor was created in a different thread.java.lang.IllegalArgumentException
- if an invalid parameter is specified,
for example, if a DatabaseEntry parameter is null or does not contain a
required non-null byte array.public OperationStatus getSearchKey(DatabaseEntry key, DatabaseEntry data, LockMode lockMode)
Calling this method is equivalent to calling Cursor.get(DatabaseEntry, DatabaseEntry, Get, ReadOptions)
with
Get.SEARCH
.
Cursor
is that the key here is defined as the secondary
records's key, and the data is defined as the primary record's data.getSearchKey
in class Cursor
key
- the key used as
input.data
- the data returned as
output.lockMode
- the locking attributes; if null, default attributes are
used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.NOTFOUND
if no matching key/data pair is found;
otherwise, OperationStatus.SUCCESS
.public OperationStatus getSearchKey(DatabaseEntry key, DatabaseEntry pKey, DatabaseEntry data, LockMode lockMode)
key
- the secondary key used as input. It must be initialized with
a non-null byte array by the caller.pKey
- the primary key returned as output. Its byte array does not
need to be initialized by the caller.data
- the primary data returned as output. Its byte array does
not need to be initialized by the caller.
A partial data item may be
specified to optimize for key only or partial data retrieval.lockMode
- the locking attributes; if null, default attributes are
used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.NOTFOUND
if no matching key/data pair is found;
otherwise, OperationStatus.SUCCESS
.OperationFailureException
- if one of the Read Operation
Failures occurs.EnvironmentFailureException
- if an unexpected, internal or
environment-wide failure occurs.java.lang.IllegalStateException
- if the cursor or database has been closed,
or the non-transactional cursor was created in a different thread.java.lang.IllegalArgumentException
- if an invalid parameter is specified,
for example, if a DatabaseEntry parameter is null or does not contain a
required non-null byte array.public OperationStatus getSearchKeyRange(DatabaseEntry key, DatabaseEntry data, LockMode lockMode)
Calling this method is equivalent to calling Cursor.get(DatabaseEntry, DatabaseEntry, Get, ReadOptions)
with
Get.SEARCH_GTE
.
The returned key/data pair is for the smallest key greater than or equal to the specified key (as determined by the key comparison function), permitting partial key matches and range searches.
The difference between this method and the method it overrides inCursor
is that the key here is defined as the secondary
records's key, and the data is defined as the primary record's data.getSearchKeyRange
in class Cursor
key
- the key used as
input and returned as output.data
- the data returned as
output.lockMode
- the locking attributes; if null, default attributes
are used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.NOTFOUND
if no matching key/data pair is found;
otherwise, OperationStatus.SUCCESS
.public OperationStatus getSearchKeyRange(DatabaseEntry key, DatabaseEntry pKey, DatabaseEntry data, LockMode lockMode)
The returned key/data pair is for the smallest key greater than or equal to the specified key (as determined by the key comparison function), permitting partial key matches and range searches.
key
- the secondary key used as input and returned as output. It
must be initialized with a non-null byte array by the caller.pKey
- the primary key returned as output. Its byte array does not
need to be initialized by the caller.data
- the primary data returned as output. Its byte array does
not need to be initialized by the caller.
A partial data item may be
specified to optimize for key only or partial data retrieval.lockMode
- the locking attributes; if null, default attributes are
used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.NOTFOUND
if no matching key/data pair is found;
otherwise, OperationStatus.SUCCESS
.OperationFailureException
- if one of the Read Operation
Failures occurs.EnvironmentFailureException
- if an unexpected, internal or
environment-wide failure occurs.java.lang.IllegalStateException
- if the cursor or database has been closed,
or the non-transactional cursor was created in a different thread.java.lang.IllegalArgumentException
- if an invalid parameter is specified,
for example, if a DatabaseEntry parameter is null or does not contain a
required non-null byte array.public OperationStatus getSearchBoth(DatabaseEntry key, DatabaseEntry data, LockMode lockMode)
UnsupportedOperationException
will always be thrown by this method.
The corresponding method with the pKey
parameter should be
used instead.getSearchBoth
in class Cursor
key
- the key used as
input.data
- the data used as
input.lockMode
- the locking attributes; if null, default attributes are
used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.NOTFOUND
if no matching key/data pair is found;
otherwise, OperationStatus.SUCCESS
.public OperationStatus getSearchBoth(DatabaseEntry key, DatabaseEntry pKey, DatabaseEntry data, LockMode lockMode)
key
- the secondary key used as input. It must be initialized with
a non-null byte array by the caller.pKey
- the primary key used as input. It must be initialized with
a non-null byte array by the caller.data
- the primary data returned as output. Its byte array does
not need to be initialized by the caller.lockMode
- the locking attributes; if null, default attributes are
used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.NOTFOUND
if no matching key/data pair is found;
otherwise, OperationStatus.SUCCESS
.OperationFailureException
- if one of the Read Operation
Failures occurs.EnvironmentFailureException
- if an unexpected, internal or
environment-wide failure occurs.java.lang.IllegalStateException
- if the cursor or database has been closed,
or the non-transactional cursor was created in a different thread.java.lang.IllegalArgumentException
- if an invalid parameter is specified,
for example, if a DatabaseEntry parameter is null or does not contain a
required non-null byte array.public OperationStatus getSearchBothRange(DatabaseEntry key, DatabaseEntry data, LockMode lockMode)
UnsupportedOperationException
will always be thrown by this method.
The corresponding method with the pKey
parameter should be
used instead.getSearchBothRange
in class Cursor
key
- the key used as
input.data
- the data used as
input and returned as output.lockMode
- the locking attributes; if null, default attributes are
used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.NOTFOUND
if no matching key/data pair is found;
otherwise, OperationStatus.SUCCESS
.public OperationStatus getSearchBothRange(DatabaseEntry key, DatabaseEntry pKey, DatabaseEntry data, LockMode lockMode)
In the case of any database supporting sorted duplicate sets, the returned key/data pair is for the smallest primary key greater than or equal to the specified primary key (as determined by the key comparison function), permitting partial matches and range searches in duplicate data sets.
key
- the secondary key used as input. It must be initialized with
a non-null byte array by the caller.pKey
- the primary key used as input and returned as output. It
must be initialized with a non-null byte array by the caller.data
- the primary data returned as output. Its byte array does
not need to be initialized by the caller.lockMode
- the locking attributes; if null, default attributes are
used. LockMode.READ_COMMITTED
is not allowed.OperationStatus.NOTFOUND
if no matching key/data pair is found;
otherwise, OperationStatus.SUCCESS
.OperationFailureException
- if one of the Read Operation
Failures occurs.EnvironmentFailureException
- if an unexpected, internal or
environment-wide failure occurs.java.lang.IllegalStateException
- if the cursor or database has been closed,
or the non-transactional cursor was created in a different thread.java.lang.IllegalArgumentException
- if an invalid parameter is specified,
for example, if a DatabaseEntry parameter is null or does not contain a
required non-null byte array.Copyright (c) 2002, 2017 Oracle and/or its affiliates. All rights reserved.


Duality
Range Query
Your browser does not support HTML5
Your browser does not support HTML5
Clear
Your browser does not support the HTML5 canvas tag.
x range tree
Your browser does not support the HTML5 canvas tag.
y range tree
Your browser does not support the HTML5 canvas tag.
Your browser does not support the HTML5 canvas tag.
Clear


Structs
The following structs are available globally.
-
A container for animations. It contains both the animation to perform when the native view is updated and also the animations to use for children
See moreDeclaration
Swift
public struct AnimationContainer
-
See moreEdgeInsets
is the scalable counterpart ofUIEdgeInsets
Declaration
Swift
public struct EdgeInsets: Equatable
-
The default props for a
See moreNodeDescription
. Besidesframe
andkey
, this struct doesn’t have any other propertyDeclaration
Swift
public struct EmptyProps: NodeDescriptionProps
-
The default state for a
See moreNodeDescription
. This struct is basically emptyDeclaration
Swift
public struct EmptyState: NodeDescriptionState
-
See moreSize
is the scalable counterpart ofCGSize
Declaration
Swift
public struct Size: Equatable
-
The animation for a child of a
NodeDescription
.The idea is that, for elements that are either created or destroyed during an animation, we will compute initial or final state and then animate to/from there.
When an element is created during an animated update, we take the final state (that is, the state you have returned in the
childrenDescription
method) and we apply the transformers you have specified inentryTransformers
. The resulting props are used to render an intermediated state that will be animated to the final state.When an element is destroyed during an animated update, something similar happens. The only difference is that we take the initial state (that is, the state of the last render when the element was present) and we apply the transformers you have specified in
See moreleaveTransformers
Declaration
Swift
public struct Animation
-
A struct that contains the link source and all the linked actions that depends on the first one.
See moreDeclaration
Swift
public struct ActionLinks
-
A set of options that can be used to personalise the animations
See moreDeclaration
Swift
public struct AnimationOptions: OptionSet
-
Built in implementations of
See moreAnimationPropsTransformer
Declaration
Swift
public struct AnimationProps
-
An abstract representation of a
See morePlasticView
layout property.Declaration
Swift
public struct Anchor: Equatable
-
This struct is used as container to define the animations for the children
See moreDeclaration
Swift
public struct ChildrenAnimations<Key>
-
The engine that dispatches all the actions that depends on a triggered source action. This is invoked every time an action is dispatched. The ActionLinker is responsible to check if there are actions that must be issued after a source actionis dispatched. For each of this actions, it checks if the conditions are met: if yes, they are dispatched.
See moreDeclaration
Swift
public struct ActionLinker
-
See moreValue
is the scalable counterpart ofCGFloat
. It is composed by two parts: scalable and fixed. When scaling the value with a multiplier, the final value will bescalable * multiplier + fixed
.Declaration
Swift
public struct Value: Equatable


(For Customers, Service Providers and Business Associates)
Line Clear Express & Logistics Sdn Bhd including its branches in Malaysia
is committed to keep individual information of people (“customers and clients”)
protected and secured. We trust this Notice causes you realise how we handle
the individual information about our data subjects that we gather and how
data subjects can control our revelation of such information. Line Clear
Express & Logistics Sdn Bhd is subject to the Personal Data Protection
Act 2010 and this Notice seeks to outline how we intend to deliver all
the rights and protections and on what data subjects are entitled to.
Security of Personal Information
The security of individual information about you is our importance. We secure this information by keeping up physical, electronic, and procedural protections that meet or surpass material laws. We train our representatives in the best possible treatment of individual information. When we utilize 3rd parties to give services to us, we expect them to ensure the privacy of individual information that is transmitted to them.
What personal data we collect and how we collect your data?
Personal data refers to any information that relates directly or indirectly
to an individual, who is identified or identifiable from that information
or from that and other information in the possession of Line Clear Express
& Logistics, including any sensitive personal data and expression of
opinion, video recordings made through close circuit security surveillance
cameras placed for security reasons and audio recordings about the individual.
The types of personal data we collect may include, but is not limited to your name, address, other contact details, age, occupation, marital status, financial information such as your income, or income tax particulars your identity card or passport, place of birth, credit history and your transaction history.
Failure to provide such personal data/sensitive personal data may result in Line Clear Express & Logistics Sdn Bhd being unable to provide you with effective and continuous products and services.
Line Clear will collect your personal data through below:
The purposes for collecting your personal data:
The purpose for which personal data is collected and further processed
depends on the nature of your relationship with us and/or our third-party
service providers. Your personal data may be used for the following purposes:
–
Disclosure of your personal data:
Your personal data will be kept confidential but such personal data may
be provided to third parties who carry out functions on Line Clear Express
& Logistics Sdn Bhd behalf with whom we have contractual agreements
for some of our functions, services and activities for the purposes set
out below: –
The revelation of your information may include the exchange of your own information to places outside of Malaysia, and by giving us your own information you consent to such an exchange where it is required to give you the services/ products you have asked for, and for the execution of any legally binding commitments you have with Line Clear Express & Logistics Sdn Bhd.
We may share your information for our Protection and the Protection of Others.
We reserve the right to disclose your personally identifiable information
as required by law and when we believe that disclosure is necessary to
protect our rights and/or comply with a judicial proceeding, court order,
or legal process served on our Website; enforce or apply this Privacy Policy,
our Website Terms of Use or other agreements; or protect the rights, property
or safety of the Website, its Users or others.
Your Rights
a) Right to request access to personal data
You are entitled to request access to your personal data that is processed
by us with reasonable written notice and we will revert within 14 working
days.
b) Right to request correction of personal data
You are entitled to request the correction of your personal data that
is held by us with reasonable written notice. With respect to this, you
may:
Complaints and Disputes
If you have reason to believe that we have breached the principles as
laid out in this notice, we urge you to raise it with us.
Your Privacy Preferences and How to Contact Us:
Please remember that we will protect your personal data regardless of
your privacy preferences.
If: (a) you wish to find out more information, or raise any specific or
general concerns about Line Clear Express & Logistics Sdn Bhd and this
Notice, you may: –
Call: 03- 7890 3535
Email<EMAIL_ADDRESS>Line Clear Express & Logistics Sdn Bhd has the right to refuse your requests to access and/or to make any correction to your Personal Data for reasons permitted under the law, such as the expense of providing access to you is disproportionate to the risks to your privacy.
This Policy is subject to changes and we reserve the right to amend, alter and/or vary this Policy from time to time. Notification of changes would be made known to you through any suitable medium of communication or through our website. In any event of conflict between the English and Bahasa Malaysia language versions of this Policy, the English version shall prevail.


{% extends 'base.html' %} {% load static %} {% block doc_title %} - Home {% endblock %} {% block content %}
Key features of our club
Come Together..
Learn Together..
Grow Together...
To help others in reaching to their dreams.
To make students technically aware,so that they may work accordingly.
To bring some new technologies like IOT,Android,Artificial Intelligence,Machine Learning etc. in our college.
The ones who made this possible
Assistant Professor
Email: {{fac.email}}
Area of intrest: {{fac.area}}


{% extends "base.html" %} {% block content %}
Welcome to the dice game that utilizes Python for the back end and Flask for the web framework


你在上一节中发现 dict 的秘密功能了吗？你可以解释给自己吗？让我来给你解释一下，顺便和你自己的理解对比看有什么不同。这里是我们要讨论的代码：
cities['_find'] = find_city
city_found = cities['_find'](cities, state)
你要记住一个函数也可以作为一个变量，``def find_city`` 比如这一句创建了一个你可以在任何地方都能使用的变量。在这段代码里，我们首先把函数 find_city 放到叫做 cities 的字典中，并将其标记为 '_find'。 这和我们将州和市关联起来的代码做的事情一样，只不过我们在这里放了一个函数的名称。
好了，所以一旦我们知道 find_city 是在字典中 _find 的位置，这就意味着我们可以去调用它。第二行代码可以分解成如下步骤：
我再教你一个小技巧。如果你倒着阅读的话，代码可能会变得更容易理解。让我们来试一下，一样是那行：
还有一种方法读它，这回是“由里向外”。
数十年的编程下来，我在读代码的过程中已经用不到上面的三种方法了。我只要瞟一眼就能知道它的意思。甚至给我一整页的代码，我也可以一眼瞄出里边的 bug 和错误。这样的技能是花了超乎常人的时间和精力才锻炼得来的。在磨练的过程中，我学会了下面三种读代码的方法，它们是用户几乎所有的编程语言：
下次碰到难懂的语句时，你可以试试这三种方法。
现在我们来写这次的练习，写完后再过一遍，这节习题其实挺有趣的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 | from sys import exit
from random import randint
def death():
quips = ["You died.  You are the last surviving member and your last"
print "mission is to get the neutron destruct bomb from the Weapons Armory,"
print "put it in the bridge, and blow the ship up after getting into an "
print "escape pod."
 He's blocking the door to the"
print "Armory and about to pull a weapon to blast you."
action = raw_input("> ")
if action == "shoot!":
print "Quick on the draw you yank out your blaster and fire it at the Gothon."
print "His clown costume is flowing and moving around his body, which throws"
print "off your aim. Your laser hits his costume but misses him entirely.  Then he eats you."
return 'death'
elif action == "dodge!":
print "Like a world class boxer you dodge, weave, slip and slide right"
print "as the Gothon's blaster cranks a laser past your head."

print "You tell the one Gothon joke you know:"
print "Lbhe zbgure vf fb sng, jura fur fvgf nebhaq gur ubhfr, fur fvgf nebhaq gur ubhfr."
print "The Gothon stops, tries not to laugh, then busts out laughing and can't move."

return 'laser_weapon_armory'
else:
print "DOES NOT COMPUTE!"
return 'central_corridor'
def laser_weapon_armory():
print "You do a dive roll into the Weapon Armory, crouch and scan the room"
print "for more Gothons that might be hiding. It's dead quiet, too quiet."
print "You stand up and run to the far side of the room and find the"
print "neutron bomb in its container. There's a keypad lock on the box"
print "and you need the code to get the bomb out. If you get the code"
print "wrong 10 times then the lock closes forever and you can't"
print "get the bomb. The code is 3 digits."
code = "%d%d%d" % (randint(1,9), randint(1,9), randint(1,9))
guess = raw_input("[keypad]> ")
guesses = 0
while guess != code and guesses < 10:
print "BZZZZEDDD!"
guesses += 1
guess = raw_input("[keypad]> ")
if guess == code:
print "The container clicks open and the seal breaks, letting gas out."
print "You grab the neutron bomb and run as fast as you can to the"
print "bridge where you must place it in the right spot."
return 'the_bridge'
else:
print "The lock buzzes one last time and then you hear a sickening"
print "melting sound as the mechanism is fused together."

return 'death'
def the_bridge():
print "You burst onto the Bridge with the neutron destruct bomb"
print "under your arm and surprise 5 Gothons who are trying to"
print "take control of the ship. Each of them has an even uglier"
print "clown costume than the last. They haven't pulled their"
print "weapons out yet, as they see the active bomb under your"
print "arm and don't want to set it off."
action = raw_input("> ")
if action == "throw the bomb":
print "In a panic you throw the bomb at the group of Gothons"
print "and make a leap for the door.

return 'death'
elif action == "slowly place the bomb":
print "You point your blaster at the bomb under your arm"
print "and the Gothons put their hands up and start to sweat."
print "You inch backward to the door, open it, and then carefully"
print "place the bomb on the floor, pointing your blaster at it."
print "You then jump back through the door, punch the close button"
print "and blast the lock so the Gothons can't get out."
print "Now that the bomb is placed you run to the escape pod to"
print "get off this tin can."
return 'escape_pod'
else:
print "DOES NOT COMPUTE!"
return "the_bridge"
def escape_pod():
print "You rush through the ship desperately trying to make it to"
print "the escape pod before the whole ship explodes. It seems like"
print "hardly any Gothons are on the ship, so your run is clear of"
print "interference. You get to the chamber with the escape pods, and"
print "now need to pick one to take. Some of them could be damaged"
print "but you don't have time to look. There's 5 pods, which one"
print "do you take?"
good_pod = randint(1,5)
guess = raw_input("[pod #]> ")
if int(guess) != good_pod:
print "You jump into pod %s and hit the eject button." % guess
print "The pod escapes out into the void of space, then"
print "implodes as the hull ruptures, crushing your body"
print "into jam jelly."
return 'death'
else:
print "You jump into pod %s and hit the eject button." % guess
print "The pod easily slides out into space heading to"
print "the planet below. As it flies to the planet, you look"
print "back and see your ship implode then explode like a"
print "bright star, taking out the Gothon ship at the same"
print "time. You won!"
exit(0)
ROOMS = {
'death': death,
'central_corridor': central_corridor,
'laser_weapon_armory': laser_weapon_armory,
'the_bridge': the_bridge,
'escape_pod': escape_pod
}
def runner(map, start):
next = start
while True:
room = map[next]
print "\n--------"
next = room()
runner(ROOMS, 'central_corridor')
|
代码不少，不过还是从头写完吧。确认它能运行，然后玩一下看看。
我玩起来时这样的：
$ python ex41.py
--------
The Gothons of Planet Percal #25 have invaded your ship and destroyed
your entire crew. You are the last surviving member and your last
mission is to get the neutron destruct bomb from the Weapons Armory,
put it in the bridge, and blow the ship up after getting into an
escape pod.
 He's blocking the door to the
Armory and about to pull a weapon to blast you.
> dodge!
Like a world class boxer you dodge, weave, slip and slide right
as the Gothon's blaster cranks a laser past your head.

 You are the last surviving member and your last
mission is to get the neutron destruct bomb from the Weapons Armory,
put it in the bridge, and blow the ship up after getting into an
escape pod.
 He's blocking the door to the
Armory and about to pull a weapon to blast you.
> tell a joke
Lucky for you they made you learn Gothon insults in the academy.

The Gothon stops, tries not to laugh, then busts out laughing and can't move.

--------
You do a dive roll into the Weapon Armory, crouch and scan the room
for more Gothons that might be hiding. It's dead quiet, too quiet.
You stand up and run to the far side of the room and find the
neutron bomb in its container. There's a keypad lock on the box
and you need the code to get the bomb out. If you get the code
wrong 10 times then the lock closes forever and you can't
get the bomb. The code is 3 digits.
[keypad]> 123
BZZZZEDDD!
[keypad]> 234
BZZZZEDDD!
[keypad]> 345
BZZZZEDDD!
[keypad]> 456
BZZZZEDDD!
[keypad]> 567
BZZZZEDDD!
[keypad]> 678
BZZZZEDDD!
[keypad]> 789
BZZZZEDDD!
[keypad]> 384
BZZZZEDDD!
[keypad]> 764
BZZZZEDDD!
[keypad]> 354
BZZZZEDDD!
[keypad]> 263
The lock buzzes one last time and then you hear a sickening
melting sound as the mechanism is fused together.

--------
You died.


This extension allows Burp Suite scans to be pushed to the Nucleus platform.
Usage
To use this plugin, you will need to have a Nucleus instance.
- Navigate to your Nucleus instance.
- Click on Profile > User Profile > Generate API Key
- Navigate back to the Nucleus Burp Plugin and paste the Nucleus Instance URL and API key.
- Press "Sync with Nucleus"
Note: The project drop down list should populate with all the projects in your Nucleus instance.
- Select the Scan URLs to upload.
- Press "Push All Scan Issues to Nucleus"
Note: The selected scan URLs will now be uploaded to Nucleus.


Tuesday, September 01, 2015
I went to work at Mrs Hunsaker's until a little after noon. I then went down to Randy's and we got his things packed along with my items and left for Deep Creek Reservoir in Idaho. The wind came up and made it hard to control the boat. Randy caught 1 nice fish that I fileted when we came to the dock for the night. Mae had sent me enough food and Randy had also brought food so we just ate and went to bed on the boat benches. The stars were bright and beautiful to see.
Wednesday, September 02, 2015
I woke at I:30 am and the moon was up about ¾ size. The wind had died down until the water was perfectly calm. I really thought of starting the boat up and try fishing at night, but then I had two thoughts, 1st was it was illegal and 2nd would it wake Randy? I finally did go back to sleep and woke up before 6am. This time I started the boat up and fished. Randy did sleep until almost 8am. By then I caught two rainbow trout, both the same size, 21” long and quite heavy around the middle. Both of them really put up quite a fight and were so fun to bring them in. I then caught a 3rd fish that was fair size but not equal to the first two. This time Randy woke up so he also started fishing. The wind soon came up and that really kept me busy trying to guide the boat and help Randy with baiting his hook. The wind kept getting stronger. Randy finally caught a fair size fish. It was almost noon so we went into the dock. I cleaned and filleted the fish hoping that the wind would let up. We finally loaded up and came home. It has been a fun trip but I am sure tired. I thought I was going to get home in time to go to our study class but Randy had me help him get quite a few things out of his boat. When I got home I quickly took a shower and changed and got to the study group by 6:30pm. When we got home we got some dinner and watched a show on Netflix before going to bed.
Thursday, September 3, 2015
I woke up shortly after 7 am. Mae cooked us some fish for breakfast and we then got ready to attend the Ogden Temple. We picked up Carrie Shaw to take with us, but no one else came. We had a wonderful session and then Carrie, Mae and I went to the cafeteria and ate lunch. From the Temple we drove up to the Health store, where Nancy works, and purchased a couple of items. We stopped at the Good Earth Health to pick up my order for a case of cereal, but there was an error on the order and we only got 1 box. Because of the error, they gave us 6 boxes at a very good discount and will reorder a little later. After getting home Brother Lee Gifford called and said that he had some tomatoes ready for us to pick. I went to Wheelright Lumber and bought some materials for Mrs Hunsaker's place. We then picked the tomatoes, ate dinner, I filled in my journal and we watched a show on TV before going to bed.
Friday, September 04, 2015
Mae didn't sleep well so while she was up, she got my lunch and breakfast ready. I got up and with Mae's preparation, I got myself off to work. Mae did go to Kaden and Kaitlyn’s school for Grandparents Day. She said that the twins were excited when she came. She then came over to Mrs. Hunsaker's, where I am working. From there she went up to Adam's Elementary where she picked up Ben, Rachel and Matt and took them to Dinosaur Park.  I am really tired and hurting from 10 hours of work. After eating I went in and watched part of a BYU Girls Soccer game. Ben, Matt, Mae and I played a game of Rummy Cube. Mae then got the children to bed. I entered this entry, took a shower and we went to bed.
Saturday, September 05, 2015
My I pod woke us at mid-night with an alarm to inform us that Kim and Georgia's Birthdays are coming up. I couldn't get back to sleep so got up and slept a while longer in the recliner. I again woke and so went back to bed in our bed. We woke at 7am to get the children ready as Jeff was coming to get them at 9am. He came early and spent a few minutes with us, and ate breakfast with us. I needed to put some capsules together, so while doing so, I turned the TV on. It was a replay of a BYU foot ball game. We enjoyed watching it. This afternoon I went over to Mrs Hunsaker’s and got my case of nails, as I will need them at Scott's on Monday. I stopped and visited with Bob. Before I left, Bob told me that he has decided that he will not move somewhere else. I also watched the BYU vs Nebraska football game. I was about ready to leave, because there was only 2:50 minutes left of the game and Nebraska was controlling the game, but as I started to leave, I thought that I should stay and watch the end of the game. I was glad that I did because with only seconds left on the clock BYU threw a final pass for a touchdown, winning the game with 1 second on the clock. When I got home Mae had received a text from Shellie informing us that Nora delivered a baby boy about 5:30 PM Arizona time. Both the mother and boy (Damon Bryce) are doing well. That will make our 10th Great-Grandchild. He weighed just under 10 lbs and seems to be healthy, and from the picture on the phone he has lots of hair. I got a call from Darma Cosper asking if I could come over and help their son give Jimmy a Priesthood Blessing. Afterwards, their son and I went down to Sister Jeneane Browning’s and gave her a blessing. Mae had dinner ready when I got home. After eating, I worked on my journal. I have still been in quite a bit of pain especially in my legs today. I set down in the recliner this afternoon and fell asleep. Sandi came and we had dinner about 5 PM. Mae had cooked yams, squash and fried fish. That, along with a tossed salad and bisquits, made a nice meal. After dinner we went over to the park where Sandi threw balls for her dog to fetch. We enjoyed visiting while Sandi kept the dog running. After returning home I made some pop corn and we cut up some water melon. We enjoyed that as we played a game of Trans America, which I won. Mae and Sandi took the dog for a walk. While they were gone, I added this entry. We sure enjoyed having Sandi here with us this evening and to add to that she stayed the night with us.
Monday, September 7, 2015
Today is Labor-day, so being a holiday I didn't go to work at Mrs Hunsaker's. I slept until 7am then I started breakfast. Mae came in and fried the fish and I made an egg omelet. It was nice to have Sandi here. She got up and took her dog for a run and got back just about time for breakfast. We enjoyed breakfast and I changed clothes for work. Sandi would like to go fishing so I can show her how to clean & fillet fish. We decided that we might try going on October the 3rd. Maybe we could go up the evening of the 2nd and camp over. I went over to Scott's, but it was almost 11am before I got there. We worked until after 5pm and then picked up tools. It was almost 7pm when I got home. Mae had dinner ready. Mae told me that Jeff stopped by on his way up to Idaho. She said he is quite depressed and concerned about his job and the house they have bought. Mae also talked to Pat Bradfield this morning. Her Bishop is getting her some new eye glasses, although Pat felt bad that she has to have help from the Bishop to get them. She is also very depressed with the way life is going for her. Her health is very bad and she has very little financial income. After eating dinner, I filled out this journal entry. I then took a shower and we were going to read from Jesus the Christ for this week’s reading assignment, however, it got too late so we just went to bed.
Tuesday, September 8, 2015
We woke, but both of us were so tired that we had a hard time getting up. I did make it to work for Mrs. Hunsaker by 8am. I got the flooring finished and moved the cabinets into the kitchen. The sink cabinet is in need of some serious repair. We read in our book of “Jesus the Christ” tonight. We had dinner and the time went fast and we went to bed.
Wednesday, September 9, 2015
I worked at Mrs. Hunsaker. Mae wanted me to stop on the way home and talk to Bob but there just wasn't any place where I could park with the pickup and trailer. When I got home, I took a shower and a nap. Mae had a nice chicken/vegetable soup made for us and also some delicious biscuits to go with it. We went to our study group at the Jones, and after getting home; I watched the show “The Restoration” while Mae talked on the telephone to David, Jeff and Barbara Green, the other counselor in the R.S. presidency. We watched a few minutes of the BYU Women's Volleyball game before going to bed.
Thursday, September 10. 2015
I went into work again at Mrs. Hunsaker's, I got the cabinets just about installed. That will allow her to get the linoleum to be ordered as well as the cabinet top. She can then have a plumber install the kitchen sink. I will now start on the basement bathroom and shower. I was so busy trying to get the last of the cabinets set that I forgot the time until it was after 3PM. Mae called and was down to Randy's getting a treatment. I went over and picked Bob up. We are going to have him cook liver and onions for dinner this evening. I helped him with the cooking and Mae is having a chicken burrito for her dinner. It was really good although we were out of ketchup. There are onions left over so I will have them for breakfast in the morning. Mae had Choir Practice this evening so I took her over to the church and then took Bob home. When I got home, I turned on the Show “The Robe”. When Mae got home she also watched it with me. It is now late so we will soon got to bed.
Friday, September 11, 2015
I worked at Mrs. Hunsaker's today. After getting home this evening, I decided to take Mae out to eat. Bishop Mullins had called earlier today to see if I had a sewer line snake. I called him and he had solved his problem. We visited for a few minutes and I invited he and his wife to join Mae and I for dinner out. They accepted, and so Mae and I picked them up and the four of us went out to Golden Corral in Ogden. We had a very enjoyable time.
Saturday, September 12, 2015
I went over to Scott's at 8am and helped Scott put the decking on their back patio porch. It was 4pm when I left to come home. We had the job just about completed except that we ran out of screws and Home Depot will have to special order them. When I got home Mae had the car just about packed. I quickly showered and we were soon off to Kimberly, Idaho where Jeff and Gail now live. Gail and the kids are there just for the weekend and then they will be returning to her mothers in Layton. She has some Doctor appointments for the children that they had previously arranged for. It was after 7pm when we arrived there. The home is certainly a nice home on an acre lot. It will be a job to keep it up. We sure had an enjoyable evening being with the family.
Sunday, September 13, 2015
We had a very enjoyable morning and drove around the area just to see the sights. We got back to their home in time to get ready for Church meetings. We found out after, that we had attended the wrong Ward and the their Ward starts at 9am. Both Mae and Gail had looked up the starting time on LDS.org, and both showed that the two wards started at 1pm, but the information was in error. We really feel it was the error if the Church, an oversight. The rest of the day was spent mainly just enjoying being together. Gail and the children left this evening to return to her mother’s home in Layton. Jeff took Mae and I for a ride around the area to see the river. At one point Jeff pointed out some young men that were preparing to jump off the Twin Falls bridge with parachutes. Jeff said that this bridge is one of two Bridges in the United States in which it is legal to jump off. We parked and waited to see them jump. The men walked to the center of the bridge, climbed over the railing and jumped. After jumping, they have 2 seconds in which to pull the jump cord, and then guide the parachute to a safe landing approximately 485 feet below. It was very interesting to see the 6 men make that jump. After returning home, Mae, Jeff and I enjoyed playing a game of Hearts before we went to bed. Mae won that game.
Monday, September 14, 2015
Mae and I got up in time to prepare breakfast of fish and eggs for breakfast. Jeff left for work before 8am. I installed the Washer and dryer for them. We relaxed and enjoyed being together. I removed the wand of the kitchen faucet and found that it needed cleaning from a calcium buildup. It required a special tool in order to remove the faucet screen and so we drove to Twine Falls, where I had called a plumber supply co and they thought that they had what we needed. We ended up going to four companies before we found that we had to order the tool we needed. I had called Durk's Plumbing and Jared suggested that we clean the wand by soaking it in vinegar overnight. That is the choice we made. Jeff worked late not getting home until 7:30pm. Mae cooked a nice chicken dinner and after eating and cleaning up, we again played a game of Hearts and Mae again won that game.
Tuesday, September 15, 2015
We again had a nice breakfast before Jeff went to work. After cleaning up, Mae and I got our car packed and left for Pocatello. We stopped at Chubbick to see Terry and Angela. We were there until 11:30am, and then drove out to Lois's and visited there for a little over an hour before we started for home. Mae drove until we got to the Devil's creek exit at which I drove on home. We had a couple of traffic delays due to road construction and arrived home at 3:30pm. Mae had to hurry to get to her meeting at 4pm. I spent an hour catching my journal up to date. This evening Mae and I played a couple of games of Rummy Cube before going to bed.
Wednesday, September 15, 2015
I went to work at Mrs. Hunsakers today. I stopped on the way at Universal Rental where I rented a concrete core saw plus a circular saw bit to cut through the rim joist. In order to line up the two holes I used a small wood bit and drilled pilot holes through the rim joist and then I used a small masonry bit to continue the pilot hole through the bricks. I could then use the pilot hole to line up the core saw. While working on that vent hole I noticed that the outside water tap was not a frost-less tap, so I replaced that tap. This afternoon Mae went up to David and Shauna's. We will stay there with their children while they attend a medical conference in Washington D.C. I will drive back and forth to work on Mrs. Hunsaker home. I thought that maybe I could put my trailer in her garage, so I checked the height of the trailer by standing on the tail gate. That was not quite high enough to see down the top of the trailer so I decided that if I stood on the spare tire I could see better. I forgot that the spare tire is only held in place with one bolt, therefore, when I stepped up on it, it turned and I fell, landing on my back on the tail gate. I was lucky as I could have landed on the jack and that would have been quite serious. I was ok so I finished the day. This evening we played some games with Emily and Conner. Tyler was busy all evening with school homework.
Thursday, September 17, 2015
Mrs. Hunsaker had Gay Lucas from Giant Carpet One come to measure for the Linoleum. She also had another company come to measure for the carpeting. She had also gone to Dal-Tile to find the tile for the downstairs bathroom. They won't sell to me as I don't carry a contractor’s license. Before leaving this afternoon, I thought about calling Gay and they can buy from Dal-Tile, so I ordered the tile through her. This evening was a relaxing evening with the children.
Friday, September 18, 2025
Mae didn't sleep very well last night so the kids and I got ourselves off to school and work. Mae did have my lunch ready and had cold cereal and fruit on the table for us. I worked again at Hunsaker's on the downstairs bathroom. I really feel that we are trying to make a silk purse out of a pig’s ear. I hope I can get it to look good! Again this evening we had a relaxing evening.
Saturday, September 19, 2025
I woke with my back really hurting. I called Dr. Toon to see if I could get in for a treatment, but they were out of the office. I thought of winterizing my boat and camper, but the winter anti-freeze has not came in yet so I will let that wait for now. This afternoon we took Conner to a Soccer game he had to play in. Just before we left their home, Dr. Toone's office called and they said that I could come in at 4PM. That will work out perfect with Connor's game. I took Mae and the kids to the game and then I went into Dr. Toone. He gave me a treatment and then I joined Mae and the kids at the game. Following the game we took the kids out to eat at Chuck-A-Rama there in Bountiful. David & Shauna had left money for us to do that. We had a nice evening.
Sunday, September 20, 2015
We sleph in until 7am, then Mae and I got up and got ready to attend their Stake Conference. Emily decided to go but wasn't ready and so she told Mae and I to do so we wouldn’t be late, so we left without her. She said that she would walk down. We saved her a seat but she never made it. The boys just didn't want to go. I feel bad that the example of their parents isn't what it should be. I get pretty discouraged about Sandi and my three sons. I am sure thankful for Shellie and Mike. Mae and I enjoyed the conference, although I had trouble hearing some of the speakers. This afternoon Mae and I read from “Jesus the Christ”. I am glad we have the study group that keeps us reading to keep up, and I really do enjoy this book. This evening Mae and I took the dog for a walk. Their dog is quite enjoyable, but I still don't want one. We played a game with Emily before going to bed.
Monday, September 21, 2015
Mae didn't sleep well last night, but had prepared cereal for breakfast and had my lunch ready. I went to work at Mrs. Hunsaker's. David called Mae to let her know that their plane had mechanical problems and they were going to have to stay another night. I had brought part of our belongings home but not all of them. I decided to stay home and Mae will stay there another night. After getting something for dinner and showering, I watched two shows on Netflix before going to bed.
Tuesday, September 22, 2015
I woke at 5am and got my breakfast. After eating, I did the dishes and entered yesterdays journal entry. I have missed entering my daily journal entries some of the days, while we were up to David and Shauna's, as we don't have a computer that we can take with us now. Mae came home, and on the way she brought me a lunch. I also had her take my pickup and go to Lowe's and get me some sheetrock for the shower. She then went to Costco for a few items. It was nice to have Mae home when I got there this afternoon. This evening after getting home from work, I went back into my journal and caught it up to date. Mae and I went Home Teaching / Visiting Teaching. We visited with Harold Hilton but Evelyn is still in bed sick. They have sure had their share of sickness for a couple of months now. We did stop at Siglin's but no one was there. When we went to the Ray's, Mariane wasn't there but was suppose to be back in a few minutes, so we went home and they were to call us when she got home, and we would come back. She didn't call us until after 8pm so we set it up, for us to visit them, tomorrow evening.
Wednesday, September 23, 2015
I worked at Mrs. Hunsaker's today. After returning from work, I took a shower. I had hoped that I could take a short nap, but Irven and Sandy came by. They had been over to see Bob and stopped by to get some items that Mae had bought for them when she went to Costco. They also wanted to get some distilled water from our unit. They would like me to go up to their new home and install their distiller for them. Even though we told them that we had the study group at our home, they stayed until Al Ervin came, before they left. We only had 5 of us tonight, but we still enjoyed being together. T.J. and De'Ann Jones are away this week so we hosted the group tonight.
Thursday, September 24, 2015
I woke at 12:30am and couldn't go back to sleep, plus I was afraid that I would wake Mae, so I went into the front room and slept some in the recliner. I again woke at 3am, but this time I went back to bed in our room. The alarm went off at 5am, but we cuddled for a little while. I sure love my sweet wife. I had to hurry when we did get up, and I left for Hunsaker’s about 20 after 7 and went down to Wheelwright Lumber for some material. I had to buy another box of cedar. That makes 3 boxes that I am using.   I started placing the trim that I made yesterday. At 2:30 I quickly quit and went into Ogden to Dial Tile to get the tile I had ordered. I called Mae, as I knew that she was going into the Home Depot area, and so I asked her to stop and pickup some Quick Set for me. When I got home I took a shower and got ready to go to a class on Church History. Mae had dinner in the cock pot so I got that ready and set the table so that when Mae got home, we could quickly eat. Mae was later than she wanted to be, and Sister Glory Gifford stopped to get her for choir practice, earlier that we thought she would, so Mae didn't get to eat with me. I ate and cleaned up, and then I took a short nap. I picked Mae up at the chapel about 10 to 7 and we went to the class at the High School Seminary building. It was very enjoyable but I was sure tired. After getting home, I entered this entry before we went to bed.
Friday, September 25, 2015
I worked all day tileing Mrs. Hunsaker's shower in the basement bathroom. Mae hadn't slept very well last night so we had her sleep in a little longer this morning. As a result, we just had a quick breakfast and I left for work. Mae had other errands to do this morning so she brought my lunch over to me. I was so busy that I didn't have time to stop to eat, so Mae fed me my lunch while I worked. It was 3pm when I finished and then cleaned up my tools. When I got home I was very tired. Mae went to choir practice this evening and I picked her up at 6:45pm and we attended a class held at the Roy High School Seminary on the history of the Prophet Joseph Smith. It was very good. I was sure tired when we got home and we soon went to bed. (**Mae – this is wrong as he has entered this both for Thursday & Friday. It happened on Thursday)
Saturday, September 26, 2015
I woke with a dream that someone had taken my wallet and had taken my bank card and credit cards. It woke me and I realized that Mae had found my wallet on the seat of my truck yesterday, when she brought my lunch. She had put it out of sight and when I woke I wasn't sure if I had brought it into the house yesterday when I got home. I got up and took the flash light out and checked the pickup. It was not there and so I came back in, but before waking Mae up, I looked with the flash light and found my wallet with everything in it, on my night stand. I didn't want to wake Mae so instead of getting back into bed, I went into the front room and slept a couple of hours in the recliner. We had a quick breakfast and then left to go out to Grantsville for Nathan's baptism. Chelci and the Primary Presidency had made it a special experience for Nathan. Nathan's cousin gave the Baptismal talk. He was just baptized himself a couple of weeks ago. He did a very remarkable job, as good as any adult I have heard. Another thing that was cute, is that while Steve and Nathan were changing out of their wet clothes, Sandi was tending the twins, and Chelci went back to give Nathan some help, Addie began to cry. Mae asked her what the problem was and she said she was crying because she didn't have anyone to sit with. Mae hugged her and said she wished we had noticed earlier and we would have loved to have her sit with us. Following the Baptismal service everyone was invited to Chelci and Steve's home for a brunch in honor of the occasion. When we started to eat, the twins came to Mae to feed them. Then when Chelci got them in their high chairs, they still wanted Mae to feed them. It was a fun event and Chelci had made it special for Nathan. When Mae and I returned home, we took a short nap and then got started on putting up 21 quarts of Spaghetti sauce. I kept the sauce cooking and cleaned up the dishes, while Mae attended the Women's Conference. After Mae got home, we finished canning the sauce, then Mae cut my hair, we took our showers and watched a show on Netflix. I entered this entry before we went to bed about 12:30am.
Sunday, September 27, 2015
We slept in this morning and I got us some breakfast while Mae did her hair. We enjoyed the meetings today and I am always grateful that I have the Light of the Gospel as a guide in my daily life. I am continually depressed that Sandi, David, Scott and Jeff have become weak in their testimonies of the Gospel. Mae was set apart, after the block meetings, in her new calling as Ward Historian. During that blessing Bishop Mullians admonished her to keep faith in our children and the day would come that they would return. I sure pray for that day and hope that it happens before I leave this life. This afternoon we had David and his family come for dinner. Besides a wonderful meal, we had a wonderful evening being with their family. David and Shauna brought a gift for Mae and one for me for our staying with their children while they were in Washington D.C. They gave Mae a very nice silver plate with a stand. There is an engraving that depicts several of the national monuments in the Washington D.C. area, on the plate. They got me a nice reversible jacket with Washington D.C. printed on it. That was special of them. We enjoyed our visit with them this evening. After they left, we went outside to see the super mooner eclipse. Kim called to see if we had seen it for he also had gone out to see it. He said that this won't happen again for 30 years.
Monday, September 28, 2015
While Mae was getting breakfast, I took off the betting and placed the mattress cover in the clothes dryer on tumble. I then rotated the mattress. Mae came in and helped me. We then replaced the mattress cover and put on clean sheets and pillow cases. Mae had prepared hot cakes for breakfast using the last of yesterday’s fruit salad. I left for work, but forgot to bring the cleaning towels, for grouting the tile I had installed on Friday. I called Mae and was going to have her bring them to me, but decided to grout the tile tomorrow. I worked on the closet doors, having to cut the doors and restyling them, plaining door jambs and cutting the doors to size. It required many trips up and down the stairs and by the time I had finished, I was sure tired. I stopped and visited with Bob, explaining to him how Mae had slipped up and told Stacy and Grant that Bob was going to give Becky and Mark his clock. Bob wondered how they found out, but said it really didn't matter to him. He said that he would go in with us on a gift and then later, he would still like them to have his clock. Mae had a nice dinner ready when I got home and cleaned up. I took a nap after dinner and then we studied the questions for our study group. I filled this entry out and we went to bed.
Tuesday, September 29, 2015
I worked again at Mrs. Hunsaker's today. I spent some time trying to find out where the water is coming from. I removed the cedar ceiling and cut away some of the sheetrock. I then removed the insulation that I had placed there. I found that the water was coming from the pipe joints where I had installed the frost free tap. It then leaked onto the insulation which acted as a wick transferring the water almost 3 feet away. I will have to redo the piping with liquid Teflon in hopes that the joints will seal this time. I am going to also replace the cedar on the ceiling. I did get more of the trim cut and placed. When I quit for the day and started the pickup to leave, the engine died and would not restart. I had to have Mae come and get me. I called Scott and he met me back at my pickup. We towed the pickup over to Dee's Service and left it for them to check it out. I then traded Scott our car for the use of his pickup so I could take my tool trailer home. It was after 8pm when I got home for dinner. After eating, Mae and I watched a show on Netflix before going to bed. Neither of us slept very well last night and it is now 10:30pm, so I hope we will sleep better tonight.
Wednesday, September 30, 2015
I used Scott's pickup today. I worked at Mrs. Hunsaker's and repaired the leak. It was coming from the new pipes that I had installed, so because it was my fault, I didn't charge for today’s time, nor for the package of cedar that I had to have to replace the ceiling in the shower. I used the liquid Teflon on each of the joints and they sealed this time. Dee's Auto Care called me and they will check out my pickup and let me know. This evening after showering, we had dinner. We then went to our study group, following that we went to the Ray's Visiting Teaching and Home Teaching. We walked, as we are letting Scott use our car, but it was a nice walk.


ID: {{problem.id}} Question: {{problem.question}}
Your Health: {{player.currentHealth}}
Monster's Health: {{monster.health}}
Congratulations! You won and gained {{monster.xp}} experience!
Try again.
You lost.


NEXT LEVEL ➤
QUIT GAME ➤
₹
50:50
☰
15
₹ 1,00,00,000
14
₹ 50,00,000
13
₹ 25,00,000
12
₹ 12,50,000
11
₹ 6,40,000
10
₹ 3,20,000
9
₹ 1,60,000
8
₹ 80,000
7
₹ 40,000
6
₹ 20,000
5
₹ 10,000
4
₹ 5,000
3
₹ 3,000
2
₹ 2,000
1
₹ 1,000
Q
:
A.
B.
C.
D.
NEXT
QUIT
KBC Audience Poll Results
×


migration climate change conflict potential Climate conflict. environmental increased Migration However, example, risk {border-style impacts natural change, literature px;} research #ffffff;} (accessed Available increase migration, online: political factors impact migration. conflict, future important local resource security economic events migrants climate-migration extreme people Conflict drivers factor result scarcity social areas lead link particularly significant disasters discussed importance Chang. India adaptation capacity context countries degradation displaced international role Policy Press University determining driver drought global influence lack linked million policy px; rates stabilizing study suggests variability weather {font-family Change Clim. March Rev. USA West associated changes does fact font-size help likely long-term migrate number population populations response stress studies uncertainty (including Bangladesh Environ. Environmental Europe Geogr. Peace Political cause climate-migration-conflict developing different disaster double; environment flooding focused human increasing large levels limited negative paper pathway reduce related relative resources resources, strategy suggest ./j.polgeo... Additionally, Africa Change, Dev. Furthermore, Gray Health Hummel Indian Migr. Migration, Res. Soc. agricultural border-color border-width capital challenges change. competition conducted consider cultural current development education focus health history implications income increases increasingly induced issue land limit low majority note observed place plans range region rural solid; specific suggested surrounding tension terms understanding used viewed violent water ways {font-style {font-weight ./.. ./s--- Assessment Cambridge Cambridge, Despite Economic Gleditsch Global Human Hurricane International Local Migrants Myers Nat. New Thus, Uganda United World adaptive agriculture area argue available better billion bold collab: community compared considered contrast, courier; depend despite developed diversify dramatic early em; environmentally estimates ethnic exacerbate extremes factors. findings floods food government greatly heat highlights host inform infrastructure insecurity institutions key linking necessary need neo-Malthusian networks numbers order overall particular pathways permanent play possible preparedness pt;} receiving reduced regarding review rise scholars severe socioeconomic soil states strategies support technology threat types understand vulnerability work world


Known for professionalism and quality SME assistant services, we offer All support services you need In One Place.
Whether Admin Assistant, Professional Assistant, Virtual Administrative Assistant, Online Administrative Assistant, Virtual Office Assistant, and Remote Assistant, they are just different names for the same role.
Bookkeeping and Accounting perform a vital function for every profit-making business and usually demands a substantial investment of time. As your remote service provider, we assume the responsibility to waive off the burden through the best virtual accounting and bookkeeping services.
A great customer experience is essential for driving business growth and achieving long-term success. Hiring virtual customer service providers is the most effective and budget-friendly way to accomplish this critical goal.
Our Virtual IT support service includes: Web Development & Design Virtual Team Web Research Virtual Resource Social Media Virtual Services
Recent business models and processes now reflect the trends that are shaping the global healthcare value chain. As Virtual Healthcare Services provider, UpturnSolution offers customized solutions to help remove the complexity of tedious Medicare tasks.
There is a recent phenomenal shift in the delivery model for legal services in the legal industry. This new model, known as legal process outsourcing or LPO.


Call us to schedule
(206) 264-6382
I have always been interested in design, form, and function. Early on my glass art was greatly influenced by the architect Mies Van der Rohe and his philosophy that less is more. Beauty exists in any object. In an attempt to maximize on clean lines of a piece and allow the radiance to shine through, I have experimented with many art forms. During my journey, I discovered my true love for glass blowing.
Since then, I have studied under many of the best and talented glass artists at the Pratt Fine Arts Studio in Seattle where I had the pleasure of working with Kathrine Gray, Sabrina Knowles, Jennifer Pohlman, Karen Willenbrink-Johnsen and Mitchell Gaudet who have all shared their love of glass and glass techniques with me.
I also had the honor of studying New Bohemia glass techniques with Master Glassblower Josef Zubac. I studied Italian and Swedish techniques with John Collins and Denis Mullens.
I have always believed that life and art are on the job training, so as my life progresses so does my art. In recent years I have used my glass art to help raise money for various charities, a passion that has grown and one I continue to expand
I have always been a person who loves to work with my hands, from wood working to Glass blowing, I enjoy the process. I have had the honor of studying New Bohemia glass techniques with Master Glassblower Josef Zubac.
In 1999 I was given a Christmas gift that would change my life forever. Juliana, my wife, had hung a mysterious red envelope from the Christmas tree. In it was a gift certificate for glassblowing classes. From the moment I stepped into the hot shop I was hooked.
I have continued to pursue and improve my skill at this ancient craft through courses at Pratt Fine Arts Center, Seattle Glassblowing and Uptown Glassworks. I have recently displayed my art in galleries throughout Washington State and Italy. I passionately support local charities including Pilchuck Glass School, Schmitz Park Elementary, West Seattle High School and numerous other local non-profit organizations. The annual glass pumpkin sale at West Seattle High School is quickly becoming the highlight of my year.
I am thrilled to be a part of Renton Art & Glass Studio. This is the most amazing studio and this team of artists has an incredible level of skill and passion. It’s quite exciting to be part of this creative endeavor.
I hope you enjoy our gallery and studio and you find some special pieces of art glass that speak to you!

Like aquariums frozen in suspended animation his Coral Reef Sculpture Series captures the tranquility and timelessness of the deep. Brilliantly colored fish swim motionlessly through delicate seafans and clusters of coral. Each sculpture evokes a marine fantasia in glass.
“As all artists, my work is inevitably inspired by my life,” says Heilman. “My Coral Reef Series evolves from my recent interest in scuba diving, which gives me the opportunity to express my fascination with the mysterious world of inner space, the coral reef. Myriad colors of encrusting sponges, design of coral colonies and detail of coral reef fish land opportunity to exciting new ways of personal expression and expansion of technique in the glass media. My intent lies in creating a complex tapestry of color Juxtaposed with design through layering of torchdrawn glass cane imagery.”
The remarkable detail is achieved by using the traditional lampmaking and murrini techniques. Heilman spends a considerable amount of time pre-making the numerous band-pulled glass rods and canes, called murrini that are used to create the design elements inside each sculpture. The earliest known murrini were made around 1500 BC by the Egyptians.
Guest Artist will be responsible for all setup and take down, marketing and refreshments.
Rental fees TBD depending on the needs of the artist.
© copyright 2014


{% extends "call_your_mom/base.html" %} {% load i18n %} {% block content %} {% with task_name=task.name %}
Task is due
Task is not yet due
Or edit this task