module OpenSSL::Buffering
OpenSSL IO buffering mix-in module.
This module allows an OpenSSL::SSL::SSLSocket to behave like an IO.
You typically won't use this module directly, you can see it implemented in OpenSSL::SSL::SSLSocket.
Constants
- BLOCK_SIZE
Default size to read from or write to the SSLSocket for buffer operations.
Attributes
The “sync mode” of the SSLSocket.
See IO#sync for full details.
Public Class Methods
Creates an instance of OpenSSL's buffering IO module.
# File ext/openssl/lib/openssl/buffering.rb, line 38 def initialize(*) super @eof = false @rbuffer = "" @sync = @io.sync end
Public Instance Methods
Writes s
to the stream. s
will be converted to a
String using String#to_s.
# File ext/openssl/lib/openssl/buffering.rb, line 391 def <<(s) do_write(s) self end
Closes the SSLSocket and flushes any unwritten data.
# File ext/openssl/lib/openssl/buffering.rb, line 454 def close flush rescue nil sysclose end
Executes the block for every line in the stream where lines are separated
by eol
.
See also gets
# File ext/openssl/lib/openssl/buffering.rb, line 225 def each(eol=$/) while line = self.gets(eol) yield line end end
Calls the given block once for each byte in the stream.
# File ext/openssl/lib/openssl/buffering.rb, line 266 def each_byte # :yields: byte while c = getc yield(c.ord) end end
Returns true if the stream is at file which means there is no more data to be read.
# File ext/openssl/lib/openssl/buffering.rb, line 297 def eof? fill_rbuff if !@eof && @rbuffer.empty? @eof && @rbuffer.empty? end
Flushes buffered data to the SSLSocket.
# File ext/openssl/lib/openssl/buffering.rb, line 442 def flush osync = @sync @sync = true do_write "" return self ensure @sync = osync end
Reads one character from the stream. Returns nil if called at end of file.
# File ext/openssl/lib/openssl/buffering.rb, line 259 def getc read(1) end
Reads the next “line” from the stream. Lines are separated by
eol
. If limit
is provided the result will not be
longer than the given number of bytes.
eol
may be a String or Regexp.
Unlike IO#gets the line read will not be assigned to +$_+.
Unlike IO#gets the separator must be provided if a limit is provided.
# File ext/openssl/lib/openssl/buffering.rb, line 201 def gets(eol=$/, limit=nil) idx = @rbuffer.index(eol) until @eof break if idx fill_rbuff idx = @rbuffer.index(eol) end if eol.is_a?(Regexp) size = idx ? idx+$&.size : nil else size = idx ? idx+eol.size : nil end if size && limit && limit >= 0 size = [size, limit].min end consume_rbuff(size) end
Writes args
to the stream.
See IO#print for full details.
# File ext/openssl/lib/openssl/buffering.rb, line 421 def print(*args) s = "" args.each{ |arg| s << arg.to_s } do_write(s) nil end
Formats and writes to the stream converting parameters under control of the format string.
See Kernel#sprintf for format string details.
# File ext/openssl/lib/openssl/buffering.rb, line 434 def printf(s, *args) do_write(s % args) nil end
Writes args
to the stream along with a record separator.
See IO#puts for full details.
# File ext/openssl/lib/openssl/buffering.rb, line 401 def puts(*args) s = "" if args.empty? s << "\n" end args.each{|arg| s << arg.to_s if $/ && /\n\z/ !~ s s << "\n" end } do_write(s) nil end
Reads size
bytes from the stream. If buf
is
provided it must reference a string which will receive the data.
See IO#read for full details.
# File ext/openssl/lib/openssl/buffering.rb, line 85 def read(size=nil, buf=nil) if size == 0 if buf buf.clear return buf else return "" end end until @eof break if size && size <= @rbuffer.size fill_rbuff end ret = consume_rbuff(size) || "" if buf buf.replace(ret) ret = buf end (size && ret.empty?) ? nil : ret end
Reads at most maxlen
bytes in the non-blocking manner.
When no data can be read without blocking it raises OpenSSL::SSL::SSLError extended by IO::WaitReadable or IO::WaitWritable.
IO::WaitReadable means SSL needs to read internally so #read_nonblock should be called again when the underlying IO is readable.
IO::WaitWritable means SSL needs to write internally so #read_nonblock should be called again after the underlying IO is writable.
#read_nonblock needs two rescue clause as follows:
# emulates blocking read (readpartial). begin result = ssl.read_nonblock(maxlen) rescue IO::WaitReadable IO.select([io]) retry rescue IO::WaitWritable IO.select(nil, [io]) retry end
Note that one reason that #read_nonblock writes to the underlying IO is when the peer requests a new TLS/SSL handshake. See openssl the FAQ for more details. www.openssl.org/support/faq.html
By specifying a keyword argument exception to false
,
you can indicate that #read_nonblock should not
raise an IO::Wait*able exception, but return the symbol
:wait_writable
or :wait_readable
instead. At EOF,
it will return nil
instead of raising EOFError.
# File ext/openssl/lib/openssl/buffering.rb, line 170 def read_nonblock(maxlen, buf=nil, exception: true) if maxlen == 0 if buf buf.clear return buf else return "" end end if @rbuffer.empty? return sysread_nonblock(maxlen, buf, exception: exception) end ret = consume_rbuff(maxlen) if buf buf.replace(ret) ret = buf end ret end
Reads a one-character string from the stream. Raises an EOFError at end of file.
# File ext/openssl/lib/openssl/buffering.rb, line 276 def readchar raise EOFError if eof? getc end
Reads a line from the stream which is separated by eol
.
Raises EOFError if at end of file.
# File ext/openssl/lib/openssl/buffering.rb, line 250 def readline(eol=$/) raise EOFError if eof? gets(eol) end
Reads lines from the stream which are separated by eol
.
See also gets
# File ext/openssl/lib/openssl/buffering.rb, line 237 def readlines(eol=$/) ary = [] while line = self.gets(eol) ary << line end ary end
Reads at most maxlen
bytes from the stream. If
buf
is provided it must reference a string which will receive
the data.
See IO#readpartial for full details.
# File ext/openssl/lib/openssl/buffering.rb, line 112 def readpartial(maxlen, buf=nil) if maxlen == 0 if buf buf.clear return buf else return "" end end if @rbuffer.empty? begin return sysread(maxlen, buf) rescue Errno::EAGAIN retry end end ret = consume_rbuff(maxlen) if buf buf.replace(ret) ret = buf end ret end
Pushes character c
back onto the stream such that a subsequent
buffered character read will return it.
Unlike IO#getc multiple bytes may be pushed back onto the stream.
Has no effect on unbuffered reads (such as sysread).
# File ext/openssl/lib/openssl/buffering.rb, line 289 def ungetc(c) @rbuffer[0,0] = c.chr end
Writes s
to the stream. If the argument is not a string it
will be converted using String#to_s. Returns the number of
bytes written.
# File ext/openssl/lib/openssl/buffering.rb, line 340 def write(s) do_write(s) s.bytesize end
Writes s
in the non-blocking manner.
If there is buffered data, it is flushed first. This may block.
#write_nonblock returns number of bytes written to the SSL connection.
When no data can be written without blocking it raises OpenSSL::SSL::SSLError extended by IO::WaitReadable or IO::WaitWritable.
IO::WaitReadable means SSL needs to read internally so #write_nonblock should be called again after the underlying IO is readable.
IO::WaitWritable means SSL needs to write internally so #write_nonblock should be called again after underlying IO is writable.
So #write_nonblock needs two rescue clause as follows.
# emulates blocking write. begin result = ssl.write_nonblock(str) rescue IO::WaitReadable IO.select([io]) retry rescue IO::WaitWritable IO.select(nil, [io]) retry end
Note that one reason that #write_nonblock reads from the underlying IO is when the peer requests a new TLS/SSL handshake. See the openssl FAQ for more details. www.openssl.org/support/faq.html
By specifying a keyword argument exception to false
,
you can indicate that #write_nonblock should
not raise an IO::Wait*able exception, but return the symbol
:wait_writable
or :wait_readable
instead.
# File ext/openssl/lib/openssl/buffering.rb, line 382 def write_nonblock(s, exception: true) flush syswrite_nonblock(s, exception: exception) end
Private Instance Methods
Consumes size
bytes from the buffer
# File ext/openssl/lib/openssl/buffering.rb, line 66 def consume_rbuff(size=nil) if @rbuffer.empty? nil else size = @rbuffer.size unless size ret = @rbuffer[0, size] @rbuffer[0, size] = "" ret end end
Writes s
to the buffer. When the buffer is full or sync is true the buffer is
flushed to the underlying socket.
# File ext/openssl/lib/openssl/buffering.rb, line 312 def do_write(s) @wbuffer = "" unless defined? @wbuffer @wbuffer << s @wbuffer.force_encoding(Encoding::BINARY) @sync ||= false if @sync or @wbuffer.size > BLOCK_SIZE or idx = @wbuffer.rindex($/) remain = idx ? idx + $/.size : @wbuffer.length nwritten = 0 while remain > 0 str = @wbuffer[nwritten,remain] begin nwrote = syswrite(str) rescue Errno::EAGAIN retry end remain -= nwrote nwritten += nwrote end @wbuffer[0,nwritten] = "" end end
Fills the buffer from the underlying SSLSocket
# File ext/openssl/lib/openssl/buffering.rb, line 53 def fill_rbuff begin @rbuffer << self.sysread(BLOCK_SIZE) rescue Errno::EAGAIN retry rescue EOFError @eof = true end end


Ltac Adventures
Ltac is a strange, dynamically typed language used to write tactics in Coq. In some sense it's the polar opposite of Coq because of how little is typechecked. Upon first blush, Ltac looks sort of like Gallina, but the semantics are very different. Here I'm just putting notes together for tips and tricks to manage learning it. If you're like me, then the Ltac reference manual causes more confusions than it clears up, so I'll be trying to post in more plain English.
I'll start with my motivation for developing some proof automation, then go through my thought process. Feedback is greatly appreciated but I wanted to present a more informal approach since the Ltac manual is not friendly to newcomers.
Spotting Errors
Your most valuable friend when debugging Ltac is idtac
, which is the tactic
that both does nothing and sends a message to the console.
In my case, I am working with floating point numbers both as bits and as
abstract data types, specifically, those used in Flocq. For these, I need to
prove a whole slew of rather uninteresting lemmas about numbers. In Coq, these
may take the form of relations of Z
, nat
, N
, positive
s, and since I'm
dealing with bits needs bounds on the number of bits needed to represent a
number; that way we know no overflow occurs, to name one case.
For example, suppose you have the following
Ltac add_hyp_before_lia A :=
try match goal with
| [ p1 : positive, p2 : positive |- _ ] =>
pose proof (A p1)
; pose proof (A p2)
end;
lia.
Do you spot the mistake? There is no semicolon ;
between the two pose proof
s. This means the match tactic will always fail. But since we wrapped
the whole match inside a try
. But there will not be any indication that
this tactic inside of try
will never work.
I figured this out by adding the following line:
Ltac add_hyp_before_lia A :=
try match goal with
| [ p1 : positive, p2 : positive |- _ ] =>
idtac "trying to add 2 hypotheses"
pose proof (A p1)
pose proof (A p2)
end;
lia.


This module efficiently manages a collection of strings that have common
substrings. Collections with a high degree of commonality are stored in
much less space than as ordinary table of independent C strings.
To further save space, the "compressed" representation need not even
be loaded in the target's memory; see
isLoaded.
The total space available for the compressed representation of text strings
is limited to 64K characters; each string is represented by a 16-bit
"rope id".
| typedef Text_Label |
|
| config Text_isLoaded // module-wide |
|
Ensure character-strings are loaded in target memory
extern const Bool Text_isLoaded;
DETAILS
Character strings managed by this module are allocated together
with other character strings, and loaded to the target, when this
parameter is set to its default value true. If this parameter is
set to false, the character strings managed by Text are removed from
the application.
A consequence of setting this parameter to false is that all names
assigned to static instances are set to NULL, and cannot be displayed by
the code loaded to the target. Also, the Log Events that automatically
print instance names will print NULL for any static instance. The same
code would print the pointers to the names if this parameter is set to
true and 'isLoaded is set to 'false`.
ROV is not affected by this parameter and it will also correctly display
names of static instances in their modules' views. ROV detects these
names from the saved configuration files.
Module and event IDs are still unique and Log.Events within one module
have consecutive IDs.
| config Text_nameEmpty // module-wide |
|
Default NULL instance name
extern const String Text_nameEmpty;
DETAILS
The name used if the instance's name has been set to NULL.
| config Text_nameStatic // module-wide |
|
Default static instance name
extern const String Text_nameStatic;
DETAILS
The name of an instance if the name exists but it's not loaded
on the target.
| config Text_nameUnknown // module-wide |
|
Default unknowable instance name
extern const String Text_nameUnknown;
DETAILS
The name of an instance if the module's instances are configured to
not have names.
| Text_putLab() // module-wide |
|
Convert label to an ASCII character sequence
Int Text_putLab(
Types_Label *
lab,
Char **
bufp,
Int len);
ARGUMENTS
lab
address of the label to interpret
bufp
address of the output buffer pointer or NULL
If
bufp is
NULL, the label's characters are
output via
System.putch().
len
maximum number of characters to generate
If len is negative, the number of characters to be
generated is not limited.
DETAILS
This function converts a
Types.Label to a sequence of
ASCII characters, writes the characters to the supplied buffer,
updates the buffer pointer to point to the location after the last
output character, and returns the number of characters output.
No more than len characters will be output. If the label would
otherwise be longer, the output is truncated at the point where a
potential overflow is detected. The return value always reflects the
number of characters output, but it may be less than len.
Label structures can be initialized from any module's instance handle
using the module's
Mod_Handle_label() method. See
Types.Label for more information.
RETURNS
The return value always reflects the number of characters output,
but it may be less than len.
SEE
| Text_putMod() // module-wide |
|
Convert module ID to its ASCII name
ARGUMENTS
mid
ID of the module
bufp
address of the output buffer pointer or NULL
If
bufp is
NULL, the module's name characters are
output via
System.putch().
len
maximum number of characters to generate
If len is negative, the number of characters to be
generated is not limited.
DETAILS
This function converts a
Types.ModuleId to a sequence of
ASCII characters, writes the characters to the supplied buffer,
updates the buffer pointer to point to the location after the last
output character, and returns the number of characters output.
No more than len characters will be output. If the module name would
otherwise be longer, the output is truncated at the point where a
potential overflow is detected. The return value always reflects the
number of characters output, but it may be less than len.
RETURNS
The return value always reflects the number of characters output,
but it may be less than len.
| Text_putSite() // module-wide |
|
Convert call site structure to an ASCII character sequence
Int Text_putSite(
Types_Site *
site,
Char **
bufp,
Int len);
ARGUMENTS
site
address of the call site structure to interpret
bufp
address of the output buffer pointer or NULL
If
bufp is
NULL, the site's name characters are
output via
System.putch().
len
maximum number of characters to generate
If len is negative, the number of characters to be
generated is not limited.
DETAILS
This function converts a
Types.Site to a sequence of
ASCII characters, writes the characters to the supplied buffer,
updates the buffer pointer to point to the location after the last
output character, and returns the number of characters output.
No more than len characters will be output. If the sequence would
otherwise be longer, the output is truncated at the point where a
potential overflow is detected.
RETURNS
The return value always reflects the number of characters output,
but it may be less than len.
| Module-Wide Built-Ins |
|
// Get this module's unique id
Bool Text_Module_startupDone();
// Test if this module has completed startup
// The heap from which this module allocates memory
Bool Text_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Text_Module_getMask();
// Returns the diagnostics mask for this module
Void Text_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
| config Text.isLoaded // module-wide |
|
Ensure character-strings are loaded in target memory
Text.isLoaded = Bool true;
DETAILS
Character strings managed by this module are allocated together
with other character strings, and loaded to the target, when this
parameter is set to its default value true. If this parameter is
set to false, the character strings managed by Text are removed from
the application.
A consequence of setting this parameter to false is that all names
assigned to static instances are set to NULL, and cannot be displayed by
the code loaded to the target. Also, the Log Events that automatically
print instance names will print NULL for any static instance. The same
code would print the pointers to the names if this parameter is set to
true and 'isLoaded is set to 'false`.
ROV is not affected by this parameter and it will also correctly display
names of static instances in their modules' views. ROV detects these
names from the saved configuration files.
Module and event IDs are still unique and Log.Events within one module
have consecutive IDs.
C SYNOPSIS
| config Text.nameEmpty // module-wide |
|
Default NULL instance name
Text.nameEmpty = String "{empty-instance-name}";
DETAILS
The name used if the instance's name has been set to NULL.
C SYNOPSIS
| config Text.nameStatic // module-wide |
|
Default static instance name
Text.nameStatic = String "{static-instance-name}";
DETAILS
The name of an instance if the name exists but it's not loaded
on the target.
C SYNOPSIS
| config Text.nameUnknown // module-wide |
|
Default unknowable instance name
Text.nameUnknown = String "{unknown-instance-name}";
DETAILS
The name of an instance if the module's instances are configured to
not have names.
C SYNOPSIS
| metaonly config Text.common$ // module-wide |
|
Common module configuration parameters
DETAILS
All modules have this configuration parameter. Its name
contains the '$' character to ensure it does not conflict with
configuration parameters declared by the module. This allows
new configuration parameters to be added in the future without
any chance of breaking existing modules.


|
Scheduler
|
#include <tinyxml2.h>
Public Types | |
| enum | { ITEMS_PER_BLOCK = (4 * 1024) / ITEM_SIZE } |
Public Member Functions | |
| MemPoolT () | |
| ~MemPoolT () | |
| void | Clear () |
| virtual int | ItemSize () const |
| int | CurrentAllocs () const |
| virtual void * | Alloc () |
| virtual void | Free (void *mem) |
| void | Trace (const char *name) |
| void | SetTracked () |
| int | Untracked () const |
| Public Member Functions inherited from tinyxml2::MemPool | |
| MemPool () | |
| virtual | ~MemPool () |
Definition at line 334 of file tinyxml2.h.
| anonymous enum |
| Enumerator | |
|---|---|
| ITEMS_PER_BLOCK |
Definition at line 425 of file tinyxml2.h.
|
inline |
Definition at line 337 of file tinyxml2.h.
|
inline |
Definition at line 338 of file tinyxml2.h.
|
inlinevirtual |
Implements tinyxml2::MemPool.
Definition at line 362 of file tinyxml2.h.
|
inlinevirtual |
Implements tinyxml2::MemPool.
Definition at line 342 of file tinyxml2.h.
|
inline |
Definition at line 358 of file tinyxml2.h.
|
inlinevirtual |
Implements tinyxml2::MemPool.
Definition at line 388 of file tinyxml2.h.
|
inlinevirtual |
Implements tinyxml2::MemPool.
Definition at line 355 of file tinyxml2.h.
|
inlinevirtual |
Implements tinyxml2::MemPool.
Definition at line 406 of file tinyxml2.h.
|
inline |
Definition at line 400 of file tinyxml2.h.
|
inline |
Definition at line 410 of file tinyxml2.h.


Tech strategy & solutions.
We help businesses optimize technologically to accelerate growth.
Get in touch
hello@bluops.com


Content
simple strapping project for your convenience. A simple index.html file and css to create a workspace for you that resembles a blueprint. When you create new sections they will be outlined which will let you know if some things are out of order.


The remote systems (Jive & GitHub) require you to grant access before proceeding.
Authorize Jive
Jive Authorized - OK
Authorize GitHub
GitHub Authorized - OK
Processing


{{ site.user_description }}
We do not only believe in Open when it comes to Linux but to the free and available knowledge to all. Free information creates and grows with those whom are teached and will benefit more if shared rather then collected.
One of the human conditions is our will to explore the unknown, our curiosity for the unexplained. Our irresistible yearning for knowledge. The mind that tries and fails and tries again. Our will to solve the problems, find logic in chaos and to have fun.
As with all Linux we love Opensource. But since we are neither, coders nor creators we have only our knowledge to share what we know. So our contribution to the Opensource community is this site.


This map shows comparisons between water pollution and land use in Washington. The state is divided into Water Resource Inventory Areas (WRIAs) and shaded according to the relative frequency of land use types within each WRIA. The map compares where certain land use types and water pollutants are similarly frequent or infrequent.
On the map, a darker color indicates a higher relative frequency of the associated land type, while a lighter color indicates a lower frequency. The checkbox in the top right controls which of five kinds of water pollution have been recorded. Click on any map to zoom in; click again to return to the default view.
Mapping files and data from the Washington State Department of Ecology and Natural Earth.
Daniel Helton, 2021


|
Graphitti
A toolkit/software architecture to ease creating high-performance neural network simulators
|
Public Member Functions | |
| GpuSInputRegular (TiXmlElement *parms) | |
| The constructor for SInputRegular. More... | |
| virtual void | init () |
| Initialize data. More... | |
| virtual void | term () |
| Terminate process. More... | |
| virtual void | inputStimulus () |
| Process input stimulus for each time step. More... | |
| Public Member Functions inherited from SInputRegular | |
| SInputRegular (TiXmlElement *parms) | |
| The constructor for SInputRegular. More... | |
Additional Inherited Members | |
| Protected Attributes inherited from SInputRegular | |
| bool | fSInput |
| True if stimuls input is on. | |
| BGFLOAT | duration |
| Duration of a pulse in second. | |
| BGFLOAT | interval |
| Interval between pulses in second. | |
| int | nStepsCycle |
| The number of time steps for one cycle of a stimulation. | |
| int | nStepsInCycle |
| The time step within a cycle of stimulation. | |
| int | nStepsDuration |
| The number of time steps for duration of a pulse. | |
| int | nStepsInterval |
| The number of time steps for interval between pulses. | |
| vector< BGFLOAT > | initValues |
| Initial input values. | |
| BGFLOAT * | values |
| Input values, where each entry corresponds with a summationPoint. | |
| int * | nShiftValues |
| Shift values, which determin the synch of stimuli (all 0 when synchronous) | |
Definition at line 20 of file GpuSInputRegular.h.
| GpuSInputRegular::GpuSInputRegular | ( | TiXmlElement * | parms | ) |
The constructor for SInputRegular.
constructor
| [in] | psi | Pointer to the simulation information |
| [in] | parms | TiXmlElement to examine. |
Definition at line 24 of file GpuSInputRegular.cu.
|
virtual |
Initialize data.
Initialize data.
| [in] | psi | Pointer to the simulation information. |
Reimplemented from SInputRegular.
Definition at line 35 of file GpuSInputRegular.cu.
|
virtual |
Process input stimulus for each time step.
Process input stimulus for each time step on GPU.
| [in] | psi | Pointer to the simulation information. |
Implements ISInput.
Definition at line 61 of file GpuSInputRegular.cu.
|
virtual |
Terminate process.
Terminate process.
| [in] | psi | Pointer to the simulation information. |
Reimplemented from SInputRegular.
Definition at line 52 of file GpuSInputRegular.cu.


Pomodoro timer integrated with Google Calendar
Logs
No Pomodoro done yet
Sign in with Google to log your work on Google Calendar
When a session is completed, a log will be added automatically to your calendar.
Select a calendar.
What are you working on?
You can manually add a log by clicking the button below.


This sample demonstrates how to create a custom CODEC using the Windows Imaging Component (WIC) of Vista and the Windows Presentation Foundation (WPF).
The AIT CODEC was developed to keep it as simple as possible while demonstrating the extensibility of the Windows Imaging Component of Vista and Windows Presentation Foundation. It was also developed to represent data as if this were a production level CODEC, so concepts such as image blocks are similar to other formats, such as PNG.
Within the AIT CODEC, a block takes the form of:
struct AIT_BLOCK
{
// Used to distinguish the type of block (first 3 bytes are ASCII,
// last byte must be 0)
uint8_t name[4];
// Specifies which frame in the image this data should be applied to.
uint32_t frame_number;
// Gives the number of bytes in the data section of the block.
uint32_t size;
// Gives the raw data of the block must
be interpreted based upon the name of the block
uint8_t data[size];
};
There are 6 types of blocks that the AIT CODEC support -- AIT, COL, FRA, PAL, PRE, THU
This block must be the first block in the file and must be specified only once.
It may be regarded as the header of AIT files.
The data section of this block takes the form:
struct AIT_BLOCK_DATA
{
// number of frames in the images(permitted to be 0)
uint32_t num_frames;
};
This block specifies a color context to be applied either globally to the image (when AIT_BLOCK.frame_number == 0xFFFFFFFF) or to a frame (when AIT_BLOCK.frame_number != 0xFFFFFFFF). The field AIT_BLOCK.size specifies the size in bytes of the ICM profile to be used in this color context. The data section is the value of those bytes.
This block specifies the bitmap data of a frame.
The AIT_BLOCK.frame_number must be a value in the range [0, N) where N is the number of frames in the image (as specified in the AIT block).
The data section of this block takes the form:
struct FRA_BLOCK_DATA
{
BITMAP_SOURCE_DATA bitmap_source;
};
BITMAP_SOURCE_DATA takes the
form:
struct BITMAP_SOURCE_DATA
{
// Width dimension of the image
uint32_t width;
// Height dimension of the image
uint32_t height;
// Resolution (pixels/inch) of image in X direction
double dpi_x;
// Resolution (pixels/inch) of image in Y direction
double dpi_y;
// The number of bytes needed to the number of bytes needed to encode
// one scan line of the bitmap
uint32_t stride;
// The GUID of the pixel format of this bitmap valid values include
// those recognized in wincodec.h (GUID_WICPixelFormat*)
GUID pixel_format;
// All data values one scanline at a time beginning at the top-most
// scanline and continuing to the bottom-most scanline
uint8_t bitmap_data[stride * height];
};
(Here, a double is an IEEE 64-bit floating-point number and GUID is 16 bytes used to uniquely identify an object.)
A FRA block, therefore, is simply the BITMAP_SOURCE_DATA needed to represent that frame.
struct PAL_BLOCK_DATA
{
// Number of colors in this palette (must be > 0)
uint32_t num_colors;
// Gives those colors as WICColors (defined in wincodec.h)
WICColor colors[num_colors];
};
This block specifies a preview bitmap that may be applied to the image as a whole (AIT_BLOCK.frame_number must equal 0xFFFFFFFF). Its data section is simply a BITMAP_SOURCE_DATA (similar to a FRA block).
This block specifies a thumbnail bitmap the may be applied to the entire image or a single frame (as specified in the save rules as COLís). Its data section is simply a BITMAP_SOURCE_DATA (similar to a FRA block).


[all packages]
[package ]
[class hierarchy]
[index]
public class FrameScrollable extends Frame { public FrameScrollable(String name); public void setContents(CanvasDrawer contents); public boolean handleEvent(Event evt); public void show(); }
[all packages]
[package ]
[class hierarchy]
[index]


[viewBag] title = "CAMEO" url = "/whats-on/cameo" layout = "default" hidden = "0" navigation_hidden = "0" seo_description = "A meeting at Crockenhill Baptist Church" robot_index = "index" robot_follow = "follow" ==
'Come and meet each other' – a weekly meeting, with interesting speakers.


foo
```javascript
var s = "JavaScript syntax highlighting";
alert(s);
```
bar
this is a long paragraph
this is another long paragraph
```javascript
var s = "JavaScript syntax highlighting";
alert(s);
```
```python
s = "Python syntax highlighting"
print s
```


bnlearn’s documentation!¶
bnlearn is for learning the graphical structure of Bayesian networks in Python! What benefits does bnlearn offer over other bayesian analysis implementations?
Build on top of the pgmpy library
Contains the most-wanted bayesian pipelines
Simple and intuitive
Focus on structure learning, parameter learning and inference.
Step-by-step guide for structure learning Step-by-step guide for knowledge-driven models
Content¶
References¶
Source code and issue tracker¶
Available on Github, erdogant/bnlearn. Please report bugs, issues and feature extensions there.


Dispensaries
Featured Dispensaries
- Post Provisional License Journey
-
Success in a business is more than just the start of the idea and license to operate it.
ref: ... read more - Dispensary Ratings
- Understanding dispensary ratings, and the details of their CBD treatment offerings.
Map
United States
- Alabama AL
- Partial Medicinal at Specific THC Level
- Alaska AK
- Full Medicinal
- Recreational
- Arizona AZ
- Full Medicinal
- Arkansas AR
- Full Medicinal
- California CA
- Full Medicinal
- Recreational
- Colorado CO
- Full Medicinal
- Recreational
- Connecticut CT
- Full Medicinal
- Delaware DE
- Full Medicinal
- Florida FL
- Full Medicinal
- Partial Medicinal at Specific THC Level
- Georgia GA
- Partial Medicinal at Specific THC Level
- Hawaii HI
- Full Medicinal
- Idaho ID
- -=Illegal=-
- Illinois IL
- Full Medicinal
- Indiana IN
- Partial Medicinal at Specific THC Level
- Iowa IA
- Partial Medicinal at Specific THC Level
- Kansas KS
- -=Illegal=-
- Kentucky KY
- Partial Medicinal at Specific THC Level
- Louisiana LA
- Maine ME
- Full Medicinal
- Recreational
- Maryland MD
- Full Medicinal
- Massachusetts MA
- Full Medicinal
- Recreational
- Michigan MI
- Full Medicinal
- Minnesota MN
- Full Medicinal
- Mississippi MS
- Partial Medicinal at Specific THC Level
- Missouri MO
- Partial Medicinal at Specific THC Level
- Montana MT
- Full Medicinal
- Nebraska NE
- -=Illegal=-
- Nevada NV
- Full Medicinal
- Recreational
- New Hampshire NH
- Full Medicinal
- New Jersey NJ
- Full Medicinal
- New Mexico NM
- Full Medicinal
- New York NY
- Full Medicinal
- North Carolina NC
- Partial Medicinal at Specific THC Level
- North Dakota ND
- Full Medicinal
- Ohio OH
- Full Medicinal
- Oklahoma OK
- Partial Medicinal at Specific THC Level
- Oregon OR
- Full Medicinal
- Recreational
- Pennsylvania PA
- Full Medicinal
- Rhode Island RI
- Full Medicinal
- South Carolina SC
- Partial Medicinal at Specific THC Level
- South Dakota SD
- -=Illegal=-
- Tennessee TN
- Partial Medicinal at Specific THC Level
- Texas TX
- Partial Medicinal at Specific THC Level
- Utah UT
- Partial Medicinal at Specific THC Level
- Vermont VT
- Full Medicinal
- Virginia VA
- Partial Medicinal at Specific THC Level
- Washington WA
- Full Medicinal
- Recreational
- West Virginia WV
- Full Medicinal
- Wisconsin WI
- Partial Medicinal at Specific THC Level
- Wyoming WY
- Partial Medicinal at Specific THC Level
US Territories
- Guam
- Full Medicinal
- Puerto Rico
- Full Medicinal
Canada
Global Dispensaries Listing
reference: CBD legalization status


Demo of displaying a tournament tree using an HTML canvas.
How many players will be in the tournament?
3 to 4
5 to 8
9 to 16
17 to 32
33 to 64


Home page
About Us
Fundraisers
Meeting Info
Resources
Meeting Information
Address
Shimek Elementary School
1500 Grissell Place
Iowa City, IA


In this project, we aspire to serve the crime department by building a site that allows its members to work with higher quality. This project serves the criminology department in:
You can reach us by:
Email<EMAIL_ADDRESS>Aba Hoshi, Haifa, Israel


Ex-MI5 head backs calls for publication of report on Russian meddling in UK democratic process
The former head of MI5 has backed calls for a parliamentary report into alleged Russian interference in the UK democratic process to be published before the General Election in Britain.
Downing Street has been accused of holding back the report by the Intelligence and Security Committee (ISC) after indicating it would not be cleared for release before UK Parliament is dissolved on Wednesday.
However, Lord Evans of Weardale, who was MI5 director general until 2013, told BBC Radio 4’s Today programme that if ministers were not prepared to release it, they should explain why.
“In principle, I think it should be released,” he said.
“Part of the reason for having an Intelligence and Security Committee is that issues of public concern can be properly considered and the public can be informed through the publication of the reports once they have gone through the security process.
If the Government have a reason why this should not be published before the election, then I think they should make it very clear what that reason is
“If the Government have a reason why this should not be published before the election, then I think they should make it very clear what that reason is.”
Yesterday the British Prime Minister’s official spokesman indicated the necessary clearance process has yet to be completed.
“There are processes reports such as this have to go through before publication. The committee is well-informed of these,” the spokesman said.
The ISC oversees the work of the agencies – MI5, MI6 and GCHQ – and in the course of its work has access to highly sensitive intelligence material.
Its reports are submitted to the Government before publication to ensure no sensitive information is inadvertently made public.
Dominic Grieve, the chairman of the Parliamentary Intelligence and Security Committee (ISC), has said the process was normally completed within 10 working days.
However, this was disputed by Government sources who said that it usually took six weeks.
Mr Grieve has expressed concern that the report – which is reported to have looked into whether Russian interference affected the result of the 2016 EU referendum – contained information “germane” to voters in the forthcoming election.
READ MORE
Xi Jinping meets Carrie Lam in ‘vote of confidence’ over Hong Kong protests


If this is your first time signing in, please use the following credentials
For example, Adolf Hitler's email would be<EMAIL_ADDRESS>and his password would be P@ssword123


home page
keynote address
speakers
general session
abstracts
programs
workshops
committees
executive session
advisory council
travel info
accommodations
banquet
family attractions
registration
ACGIP home page
tour Sante Fe
links
Conference Registration Form
Required Item (*)


Data Scientist - Emeryville, CA
Join us as we build a next-generation analytics platform to serve our world-class agents. As a Data Scientist, you’ll help build machine learning , deep learning and reinforcement learning models and platforms that lay the foundation for optimizing agent and broker productivity and bring Realogy’s renowned real estate brands into the next era of data-driven excellence.
What we’re looking for:
You’re an experienced, talented, and motivated data scientist who loves data, who’s ready to work with a team of individuals who share your passion. You enjoy challenging projects involving large data pipelines, machine learning and deep learning model development and solve their real world use cases. With your strong analytical skills, unwavering commitment to quality, excellent technical skills, and collaborative work ethic, you’ll do great things here at ZapLabs.
What you’ll do:
As a Data Scientist, you’ll be responsible for mastering our data and designing the systems which enable us to use it most effectively. You’ll be designing, developing and implementing machine learning, deep learning, business intelligence, and predictive analytics models that meet the needs of millions of agents, brokers, home buyers, and sellers. Your role will involve collaborating with a team of talented engineers, product managers and designers to investigate new data sources, perform data modeling, and deploy new features.
Skills, accomplishments, & interests you should have:
-
PhD in Computer Science, Engineering, Mathematics, or related analytical discipline or equivalent combination of training and experience
-
2-4 years of Data Science/Analytics experience.
-
Proven experience with machine learning data modeling projects and model development for solving business problems.
-
Experience with deep learning libraries (Tensorflow, Caffe, PyTorch, MxNet etc.) and application development
-
Understanding and demonstrated experience of deep learning method, training, parameter tuning and deployment
- Conceptual knowledge and ability to explain common ML algorithms
- Familiarity with hypothesis testing
-
Solid knowledge of Python or R for statistical analysis, modeling and visualization (pandas, numpy, scipy, scikit-learn, etc)
-
Some experience with ETL, data cleaning, transformation experience
-
Some experience in SQL.
-
Ability to collaborate with team members
-
Ability to clearly explain big picture overview and in-depth technical details to both non-technical (product managers, senior leadership, etc.) and technical people
-
Excellent written and verbal communication skills in English
Nice to haves:-
Experience with Java, Scala etc.
- Familiarity or experience with Cloud-based or Big Data technologies (AWS, Spark, EMR, EC2, S3, AWS Athena, Redshift, , etc.) is a plus.
#LI-KD1


Create Account
×
Personal Information
First Name
Last Name
Gender
Male
Female
Email
Phone
Select Province
Choose a username
Username
Choose a password
Password
Password Strength
Confirm Password


jQuery can be used to make things happen as a result of mouse actions, including movement and mouse button clicks.
Move the mouse into and out of this area, and watch the square.
Press and hold the mouse button in this area. Watch the square.
Move the mouse inside this area, and the square will move.
To reset the square's position, click here
View on Codepen: (1) mouseenter/mouseleave and mouseup/mousedown (2) mousemove


Toggle navigation
Vast Challenge 2016
Prox-out
Prox-out
Prox_out route
prox-mobile
Building
Building Power
Building Temperature
Building Air Flow
Harmful Gas
Water Heater
all
Administration
Engineering
Executive
Facilities
HR
Information Technology
Security
** Nothing **
** No Information Available **


Tags: Vladimir-Lenin
Style: Social Realism
Artist: Rivera Diego
Title: Lenin in 1922
Year: unknown-year
Genre: portrait
Categories: cowboy_hat (15.4%); pickelhaube (10.0%); sweatshirt (9.4%); bulletproof_vest (6.7%); military_uniform (5.6%)
<< previous image next image >>


Home
Publications
Code
Data
Links
Additional related links
Tal Hassner
at the Open University of Israel
Adience


---
layout: post
title: International Communication to Fight Digital Crime
date: '2012-07-09T03:48:00.000+09:00'
author: Joshua James
tags:
- Discussion
modified_time: '2012-07-09T03:57:40.607+09:00'
blogger_id: tag:blogger.com,1999:blog-2701259639305045003.post-6701734198202736895
---
Talk about DagSthule discussion + ISCR + forming groups.
LE don't talk to each other unless they need something - current channels are failing
Prosecutors don't talk to each other, and don't make it explicitly clear what is needed for international requests (ISCR).
Private companies are reluctant to share information with competitors
Academia want to talk to everyone, but are working at a level that is too theoretical to be immediately useful to others.
And no one talks to each other.


Environmental Simulator
Help
Sources
Restart
Name
Time to play
10 year
100 year
1000 year
10000 year
Unlimited
Submit


Icons
The template includes a complete icon set from the awesome icon font Entypo, with 122 available symbols:
Icon fonts are vectors, so they may take any desired size and color, are resolution-independant and can even receive a drop-shadow:
The template includes a complete icon set from the awesome icon font Entypo, with 122 available symbols:
Icon fonts are vectors, so they may take any desired size and color, are resolution-independant and can even receive a drop-shadow:


Character Frequency Counter System
NEW
Submit
Result
Top 20 Characters
Loading...
Lowest 5 characters
Loading...


|
My Project
|
Structure which represents the diagnostic information. More...
#include <common_client.h>
Public Attributes | |
| int | symbolicId |
| int | namespaceUri |
| int | localizedText |
| int | locale |
| char * | additionalInfo |
| void * | innerDiagnosticInfo |
| char * | msg |
Structure which represents the diagnostic information.
| char* EdgeDiagnosticInfo::additionalInfo |
Diagnostic information associated with inner status code
| void* EdgeDiagnosticInfo::innerDiagnosticInfo |
Description of diagnostic info
| int EdgeDiagnosticInfo::locale |
Diagnostic information
| int EdgeDiagnosticInfo::localizedText |
Locale part of vendor-specific localized text describing the symbolic id
| int EdgeDiagnosticInfo::namespaceUri |
Localized Text string that describes the s ymbolic id
| int EdgeDiagnosticInfo::symbolicId |
< Symbolic Id used to identify vendor-specific error or condition; typically the result of some server internal operation Namespace Uri


About
Minimal Mistakes is a flexible two-column Jekyll theme. Perfect for hosting your personal site, blog, or portfolio on GitHub or self-hosting on your own server. As the name implies — styling is purposely minimalistic to be enhanced and customized by you .
The theme includes responsive layouts (single
, archive
, and splash
pages) that look great on mobile and desktop browsers.
Notable Features
- Compatible with Jekyll 3.x and GitHub Pages
- Several layout options (single, archive, splash pages)
- SEO optimized with support for Twitter Cards and Open Graph data
- Optional header images, sidebars, table of contents, galleries, related posts, breadcrumb links, and more.
- Optional comments (Disqus, Facebook, Google+, and custom)
- Optional analytics (Google Analytics and custom)
Demo Pages
| Name | Description |
|---|---|
| Post with Header Image | A post with a large header image. |
| HTML Tags and Formatting Post | A variety of common markup showing how the theme styles them. |
| Syntax Highlighting Post | Post displaying highlighted code. |
| Post with a Gallery | A post showing several images wrapped in <figure> elements. |
| Sample Collection Page | Single page from a collection. |
| Categories Archive | Posts grouped by category. |
| Tags Archive | Posts grouped by tags. |
For even more demo pages check the posts archive.
Credits
Icons + Demo Images:
- The Noun Project – Garrett Knoll, Arthur Shlain, and tracy tam
- Font Awesome
- Unsplash
Other:
- Jekyll
- jQuery
- Susy
- Breakpoint
- Magnific Popup
- FitVids.JS
- Greedy Navigation - lukejacksonn
- jQuery Smooth Scroll
- Stickyfill
Minimal Mistakes is designed, developed, and maintained by Michael Rose. Just another boring, tattooed, designer from Buffalo New York.


M.S. CS/DS
Shuo Liu is pursuing his M.S. Data Science degree in the Fu Foundation Engineering School at Columbia University, NY. Before that, he received M.S. degree in Computer Science from Columbia coworked with Prof. Sharon Di in 2022, and B.E. degree in Software Engineering from Sun Yat-sen University (中山大学), Guangzhou, China, in 2020, supervised by Prof. Wuhui Chen in InplusLab.
His research interest broadly lies in the areas of machine learning and game theory. Some specific topics such as mean-field game and multi-agent reinforcement learning are highly involved.
[TSC]
SocialChain: Decoupling Social Data and Applications to Return Your Data Ownership.
Ting Cai, Zicong Hong, Shuo Liu, Wuhui Chen, Zhen Zheng, Yang Yu.
in IEEE Transactions on Services Computing (TSC), 2021.
[JSA]
Privacy-preserving incentive mechanism for multi-leader multi-follower IoT-edge computing market: A reinforcement learning approach.
Huiying Xu, Xiaoyu Qiu, Weikun Zhang, Kang Liu, Shuo Liu, Wuhui Chen.
in Journal of Systems Architecture (JSA), 2021.
[ICML]
Physics-Informed Neural Operator for Coupled Forward-Backward Partial Differential Equations.
Xu Chen, Yongjie Fu, Shuo Liu, Sharon Di.
in 40th International Conference on Machine Learning (ICML'23) Workshop SynS and ML.
[ECAI]
Learning Dual Mean Field Games on Graphs.
Xu Chen, Shuo Liu, Sharon Di.
in 26th European Conference on Artificial Intelligence (ECAI'23).
(CCF-B).
[AAMAS]
A Hybrid Framework of Reinforcement Learning and Physics-Informed Deep Learning for Spatiotemporal Mean Field Games.
Xu Chen, Shuo Liu, Sharon Di.
in 22nd International Conference on Autonomous Agents and Multiagent Systems (AAMAS'23).
(CCF-B).
[ITSC]
SMART-eFlo: An Integrated SUMO-Gym Framework for MultiAgent Reinforcement Learning in Electric Fleet Management Problem.
Shuo Liu, Yunhao Wang, Xu Chen, Yongjie Fu, Sharon Di.
in 25th IEEE International Conference on Intelligent Transportation Systems (ITSC'22).
[SciPy]
Boost-histogram: High-Performance Histograms as Objects.
Henry Schreiner, Hans Dembinski, Shuo Liu, Jim Pivarski.
in Proceedings of the 19th Python in Science Conference (SciPy'20).
[ISCID]
Application of Blockchain in IoT Data Trust and Information Available Technology.
Shuo Liu.
in 12th International Symposium on Computational Intelligence and Design (ISCID'19).
[ISPA]
Perishable Digital Goods Trading Mechanism for Blockchain-based Vehicular Network.
Rui Xi, Kang Liu, Shuo Liu, Wuhui Chen, Shenghui Li.
in 17th IEEE International Symposium on Parallel and Distributed Processing with Applications (ISPA'19).


LEGENDS OF THE FALL A film review by James Berardinelli Copyright 1995 James Berardinelli
RATING (0 TO 10): 8.9 Date Released: 1/13/95 (wide) Running Length: 2:13 Rated: R (Violence, sexual situations, language, nudity)
Starring: Brad Pitt, Aidan Quinn, Julia Ormond, Anthony Hopkins, Henry Thomas, Karina Lombard, Gordon Tootoosis Director: Edward Zwick Producers: Edward Zwick, Bill Wittliff, and Marshall Herskovitz Screenplay: Susan Shilliday and Bill Wittliff based on the novella by Jim Harrison Cinematography: John Toll Music: James Horner Released by TriStar Pictures
LEGENDS OF THE FALL is the sort of epic melodrama that only Hollywood can do this well. It's a spectacle more than a show, with soaring moments of triumph and tragedy. Words like "restraint" and "subtle" are meaningless in this context. The latest offering from Edward Zwick, the director of GLORY, is the kind of movie that doesn't require much effort to surrender to and enjoy.
At the center of Susan Shilliday and Bill Wittliff's script are the three Ludlow brothers: Alfred (Aidan Quinn), the oldest and most straightlaced; Tristan (Brad Pitt), the middle child with a special affinity for nature; and Samuel (Henry Thomas), the youngest and most idealistic. The family's patriarch is Col. Ludlow (Anthony Hopkins), an officer who left the U.S. army when he disagreed with the treatment of the Indians. The four men, along with an assortment of friends, live in the Montana Rockies, away from the trappings--if not the presence--of civilization.
It would be difficult to find any more affectionate and caring brothers than Alfred, Tristan, and Samuel--until one woman turns all three lives upside down. Hailing from Boston, Susannah (Julia Ormond) is engaged to Samuel. However, the impending marriage can't prevent both of his brothers from falling for her, and she for at least one of them.
America's entrance into World War One--and the consequential bloody price--concludes the introductory portion of the film and unwraps the real meat of the drama. Beyond this point, tangled passions rise in a tide of betrayal and jealousy. Few crimes, whether of the heart or the body, are left unavenged. There are deaths--some expected and some sudden--and births. Lost opportunities give rise to mournful reflections on what might have been. And, at the end of it all, exists one final catharsis.
There is nothing deep about LEGENDS OF THE FALL. Its few themes (such as the innate corruption of government) are kept in the background, giving prominence to characterization and storyline. Needless to say, this is an extravagant production, with sumptuous visuals (credit cinematographer John Toll) and a rich score (by James Horner). In look and feel, it is much like DANCES WITH WOLVES and THE LAST OF THE MOHICANS.
Brad Pitt, a modern-day James Dean, brings a wealth of melancholy to his role of Tristan, the fulcrum for at least three of the film's major tragedies. The character's comings and goings represent the openings and closings of chapters. Even when Tristan isn't on screen, the movie is invariably about him. It takes little guessing to realize that his love affair with Susannah is central to everything that transpires.
Supporting Pitt is a fine cast, including Anthony Hopkins, Aidan Quinn, and newcomer Julia Ormond, whose role here offers a taste of things to come (she's in a lot of upcoming films, including a remake of SABRINA and the latest Camelot retelling with Sean Connery and Richard Gere). However, all of these actors, regardless of how respected, must (and do) surrender center stage to Pitt when he's on hand. The spotlight is his.
Manipulation is a part of any melodrama, and LEGENDS OF THE FALL is no exception. In this case, however, the entertainment offered far outweighs any momentary recognition that the director is tweaking our emotions. A film maker who can pull this off once--not to mention twice (here, as in GLORY)--deserves both respect and admiration.
It seems that there are perennial attempts at this sort of grand- scale motion picture, each with ambitions as big as the mountains that form the backdrop. Because it's so easy to overdo melodrama, successes are rare. Thankfully, there are few missteps in LEGENDS OF THE FALL. You don't have to be a critic, or even have a critical perspective, to be entertained by this film.
- James Berardinelli<EMAIL_ADDRESS>.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Methods
checkAvatarByName(avatar, callback)
Checks avatar status by individual avatar name
Parameters:
| Name | Type | Description |
|---|---|---|
avatar |
String | The name of the avatar whose status to check |
callback |
function | Function to run when checking is complete |
getAvatarPidByName(avatarName, callback)
Lookup avatar process by name
Parameters:
| Name | Type | Description |
|---|---|---|
avatarName |
||
callback |
function | [description] |
getRunningAvatars(callback) → {Object}
Gets list of actually running avatars by parsing *nix processes
Parameters:
| Name | Type | Description |
|---|---|---|
callback |
function | Function run when processing fails or is finished |
Returns:
array - an array of running avatars: ['zorby3', 'fashiongerry', ...]
- Type
- Object
killAvatarByPid(pid, callback)
Kill a running avatar by process id
"The only one that can do what I do is me. Lot of people had to die for me to be me. You wanna be me?"
Parameters:
| Name | Type | Description |
|---|---|---|
pid |
Integer | The process id of the avatar to be killed |
callback |
function | Function to run when the process is complete |
modifyAvatarRunningStatusByName(avatarName, status, callback)
Updates an avatar's running status by name
Parameters:
| Name | Type | Description |
|---|---|---|
avatarName |
String | The name of the avatar to update |
status |
Object | The new running status of the avatar |
callback |
function | Function to run when the updating process is complete, or on error |
recoverFallenAvatars() → {Array}
Ressurects each and every fallen avatar
"Whitemane will continue to cast Mass Resurrection, so keep interrupting her!"
Returns:
- fallen_avatars - Array of avatars that should be running but aren't
- Type
- Array
startAvatarByName(avatarName, callback)
Starts an avatar by its name
Parameters:
| Name | Type | Description |
|---|---|---|
avatarName |
String | The name of the avatar to start |
callback |
function | Function to run after startup process has run, or on error |
stopAvatarByName(avatarName, callback)
Stop an avatar by name
Parameters:
| Name | Type | Description |
|---|---|---|
avatarName |
String | The name of the avatar to stop |
callback |
function | The function to run when stopping process is complete |


"User interfaces without all that mucking around in hyperspace"
Contents
Npyscreen is a python library that is designed to make the writing of curses-based user interfaces quick and easy.
It is designed to run using only the python standard library, and the only requirements are a working python (2.4 or above) installation and a working curses library. Npyscreen will therefore work on almost all common platforms, and even in the Cygwin environment on Windows.
This document explains the key features of Npyscreen - enough to get you using it. It is, however, a work in progress.
Unless otherwise marked, all of the Forms and methods here can be considered part of the official API.
Anything not set out in this document might be part of the internal workings of npyscreen, and may be subject to change in future versions.
Example Code:
import npyscreen class MyTestApp(npyscreen.NPSAppManaged): def onStart(self): self.registerForm("MAIN", MainForm()) class MainForm(npyscreen.Form): def create(self): self.add(npyscreen.TitleText, name = "Text:", value= "Press Escape to quit application" ) self.how_exited_handers[npyscreen.widget.EXITED_ESCAPE] = self.exit_application def exit_application(self): self.parentApp.NEXT_ACTIVE_FORM = None self.editing = False def main(): TA = MyTestApp() TA.run() if __name__ == '__main__': main()
NPSAppManaged provides a framework to start and end your application and to manage the display of the various Forms that you have created, in a way that should not create recursion depth problems.
Unless you have exceptionally good reasons to do otherwise, NPSAppManaged is almost certainly the best way to manage your application.
Unlike the plain NPSApp class, you do not need to write your own main loop - NPSAppManaged will manage the display of each Form of your application. Set up your form objects and simply call the .run() method of your NPSAppManaged instance.
There are two methods for registering a Form object with an NPSAppManaged instance:
All Forms registered with an NPSAppManaged instance can access the controlling application as self.parentApp.
If for any reason you need to remove a Form, you can do with the .removeForm(id) method.
Once all of your forms are ready and registered with an NPSAppManaged instance, you should call .run()
This method will activate the default form, which should have been given an id of "MAIN". You can change this default by changing the class/instance variable .STARTING_FORM.
Thereafter, the next form to be displayed will be the one specified by the instance variable NEXT_ACTIVE_FORM. Whenever a Form edit loop exits, the Form specified here will be activated. If NEXT_ACTIVE_FORM is None, the main loop will exit. NEXT_ACTIVE_FORM should be set by calling the application's setNextForm(formid) method. This documentation used to suggest that you set the attribute directly. While there are no immediate plans to deprecate this attribute, setting it directly should be avoided.
There are three mechanisms that Forms should use to control NEXT_ACTIVE_FORM.
All Forms registered with an NPSAppManaged which do not have the special method .activate() will have their method .afterEditing called, if they have it. Logic to determine which the NEXT_ACTIVE_FORM should be should go here. NEXT_ACTIVE_FORM should be set by calling the application's setNextForm(formid) method. If you are expecting your users to select an ok or cancel button, this is the preferred way to switch screens.
The application method switchForm(formid) causes the application to immediately stop editing the current form and switch to the one specified. Depending on the type of Form, the logic associated with them may be bypassed too.
Forms registered with an NPSAppManaged may be given an .activate() method, which NPSAppManaged will call instead of the usual .edit() method. This can contain additional logic. This is NOT the preferred method, but may allow greater flexibility. Note that in this case, the usual .edit() method will not be called, unless you call it explicitly. For example, an .activate() method might look like this:
def activate(self): self.edit() self.parentApp.setNextForm(None)
which would cause the mainloop to exit after the Form was complete.
The following methods may be usefully overridden by subclassing NPSAppManaged. By default they do nothing.
Forms called by NPSAppManaged can be given the methods
The following attribute affects new Forms:
To use NPSApp subclass it and provide your own .main() definition. When you are ready to run the application call .run() and your mainloop will be executed.
While it provides maximum flexibility, NPSApp is in almost every other way inferior to NPSAppManaged.
A Form object is a screen area that contains widgets. Forms control which widget a user is editing, and may provide additional functionality, such as pop-up menus or actions that happen on particular keypresses.
The Following arguments can be passed to a Form's constructor:
Forms cannot be resized once created. A system to dynamically re-arrange widgets as a terminal is resized is in a experimental state but is not part of the current distribution.
The standard constructor will call the method .create(), which you should override to create the Form widgets. See below.
To add a widget to a Form, use the method:
The position and size of a widget are controlled by the widget's constructor. However, there are hints that the Form class provides. If you do not override the position of the widget, it will be placed according to the Form's .nextrelx and nextrely instance attributes. The .nextrely attribute is increased automatically each time a widget is placed. You might also increase it yourself by doing something like:
self.nextrely += 1
Which would leave a gap between the previous widget and the next placed one.
Be very careful with this method. It is called for every keypress while the Form is being edited, and there is no guarantee that it might not be called even more frequently. By default it does nothing, and is intended for you to override. Since it gets called so frequently, thoughtlessness here could slow down your whole application.
For example, be very conservative with redraws of the whole Form (a slow operation) - make sure you put in code to test whether a redraw is necessary, and try to only redraw widgets that really need to be changed, rather than redrawing the whole screen.
If the Form's parentApp also has a method called adjust_widgets, this will also be called.
If you wish to perform actions while waiting for the user to press a key, you may define a while_waiting method. You should also set the attribute keypress_timeout, which is a value in ms. Whenever waiting for input, if more than the time given in keypress_timeout passes, while_waiting will be called. Note that npyscreen takes no steps to ensure that while_waiting() is called at exactly regular intervals, and in fact it may never be called at all if the user continually presses keys.
If a form's parentApp has a method called while_waiting this will also be called.
A keypress_timeout value of 10 suggests that the while_waiting method is called about every second, assuming the user takes no other action.
See the included example Example-waiting.py for a fully worked example.
The basic Form class. When editing the form, the user can exit by selecting the OK button in the bottom right corner.
By default, a Form will fill the Terminal. Popup is simply a Form with a smaller default size.
All form classes can have the method set_value(value). This sets the value of the attribute value and calls the method when_parent_changes_value of every contained widget on the form.
These are Form classes with slightly different layouts.
The SplitForm has a horizontal line across the middle. The method get_half_way() will tell you where it has been drawn.
These forms are similar to the Form and ActionForm classes, but provide the additional functionality of Popup menus.
To add a new menu to the Form use the method new_menu(name=''). This will create the menu and return a proxy to it. For more details see the section on Menus below.
Inspired by the user interfaces of programs like mutt or irssi, this form defines four default widgets:
By default, wStatus1 and wStatus2 have editable set to False.
These classes are intended to make the creation of more complicated applications easier. It uses the additional classes NPSFilteredDataBase, ActionControllerSimple, TextCommandBox, TextCommandBoxTraditional.
A very common *nix style of terminal application (used by applications like mutt and irssi) has a central display with a list or grid of times, a command line at the bottom and some status lines.
These classes make setting up a similar form easy. The difference between the FormMuttActive and FormMuttActiveTraditional classes is that in the latter the only widget that the user ever actually edits is the command line at the bottom of the screen. However, keypresses will be passed to the multiline widget in the centre of the display if these widgets are not editing a command line, allowing the user to scroll around and select items.
What is actually displayed on the screen is controlled by the ActionControllerSimple class, which uses as a base the data stored not by any of the individual widgets but by the NPSFilteredDatabase class.
I will write separate documentation explaining how to properly use and extend these classes. In the meantime please contact me if you require help.
This experimental class adds support for multi-page forms. By default, scrolling down off the last widget on a page moves to the next page, and moving up from the first widget moves back a page.
Three new methods are added to this form:
The default class will display the page you are on in the bottom right corner if the attribute display_pages is True and if there is more than one page. You can also pass display_pages=False in to the constructor. The color used for this display is stored in the attribute pages_label_color. By default this is 'NORMAL'. Other good values might be 'STANDOUT', 'CONTROL' or 'LABEL'. Again, you can pass this in to the constructor.
Please note that this class is EXPERIMENTAL. The API is still under review, and may change in future releases. It is intended for applications which may have to create forms dynamically, which might need to create a single form larger than a screen (for example, a Jabber client that needs to display an xmpp form specified by the server.) It is not intended to display arbitrarily large lists of items. For that purpose, the multiline classes of widgets are much more efficient.
Widgets are created by passing their class as the first argument of a Form's add(...) method. The remaining arguments will be passed to the widget's own constructor. These control things such as size, position, name, and initial values.
All widgets have the following methods:
Redraws the widget, but doesn't tell curses to update the screen (it is more efficient to update all widgets and then have the Form on which they sit tell curses to redraw the screen all in one go).
Most widgets accept the optional argument clear=False|True which affects whether they first blank the area they occupy before redrawing themselves
Called when, during editing of the widget, its value changes. I.e. after keypresses. You can disable this by setting the attribute check_value_change to False.
You can override this function for your own use.
Called when, during the editing of the widget, its cursor has been moved. You can disable the check for this by setting the attribute check_cursor_move to False.
You can override this function for your own use.
Many widgets exist in two forms, one with a label, one without. For example Textbox and TitleText. If the label is particularly long (at time of construction), the label may be put on its own line. Additional constructor arguments:
Internally titled widgets are actually a textbox (for the label) and whatever other kind of widget is required. You can access the separate widgets (if you ever need to - you shouldn't) through the label_widget and entry_widget attributes. However, you may never need to, since the value and values attributes of the combined widget should work as expected.
This is a textbox but with additional functionality - the idea is that if the user presses TAB the widget will attempt to 'complete' what the user was typing, offering a choice of options if appropriate.
Of course, context is everything here. Autocomplete is therefore not useful, but is intended as something you can subclass. See the Filename and TitleFilename classes for examples.
A textbox that will attempt to 'complete' a filename or path entered by the user.
This is an example of the Autocomplete widget.
Offer the user a list of options. (This widget could probably have a better name, but we're stuck with it for now)
The options should be stored in the attribute values as a list. The attribute value stores the index of the user's selection. If you want to return the actual selected values rather than an index, use the get_selected_objects() method.
One of the most important features of MultiLine and widgets derived from it is that it can be adapted easily to allow the user to choose different types of objects. To do so, override the method display_value(self, vl). The argument vl will be the object being displayed, and the function should return a string that can be displayed on the screen.
In other words you can pass in a list of objects of arbitrary types. By default, they will be displayed using str(), but by overriding display_value you can present them however you see fit.
MultiLine also allows the user to 'filter' entries. (bound to keys l, L, n, p by default for filter, clear filter, next and previous). The current implementation highlights lines that match on the screen. Future implementations may hide the other lines or offer a choice. You can control how the filter operates by overriding the filter_value method. This should accept an index as an argument (which looks up a line in the list .values) and should return True on a match and False otherwise.
A titled version of the MultiLine widget.
If creating your own subclasses of MultiLine, you can create Title versions by subclassing this object and changing the _entry_type class variable.
Offer the User a list of options, allow him or her to select more than one of them.
The value attribute is a list of the indexes user's choices. As with the MultiLine widget, the list of choices is stored in the attribue values.
Slider presents a horizontal slider. The following additional arguments to the constructor are useful:
All of these options set attributes of the same name that may be altered once the widget exists.
The text displayed next to the widget (if label=True) is generated by the translate_value method. This takes no options and returns a string. It makes sense to subclass the Slider object and overload this method. It probably makes sense to ensure that the string generated is of a fixed length. Thus the default code looks like:
stri = "%s / %s" %(self.value, self.out_of) l = (len(str(self.out_of)))*2+4 stri = stri.rjust(l) return stri
(The tree objects are the newest part of the library, and are therefore not as mature as the rest of it. In particular, the exact way they are displayed may change in future versions.).
The NPSTreeData class is used to represent tree objects. Each nod of the tree, including the root node, is an NPSTreeData instance. Each node may have its own content, a parent or children.
The content of each node is either set when it is created or using the .setContent method.
.getContent returns the content.
.getContentForDisplay is used by the widgets that display trees, which expect it to return a string that can be displayed to the user to represent the content. You might want to overload this method.
newChild(content=...) creates a new child node.
The values attribute of this class must store an NPSTree instance. However, if you wish you can override the method convertToTree of this class. This method should return an NPSTree instance. The function will be called automatically whenever values is assigned.
Changed in version 2.0pre69 By default this class uses TreeLine widgets to display each line of the tree. In derived classes You can change this by changing the class attribute _contained_widgets.
This offers a spreadsheet-like display. The default is only intended to display information (in a grid of text-fields). However, it is designed to be flexible and easy to customize to display a variety of different data. Future versions may include new types of grids. Note that you can control the look of the grid by specifying either columns or column_width at the time the widget is created. It may be that in the future the other multi-line classes will be derived from this class.
values should be specified as a two-dimensional array.
These offer a single option - the label is generated from the attribute name, as for titled widgets. The attribute value is either true or false.
The function whenToggled(self) is called when the user toggles the state of the checkbox. You can overload it.
A common use of Checkbox is to offer the user the option to enter additional data. For example "Enter Expiry Date". In such a case, the Form needs to display additional fields in some cases, but not in others. FormControlCheckbox makes this trivial.
Two methods are defined:
wg should be a widget.
This method does not create a widget, but instead puts an existing widget under the control of the FormControlCheckbox. If FormControlCheckbox is selected, the widget will be visible.
As many widgets as you wish can be added in this way.
The AnnotateTextboxBase class is mainly intended for use by the multiline listing widgets, for situations where each item displayed needs an annotation supplied to the left of the entry itself. The API for these classes is slightly ugly, because these classes were originally intended for internal use only. It is likely that more user-friendly versions will be supplied in a later release. Classes derived from AnnotateTextboxBase should define the following:
Many objects can take actions based on user key presses. All such objects inherit from the internal class InputHandler. That class defines a dictionary called handlers and a list called complex_handlers. Both of these are set up by a method called set_up_handlers called during the Constructor.
Might look something like this:
{curses.ascii.NL: self.h_exit_down, curses.ascii.CR: self.h_exit_down, curses.ascii.TAB: self.h_exit_down, curses.KEY_DOWN: self.h_exit_down, curses.KEY_UP: self.h_exit_up, curses.KEY_LEFT: self.h_exit_left, curses.KEY_RIGHT: self.h_exit_right, "^P": self.h_exit_up, "^N": self.h_exit_down, curses.ascii.ESC: self.h_exit_escape, curses.KEY_MOUSE: self.h_exit_mouse, }
If a key is pressed (note support for notations like "^N" for "Control-N" and "!a" for "Alt N") that exists as a key in this dictionary, the function associated with it is called. No further action is taken. By convention functions that handle user input are prefixed with h_.
This list should contain list or tuple pairs like this (test_func, dispatch_func).
If the key is not named in the dictionary handlers, each test_func is run. If it returns True, the dispatch_func is run and the search stops.
Complex handlers are used, for example, to ensure that only printable characters are entered into a textbox. Since they will be run frequently, there should be as few of them as possible, and they should execute as quickly as possible.
When a user is editing a widget and a key is pressed, handlers and then complex_handlers are used to try to find a function to execute. If the widget doesn't define an action to be taken, the handlers and complex_handlers of the parent Form are then checked.
Objects that can handle user input define the following methods to assist with adding your own key bindings:
All of the standard widgets are entirely usable on a monochrome terminal. However, it's a colourful world these days, and npyscreen lets you display your widgets in, well, if not Technicolor(TM) then as close as curses will allow.
Colour is handled by the ThemeManager class. Generally, your application should stick to using one ThemeManager, which you should set using the setTheme(ThemeManager) function. So for example:
npyscreen.setTheme(npyscreen.Themes.ColorfulTheme)
Any default themes defined by npyscreen will be accessible via npyscreen.Themes.
A basic theme looks like this:
class DefaultTheme(npyscreen.ThemeManager): default_colors = { 'DEFAULT' : 'WHITE_BLACK', 'FORMDEFAULT' : 'WHITE_BLACK', 'NO_EDIT' : 'BLUE_BLACK', 'STANDOUT' : 'CYAN_BLACK', 'CURSOR' : 'WHITE_BLACK', 'LABEL' : 'GREEN_BLACK', 'LABELBOLD' : 'WHITE_BLACK', 'CONTROL' : 'YELLOW_BLACK', 'IMPORTANT' : 'GREEN_BLACK', 'SAFE' : 'GREEN_BLACK', 'WARNING' : 'YELLOW_BLACK', 'DANGER' : 'RED_BLACK', 'CRITICAL' : 'BLACK_RED', 'GOOD' : 'GREEN_BLACK', 'GOODHL' : 'GREEN_BLACK', 'VERYGOOD' : 'BLACK_GREEN', 'CAUTION' : 'YELLOW_BLACK', 'CAUTIONHL' : 'BLACK_YELLOW', }
The colours - such as WHITE_BLACK ("white on black") - are defined in the initialize_pairs method of the ThemeManager class. The following are defined by default:
('BLACK_WHITE', curses.COLOR_BLACK, curses.COLOR_WHITE), ('BLUE_BLACK', curses.COLOR_BLUE, curses.COLOR_BLACK), ('CYAN_BLACK', curses.COLOR_CYAN, curses.COLOR_BLACK), ('GREEN_BLACK', curses.COLOR_GREEN, curses.COLOR_BLACK), ('MAGENTA_BLACK', curses.COLOR_MAGENTA, curses.COLOR_BLACK), ('RED_BLACK', curses.COLOR_RED, curses.COLOR_BLACK), ('YELLOW_BLACK', curses.COLOR_YELLOW, curses.COLOR_BLACK), )
('WHITE_BLACK' is always defined.)
If you find you need more, subclass ThemeManager and change class attribute _colours_to_define. You are able to use colours other than the standard curses ones, but since not all terminals support doing so, npyscreen does not by default.
If you want to disable all colour in your application, npyscreen defines two convenient functions: disableColor() and enableColor().
When a widget is being drawn, it asks the active ThemeManager to tell it appropriate colours. 'LABEL', for example, is a label given to colours that will be used for the labels of widgets. The Theme manager looks up the relevant name in its default_colors dictionary and returns the appropriate colour-pair as an curses attribute that is then used to draw the widget on the screen.
Individual widgets often have color attribute of their own (which may be set by the constructor). This is usually set to 'DEFAULT', but could be changed to any other defined name. This mechanism typically only allows individual widgets to have one particular part of their colour-scheme changed.
Title... versions of widgets also define the attribute labelColor, which can be used to change the colour of their label colour.
The latest versions of the library aim to handle unicode/utf-8 strings. Please report any problems.
Widgets that wish to handle mouse events in more detail should override the method .handle_mouse_event(self, mouse_event). Note that mouse_event is a tuple:
def handle_mouse_event(self, mouse_event): mouse_id, x, y, z, bstate = mouse_event # Do things here....
x and y are the mouse click's position on the screen. Presumably the widget would need to also do:
x = x-self.relx y = y-self.rely
See the Python Library curses module documentation for more detail on mouse events.
The following functions allow you to display a brief message or choice to the user.
A very typical style of programming for terminal applications has been to have a screen that has a command line, typically at the bottom of the screen, and then some kind of list widget or other display taking up most of the screen, with a title bar at the top and a status bar above the command line. Variations on this scheme are found in applications like Mutt, less, Vim, irssi and so on.
To make writing these kinds of form easier, npyscreen provides a series of classes that are intended to work together.
These classes define the basic form. The following class attributes dictate exactly how the form is created:
MAIN_WIDGET_CLASS = wgmultiline.MultiLine MAIN_WIDGET_CLASS_START_LINE = 1 STATUS_WIDGET_CLASS = wgtextbox.Textfield STATUS_WIDGET_X_OFFSET = 0 COMMAND_WIDGET_CLASS= wgtextbox.Textfield COMMAND_WIDGET_NAME = None COMMAND_WIDGET_BEGIN_ENTRY_AT = None COMMAND_ALLOW_OVERRIDE_BEGIN_ENTRY_AT = True DATA_CONTROLER = npysNPSFilteredData.NPSFilteredDataList ACTION_CONTROLLER = ActionControllerSimple
The default definition makes the following instance attributes available after initalization:
# Widgets - self.wStatus1 # by default a title bar self.wStatus2 # just above the command line self.wMain # the main area of the form - by default a MultiLine object self.wCommand # the command widget self.action_controller # not a widget. See below.
The form's .value attribute is set to an instance of the object specified by DATA_CONTROLLER.
Typically, and application will want to define its own DATA_CONTROLLER and ACTION_CONTROLLER.
The difference between the traditional and non-traditional forms is that in the traditional form, the focus stays always with the command line widget, although some keypresses will be passed to the MAIN_WIDGET_CLASS - so that, from the user's point of view, it looks as if he/she is interacting with both at once.
This is the same as the TextCommandBox, except that it additionally will pass certain keystrokes to the widget specified by self.linked_widget. In the default case, any keystroke that does not match a handler in TextCommandBoxTraditional will be passed to the linked widget. Additionally, any keystroke that is listed in the list self.always_pass_to_linked_widget will be handled by the linked widget. However, if the current command line begins with any character that is listed in the class attribute BEGINNING_OF_COMMAND_LINE_CHARS, the user input will be handled by this class, not by the linked widget.
This is rather complicated, but an example will make it clearer. The default BEGINNING_OF_COMMAND_LINE_CHARS specifies that ':' or '/' marks the beginning of a command. After that point, keypresses are handled by this widget, not by the linked widget, so that the up and down arrows start to navigate the command history. However, if the command line is currently empty, those keys navigate instead the linked widget.
As in the TextCommandBox widget, the value of the command line is passed to the parent form's action_controller object.
This object receives command lines and executes call-back functions.
It recognises two types of command line - a "live" command line, where an action is taken with every change in the command line, and a command that is executed when the return key is pressed.
Callbacks are added using the add_action(ident, function, live), method. 'ident' is a regular expression that will be matched against the command line, function is the callback itself and live is either True or False, to specify whether the callback should be executed with every keypress (assuming that 'ident' matches).
Command lines that match the regular expression 'ident' cause the call-back to be called with the following arguments: call_back(command_line, control_widget_proxy, live=True). Here command_line is the string that is the command line, control_widget_proxy is a weak reference to the command line widget, and live specifies whether the function is being called 'live' or as a result of a return.
The method create() can be overridden. It is called when the object is created. The default does nothing. You probably want to use this as a place to call self.add_action.
The following example shows how this model works. The application creates an ActionController that has a search action. This action calls the user-defined function set_search, which communicates with the Form's parent.value (actually a NPSFilteredDataBase class). It then uses this class to set the values in wMain.values and calls wMain.display() to update the display.
F = FmSearchActive() F.wStatus1.value = "Status Line " F.wStatus2.value = "Second Status Line " F.value.set_values([str(x) for x in range(500)]) F.wMain.values = F.value.get()
F.edit()


Our coffee-time confection sells salmon shaped cookies.
Guess what, they also taste like salmons fish too.LoL
If you want to see the sales record, please go to sales tab.
Our coffee-time confection sells salmon shaped cookies.
Guess what, they also taste like salmons fish too.LoL
If you want to see the sales record, please go to sales tab.


Before Change
def _kinetic_grad(inverse_mass_matrix, r):
// XXX consider using list/OrderDict to store z and r
// so we don"t have to sort the keys
r_flat = torch.cat([r[site_name].reshape(-1) for site_name in sorted(r)])
if inverse_mass_matrix.dim() == 1:
grads_flat = inverse_mass_matrix * r_flat
else:
grads_flat = inverse_mass_matrix.matmul(r_flat)
// unpacking
grads = {}
pos = 0
After Change
def _kinetic_grad(inverse_mass_matrix, r):
if torch.is_tensor(inverse_mass_matrix):
inverse_mass_matrix = {tuple(sorted(r)): inverse_mass_matrix}
grads_dict = {}
for site_names, inv_mass_matrix in inverse_mass_matrix.items():
r_flat = torch.cat([r[site_name].reshape(-1) for site_name in site_names])
if inv_mass_matrix.dim() == 1:
grads_dict[site_names] = inv_mass_matrix * r_flat
else:
grads_dict[site_names] = inv_mass_matrix.matmul(r_flat)
// unpacking
grads = {}
for site_names, grads_flat in grads_dict.items():
pos = 0
for site_name in site_names:


Agent Backend¶
This page documents using the Pool Manager Agent backend, and it’s accompanying service, designate-agent. This backend uses an extension of the DNS protocol itself to send management requests to the remote agent processes, where the requests will be actioned.
The traffic between designate-pool-manager, and designate-agent is both unauthenticated and unencrypted. Do not run this traffic over unsecured networks.
Designate Configuration¶
For each designate-agent running, add a target to the pools.yaml configuration file, using the following template:
targets: - type: agent description: Agent Server 1 # List out the designate-mdns servers from which Agent servers should # request zone transfers (AXFRs) from. masters: - host: <IP_ADDRESS> port: 5354 # Agent Configuration options, this should be this targets # designate-agent service's host and port. options: host: <IP_ADDRESS> port: 5358
Then update the designate pools database using the designate-manage pool
command - see designate-manage pool for further details on the
designate-manage pool
command:
$ designate-manage pool update


Get a list of possible routes between 2 places.
Previously known as "CMHgetDrivingSteps"
http://dev5:8888/routes?start=40.5761237,-74.002361&end=40.826396,-73.940125
The request method is GET so there is no body that needs to be described.
Only the basic headers are sent.
For example:
GET /routes?start=40.5761237,-74.002361&end=40.826396,-73.94012 HTTP/1.1 Host: dev5:8888
| start (required) |
latitude & longitude of the starting point of the route |
| end (required) |
latitude & longitude of the end point of the route |
http://dev5:8888/routes?start=40.5761237,-74.002361&end=40.826396,-73.940125
{ "status": "ok", "routes": [ [ "1. Head south on W 36th St toward Mermaid Ave ", "2. Take the 1st right onto Mermaid Ave ", "3. Turn right onto W 37th St ", "4. Take the 1st right onto Neptune Ave ", "5. Turn left onto Cropsey Ave ", "6. Turn left onto Bay 50th St ", "7. Take the ramp onto Belt Pkwy ", "8. Merge onto I-278 E ", "9. Keep right to stay on I-278 E , follow signs for Bklyn Qns Expressway/Triboro Bridge ", "10. Take exit 28B to merge onto Brooklyn Bridge ", "11. Slight right onto the Franklin D. Roosevelt East River Drive N ramp", "12. Merge onto FDR Drive/Franklin D. Roosevelt East River Drive ", "13. Continue onto Harlem River Dr ", "14. Take exit 23 on the left for 8 Ave toward W 155 St ", "15. Turn left onto Frederick Douglass Blvd ", "16. Turn right onto W 151st st ", "17. Turn left onto Bradhurst Ave ", "18. Take the 1st left onto W 150th St . Destination will be on the left." ], [ "1. Head south on W 36th St toward Mermaid Ave ", "2. Take the 1st right onto Mermaid Ave ", "3. Turn right onto W 37th St ", "4. Take the 1st right onto Neptune Ave ", "5. Turn left onto Cropsey Ave ", "6. Turn left onto Bay 50th St ", "7. Take the ramp onto Belt Pkwy ", "8. Merge onto I-278 E ", "9. Keep right to stay on I-278 E , follow signs for Bklyn Qns Expressway/Triboro Bridge ", "10. Keep left to stay on I-278 E , follow signs for Interstate 278 E/Triboro Br/Bronx ", "11. Keep left at the fork, follow signs for I-278/Triboro Bridge and merge onto I-278 E . Partial toll road.", "12. Take exit 47 on the left for Interstate 87 N/Major Deegan Expressway toward Albany ", "13. Merge onto I-87 N ", "14. Take exit 4 for 149 St E toward 145 St Bridge ", "15. Turn left onto 145th St Bridge/E 149th St . Continue to follow 145th St Bridge.", "16. Continue onto W 145th St ", "17. Turn right onto Bradhurst Ave ", "18. Turn right onto W 150th St . Destination will be on the right." ], [ "1. Head south on W 36th St toward Mermaid Ave ", "2. Take the 1st right onto Mermaid Ave ", "3. Turn right onto W 37th St ", "4. Take the 1st right onto Neptune Ave ", "5. Turn left onto Cropsey Ave ", "6. Turn left onto Bay 50th St ", "7. Take the ramp onto Belt Pkwy ", "8. Merge onto I-278 E ", "9. Keep left to continue on Hugh L. Carey Tunnel , follow signs for Battery Tunnel/Manhattan . Toll road.", "10. Take the exit on the left toward New York 9A N . Partial toll road.", "11. Turn right onto New York 9A N/West St . Continue to follow New York 9A N.", "12. Take the exit toward 125 St ", "13. Turn right onto St Clair Pl ", "14. Continue onto W 125th St ", "15. Turn left onto Broadway ", "16. Turn right onto W 145th St ", "17. Turn left onto Bradhurst Ave ", "18. Turn right onto W 150th St . Destination will be on the right." ] ] }


Data Demo REST API Service
GET /data to see all the data.
GET /data?category=cloud to see all of the data in the 'cloud' category.
GET /data/{id} retrieves a data from the DB using an ID.
PUT /data/{id} updates a data using an ID.
DELETE /data/{id} removes a data from the DB using an ID.
POST /data creates an new data.
Example Data:
{
"name": "virtualization",
"category": "cloud"
}
Try it now:
|


--- layout: default title: "Fine Fellows" excerpt: "A tribute to all the fine fellows that helped make Scally what it is" exclude_from_nav: true section: 5 ---
Coming soon.


Welcome to apipkg!¶
With apipkg you can control the exported namespace of a
python package and greatly reduce the number of imports for your users.
It is a small pure python module that works on virtually all Python
versions, including CPython2.3 to Python3.1, Jython and PyPy. It co-operates
well with Python’s help()
system, custom importers (PEP302) and common
command line completion tools.
Usage is very simple: you can require ‘apipkg’ as a dependency or you can copy paste the <200 Lines of code into your project.
Tutorial example¶
Here is a simple mypkg
package that specifies one namespace
and exports two objects imported from different modules:
# mypkg/__init__.py
import apipkg
apipkg.initpkg(__name__, {
'path': {
'Class1': "_mypkg.somemodule:Class1",
'clsattr': "_mypkg.othermodule:Class2.attr",
}
}
The package is initialized with a dictionary as namespace.

The _mypkg
is not special - it’s a completely
regular python package.
Namespace dictionaries contain name: value
mappings
where the value may be another namespace dictionary or
a string specifying an import location. On accessing
an namespace attribute an import will be performed:
>>> import mypkg
>>> mypkg.path
<ApiModule 'mypkg.path'>
>>> mypkg.path.Class1 # '_mypkg.somemodule' gets imported now
<class _mypkg.somemodule.Class1 at 0xb7d428fc>
>>> mypkg.path.clsattr # '_mypkg.othermodule' gets imported now
4 # the value of _mypkg.othermodule.Class2.attr
The mypkg.path
namespace and its two entries are
loaded when they are accessed. This means:
lazy loading - only what is actually needed is ever loaded
only the root “mypkg” ever needs to be imported to get access to the complete functionality.
the underlying modules are also accessible, for example:
from mypkg.sub import Class1
Including apipkg in your package¶
If you don’t want to add an apipkg
dependency to your package you
can copy the apipkg.py file somewhere to your own package,
for example _mypkg/apipkg.py
in the above example. You
then import the initpkg
function from that new place and
are good to go.
Feedback?¶
If you have questions you are welcome to
join the #pylib channel on irc.freenode.net
subscribe to the http://codespeak.net/mailman/listinfo/py-dev list.
create an issue on http://bitbucket.org/hpk42/apipkg/issues
have fun, holger krekel


WINTER SPECIAL!
Book a 30 min Laser Renew session and receive a free 30 min sauna blanket treatment!
Tre Donne Estate,
Sir Lowry's Pass,
Somerset West
Cell:<PHONE_NUMBER>
Whatsapp:<PHONE_NUMBER>
Book a 30 min Laser Renew session and receive a free 30 min sauna blanket treatment!


Tracker Start
| Host | |
| Tracking Code | |
| User | |
| Pass | |
| UserToken |
authToken =
playerId =
session =
actor =
| Verb | |
| Object Type | |
| Object ID |
Result
| Name | Value | Send? | Name | Value | Send? |
|---|---|---|---|---|---|
| Score | Success | ||||
| Response | Completion | ||||
| Extension Str | Value | ||||
| Extension Int | Value2 |
| Host | |
| Tracking Code | |
| User | |
| Pass | |
| UserToken |
authToken =
playerId =
session =
actor =
| Verb | |
| Object Type | |
| Object ID |
| Name | Value | Send? | Name | Value | Send? |
|---|---|---|---|---|---|
| Score | Success | ||||
| Response | Completion | ||||
| Extension Str | Value | ||||
| Extension Int | Value2 |


We enhance bitcoin!
- utilize B2C e-tailers
- disintermediate visionary e-services
- enable back-end infrastructures
- visualize plug-and-play ROI
- repurpose synergistic users
- productize innovative platforms
- facilitate intuitive web services
- whiteboard value-added networks
- transition sexy interfaces
- expedite dynamic web-readiness
- productize intuitive infrastructures
- synthesize strategic infomediaries
- facilitate turn-key portals
- expedite turn-key e-services
- integrate 24/365 markets


{% for department in departments %} {{ department.name }} {{ department.description }} {% empty %}
{{ department.description }}


Step 1: Run the Python REPL and verify you have Python 3.6 or higher.
On macOS and Linux
$ python3
Python 3.8.3 (default, May 27 2020, 20:54:22)
[Clang 11.0.3 (clang-1<IP_ADDRESS>)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
On Windows
# Ensure the right version of Python
# Should be 3.6 or higher
C:\project\> python -V
Python 3.8.3
C:\project\> python
Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:37:02) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>


{% extends "base.html" %} {% block content %}
Click this button to increase the counter by 1. then find out what number you touched.
Whats my number?This template will help us count the number times this button on top is clicked.

In the css folder I've added the code for a sticky footer!. Take a look on the custom.css file for details.


Eswatini next to suspend South African animal imports after foot and mouth outbreak
MBABANE: ESwatini has suspended animal imports from neighboring South Africa for a second time this year following another outbreak of foot and mouth disease, the mountain kingdom's agricultural ministry said on Tuesday.
In January, eSwatini, formerly Swaziland, joined Botswana and Zimbabwe in suspending meat imports from South Africa over an outbreak of the highly contagious viral disease that affects cloven-footed animals - those with divided hooves such as cows, pigs and sheep.
Zimbabwe reactivated its ban last week.
Principal Secretary in eSwatini's Ministry of Agriculture, Bongani Masuku, said government wanted to protect its citizens from the disease and that it would only lift the ban once the situation had improved.
South Africa's live animal exports to eSwatini totalled 458.9 million rand (US$31 million) between January and September, according to Statistics SA.
South Africa's Department of Agriculture, Forestry and Fisheries confirmed the outbreak of foot and mouth disease in the northern Limpopo province last Wednesday, saying it had placed one farm in the area under quarantine to prevent the disease from spreading.
(Reporting by Lunga Masuku; Writing by Mfuneko Toyana; Editing by Alex Richardson)


Apache C++ Standard Library
Reference Guide
Top
|
Member Index
|
No Frames
Class Indexes:
Alphabetical
or
Functional Groups


-
Define the maximum number of history entries to be saved.
-
Define the maximum number of history entries to be showed in the popup.
-
WARNING: Inside this TextArea you can mess up with your the application data. Any careless modification can cause your data to be wiped out. Use CTRL+Z to recover your data from accidental erases. If you lose your data, we won't be able to recover it.
Copy, edit and paste your saved data directly in JSON format. If the data is invalid the frame will turn red. To validate the format use a JSON validator.


Tagli
Set up your new account today.
{% if error %}
Error:
{{ error }}
{% endif %}
Your name
Email address
Password
Sign in to my account
Already have an account?
Sign in here