502 Bad Gateway
The application you are looking for is not running. The good news: the mDNS proxy is up and running properly. Verify that the application is properly configured and running.
When you can't fix your situation ask for help on Slack.
The application you are looking for is not running. The good news: the mDNS proxy is up and running properly. Verify that the application is properly configured and running.
When you can't fix your situation ask for help on Slack.


Humpty Dumpty stumbles upon a great wall
What should he do next?
Climb the Wall
Ignore the Wall and Skip Home


The Idea
Each time junior doctors rotate terms, it can feel like starting from scratch. There is a lot of experiential learning that gets lost.
Presently, information is relayed through multiple mechanisms including face-to-face orientation, variations of a local JMO handbook, online modules and official documentations such as the HETI Term Descriptions. Issues encountered with these mechanisms include difficulties in retrieving information, lack of regular updates, lack of relevancy to actual JMO roles and convoluted review processes of information.
A wiki is an information database which is useful as it allows for end-user contributions, therefore making content up-to-date and relevant to the user group. A wiki database also allows for inter-referencing, which then allows the user to retrieve what information the user needs. An integrated search function will also allow the JMO to efficiently access information relevant to question at hand.
The Nepean Technology Group in 2015 attempted to craft a Wiki for Nepean JMOs
Following a review of the number of wiki platforms out there, we chose to craft our project on wikispaces due to their simplicity of use and ability to afford password protection.
A dedicated team of 4 JMOs gathered term information from colleagues who had recently completed each rotation. Over 30 JMOs and 5 Registrars agreed to draft term guides for our project.
We also developed a guide for consults, a Nepean hospital contact list, JMO Committee information and integrated our JMO Handbook into the wiki.
The wiki was not hosted by the local health district however we received permission from the hospital's IT department to proceed.
Implementation
With permission from the Medical Education Officer, we were able to secure three 30 minute group sessions with the new JMO cohort. Along with a presentation, we had also promoted the wiki with posters, stickers with login information stuck to name badges, and strong face to face pitching from those in the development team.
Within the first few days of release, we had received between 500-800 page views. Since then we had a steady flow of between 50-250 views daily.
Future developments
At this stage we are in the process of promoting the use of the wiki so that senior clinicians will begin editing and developing the JMO information further. We have also gained approval from the Clinical School to spread its use to Medical Students, which will benefit the Medical Students in understanding the role of the JMO as well as act to enforce behavioural change in the JMO to use the wiki.


summerData.Rd
Recorder metrics can be biased if there are annual breaks in data collection. In these cases it is better to ensure that only data in the recording period (typically summer), is included. This function is an objective way to identify the recording period.
summerData(input_data, probs = c(0.025, 0.975), date_col = "date_start")
| input_data | the data.frame of recording information |
|---|---|
| probs | A vector of two proportions giving the positions of the start and end of summer. Default value of 0.025 and 0.975 mean that the central 95 percent of day in any year is classed as the recording period. |
| date_col | the name of the column that contains the date. This must be formatted as a date |
Only data identified as from the the primary recording period (e.g. summer) is returned. Three additional columns are returned.
Jday
- The day of the year as a numeric value, the first day of the year being 1, the second 2 and so on
year
- The year of the record in the format YYYY
summer
- Logical, does this record fall in the summer period (i.e. the annual period of heightened recording)
The returned object has an attribute cutoffs
which details the days (Jday
) used as the first and last days of summer in each year.
# NOT RUN { # load example data head(cit_sci_data) # Subset this data to summer periods only SD <- summerData(input_data = cit_sci_data, probs = c(0.025, 0.975), date_col = 'date') head(SD) # Data not in the summer period is removed nrow(cit_sci_data) nrow(SD) # The cutoffs used to define summer are also returned attr(SD, which = 'cutoffs') # }


Download and Install NetBeans 12 for Windows
1) install OpenJDK11 on your computer:
- Click on this link to the file installJDK11.zip and choose "Save File..." to download the file to your computer. This may take a few moments; it is a rather large file.
- Use File Explorer to browse to the folder where the installJdk11.zip file was saved (it's most likely your Downloads folder). Right-click on the filename in File Explorer and choose "Extract All" from the pop-up window.
In the dialog that appears, make sure the checkbox is checked to show extracted files when complete, then click the Extract button. This will create a new folder named installJdk11.
- A new File Explorer window should be open showing the contents of the installJdk11 folder created in the previous step; if not, browse to that folder using File Explorer. Double-click on the file named installJDK11.bat. If a security warning appears, you can choose to proceed -- this is a safe operation. After a few seconds, the AdoptOpenJDK with Hotspot <IP_ADDRESS> (x64) Setup Wizard will open on your computer. Click the Next button to move to the next step.
- Check the box indicating that you accept the terms of the License Agreement, then click the Next button.
- Don't make any changes in this step; simply click the Next button.
- You will now have reached the last step in the wizard. Click Install. If prompted, say Yes to allow AdoptOpenJDK to make changes to your computer. The install process should proceed, and you will see a message that says the process has completed. Click Finish to close the Setup Wizard.
2) install Apache NetBeans 12 on your computer:
- Click on this link to the file installNetBeans12.zip and choose "Save File..." to download the file to your computer. Be patient, this file is a little larger than the last one....
- Use File Explorer to browse to the folder where the installNetBeans12.zip file was saved (it's most likely your Downloads folder). Right-click on the filename in File Explorer and choose "Extract All" from the pop-up window.
In the dialog that appears, make sure the checkbox is checked to show extracted files when complete, then click the Extract button. This will create a new folder named installNetBeans12.zip.
- A new File Explorer window should be open showing the contents of the installNetBeans12 folder created in the previous step; if not, browse to that folder using File Explorer. Double-click on the file named installNetBeans12.bat. If a security warning appears, you can choose to proceed -- this is a safe operation. If prompted, say Yes to allow Apache NetBeans to make changes to your computer. After some seconds, the Apache NetBeans IDE 12.0 Installer will open on your computer. Click the Next button to move to the next step.
- Check the box indicating that you accept the terms of the License Agreement, then click the Next button.
- You don't need to make any changes in this step; simply click the Next button.
- You will now have reached the Summary step in the wizard. Click Install. You can watch the progress of the installation on screen if you would like; it takes a little while, so be patient. When the process has completed, click Finish to close the Setup Wizard.
3) verify that Apache NetBeans will launch on your computer:
- The NetBeans installer adds Apache Netbeans IDE 12.0 to the list of apps that you can launch, and it also creates a desktop icon that you can use to start the IDE. Use either of those approaches to launch NetBeans for the first time.
- The first time you launch the program, there is some addtional set-up that needs to happen. When the Apache NetBeans IDE 12.0 window appears, a NetBeans IDE Installer dialog box will pop up on screen:
Click Next, check the box saying that you accept the terms in all of the license agreements, and click Install. When the install process has completed, click Finish.
- The NetBeans program window should look something like this:
Get Stuck?
Contact the IT Help Desk if you have any questions. On campus phone support x4357, off campus phone support<PHONE_NUMBER>, or email the helpdesk at helpdesk@mountuinon.edu


Open
Axis Lines:
Labels:
Denominators:
Denominator Labels:
Grid:
X-Gradient:
Y-Gradient:
Z-Gradient:
Camera Selection
Freeroam
XZ View
XY View
YZ View


Looks like the quantum state of the page you're looking for has collapsed. You may have followed a broken link or entered a URL that doesn't exist on this site.
{{ define "main"}}
Looks like the quantum state of the page you're looking for has collapsed. You may have followed a broken link or entered a URL that doesn't exist on this site.


CRUD Document Operations using the C (libcouchbase) SDK with Couchbase Server
Command Structure
Operations in the C SDK are scheduled using command structures, all following a similar structure to lcb_CMDBASE
.
The command structure contains the document ID for the specific item and additional per-command data, as required. The document ID indicates which document should be accessed and is necessary for any data access operation.
Command structures only serve as a way to pass parameters to scheduling operations and are therefore able to live on the stack, and do not need to be allocated using dynamic memory allocation functions such as malloc and free .
|
All fields in lcb_CMDBASE
are overlayed in other command structure types, so that any command type (e.g.
lcb_CMDSTORE
) can be seen as a subclass).
This is done by specifying the fields of lcb_CMDBASE
as a macro (LCB_CMD_BASE
) and expanding the macro at the beginning of each command.
The contents of lcb_CMDBASE
include:
-
key
: Complex structure containing the ID of the document being accessed. Should be set usingLCB_CMD_SET_KEY
-
exptime
: The new expiration time for the document to be set with this operation -
cas
: Check-and-set value used with optimistic locking
Document IDs may be set on command structures using the LCB_CMD_SET_KEY()
macro:
lcb_CMDGET gcmd = { 0 }
LCB_CMD_SET_KEY(&gcmd, "hello", 5);
// ...
The macro receives the buffer and length of the document ID and sets the appropriate field in the command structure.
| The contents of the buffer for the document ID are copied into the library when the operation is scheduled. |
The contents of documents in Couchbase are typically JSON, as this format allows other SDKs as well as the query service to interact with the documents. The C SDK does not come with a JSON encoder; though many exist and vary in their features and performance.
Operation requests
All Key-Value operations follow a common pattern in the C SDK. Because the first step in using a database is actually populating it with data, performing operations will be demonstrated first through storing a document.
A document can be created using the lcb_store3()
function.
This function accepts an lcb_CMDSTORE
structure that contains the document ID and the value that should serve as the document itself, and the operation
which places various preconditions storing the document:
lcb_CMDSTORE scmd = { 0 };
LCB_CMD_SET_KEY(&scmd, "some_key", strlen("some_key"));
LCB_CMD_SET_VALUE(&scmd, "[1,2,3]", strlen("[1,2,3]");
scmd.operation = LCB_ADD;
lcb_store3(instance, NULL, &scmd);
lcb_wait(instance);
The above will store a JSON array using the document ID some_key
.
The lcb_store3()
function schedules the operation to be performed the next time the library performs I/O, which in this case is at the lcb_wait()
function.
The success or failure of an operation is only available within the callback.
Though lcb_store3() (or similar) returns a status code, the status code determines if the command was successfully scheduled, and not if the server successfully executed the command.
|
Operation results
All operations receive results in designated callbacks. The result contains the status of the operation and an optional pointer associating the request with a response. The result will also contain additional operation-specific operation such as values and subcodes.
Callbacks are installed using the lcb_install_callback3
, which is supplied with the type of operation and the callback to be invoked whenever a response for such an operation is received:
lcb_install_callback3(instance, LCB_CALLBACK_GET, get_handler);
lcb_install_callback3(instance, LCB_CALLBACK_STORE, store_handler);
The callback is passed a pointer to an lcb_RESPBASE
structure which represents the common in-memory layout of all Couchbase responses.
The response structure can be subclassed to an operation-specific type (for example, lcb_RESPGET
or lcb_RESPSTORE
) to obtain more information specific to the operation type.
Here is an example of handling a response for lcb_get3()
void get_handler(lcb_t instance, int cbtype, const lcb_RESPBASE *rb)
{
if (rb->rc != LCB_SUCCESS) {
printf("Error in getting response: %s\n", lcb_strerror(NULL, rb->rc));
} else {
const lcb_RESPGET *resp = (const lcb_RESPGET*)rb;
printf("Got value: %.*s\n", (int)resp->nvalue, resp->value);
}
}
User data in responses
In most cases, you will need a way to associate a response with user (application) data; this is necessary, for example, if you wish to actually make use of the value or status received in the response.
The SDK allows you to pass an application pointer in the request and read it in the response; this pointer is known as a cookie
and is opaque to the SDK and is thus never dereferenced by it; here’s an example of the above handler making use of a cookie
:
typedef struct {
const char *value;
size_t nvalue;
lcb_error_t status;
} GetInfo;
void get_handler(lcb_t instance, int cbtype, const lcb_RESPBASE *rb)
{
GetInfo *gi = rb->cookie;
gi->status = rb->rc;
if (rb->rc == LCB_SUCCESS) {
const lcb_RESPGET *resp = (const lcb_RESPGET*)rb;
gi->value = malloc(resp->nvalue);
gi->nvalue = resp->nvalue;
memcpy(gi->value, resp->value, resp->nvalue);
}
}
GetInfo* get_item(lcb_t instance, const char *key)
{
lcb_CMDGET gcmd = { 0 };
GetInfo *retval = calloc(1, sizeof *retval);
LCB_CMD_SET_KEY(&gcmd, key, strlen(key));
lcb_get3(instance, retval, &gcmd);
lcb_wait(instance);
return retval;
}
The cookie does not have any memory requirements.
It can be automatic memory, dynamic memory, or NULL , depending on application constraints.
|
| The SDK owns the memory of the response structure and all pointers it contains. Copy out any relevant fields (such as the value or status) if access to them are needed beyond the scope of the callback. |
Generic response handling
For many types of operations, simple, generic handling can suffice: this means simply checking whether the operation succeeded or failed:
void generic_handler(lcb_t instance, int cbtype, const lcb_RESPBASE *resp) {
printf("Operation %s: %s\n", lcb_strcbtype(cbtype), lcb_strerror(NULL, resp->rc);
if (resp->rc == LCB_SUCCESS) {
handle_success(cbtype, resp);
} else {
handle_failure(cbtype, resp);
}
}
The above example shows a callback function which prints the type and status operation to the screen and then invokes either the application-defined handle_success()
or handle_failure()
function depending on whether or not the operation succeeded.
The second argument to the callback, cbtype
, contains the actual LCB_CALLBACK_*
type being invoked, so that the same callback can be installed for multiple operation types; for example using the same callback for LCB_CALLBACK_STORE
and LCB_CALLBACK_REMOVE
.
You can install a default callback which may be invoked if no operation-specific callback has been installed:
lcb_install_callback3(instance, LCB_CALLBACK_DEFAULT, generic_handler);
lcb_install_callback3(instance, LCB_CALLBACK_GET, get_handler);
In the above block, the generic_handler
is installed as the default callback, and the get_handler
is the callback for lcb_get3()
operations: All operations except lcb_get3()
(LCB_CALLBACK_GET
) will be passed to the default callback.
Storing documents
| This describes full-document mutation functionality which alters the entire contents of the document. See sub-document mutations for when you only need to modify parts of a document. |
Documents can be stored using the lcb_store3
function, and populate it with the document ID (LCB_CMD_SET_KEY(&cmd, "key", strlen("key"));
), value (LCB_CMD_SET_VALUE(&cmd, "value", strlen("value"))
) and the operation
(cmd.operation = LCB_SET
).
The operation
dictates conditions (or lack thereof) which must be satisfied before the document may be stored.
Possible values include:
-
LCB_SET
: Unconditionally store the item, and don’t set any conditions. This option is also known as upsert. If an existing document exists with the same ID, it is overwritten with the contents (value) of the new operation. If no document exists with the same ID, it is created and set to the value of the new operation. -
LCB_ADD
: Only store the item if no other document exists with the given ID. If an existing document is precent with the same document ID then the operation will fail withLCB_KEY_EEXISTS
. -
LCB_REPLACE
: Only store the item if an existing document already exists with the same ID. In this case the existing document’s contents are replaced with the new contents. If no document already exists the operation will fail withLCB_KEY_ENOENT
-
LCB_APPEND
,LCB_PREPEND
: These options allow raw byte concatenation
You can also add concurrency control and document expiration when using lcb_store3()
You can install a callback to receive the status of lcb_store3
operations using lcb_install_callback3(instance, LCB_CALLBACK_STORE, store_handler)
.
| Fully-compilable and executable example: Storing documents using C SDK |
When a store operation is successful, you may check the operation’s durability.
In the C SDK this is done using the distinct lcb_endure3_ctxnew
:
void store_handler(lcb_t instance, int cbtype, const lcb_RESPBASE *resp) {
if (resp->rc != LCB_SUCCESS) {
return;
}
lcb_MULTICMD_CTX *ctx;
lcb_durability_opts_t opts = { 0 };
opts.version = 0;
opts.v.v0.persist_to = -1;
opts.v.v0.replicate_to = -1;
opts.v.v0.cap_max = 1;
lcb_error_t err_out;
mctx = lcb_endure3_ctxnew(instance, &opts, &err_out);
lcb_CMDENDURE dcmd = { 0 };
LCB_CMD_SET_KEY(&dcmd, resp->key, resp->nkey);
dcmd.cas = resp->cas;
mctx->addcmd(dcmd);
mctx->done(mctx, NULL);
}
Setting the persist_to
and replicate_to
fields to -1
and the cap_max
to a true value instructs the client to use the maximum-available durability
| Fully-compilable and executable example demonstrating durability requirements in the C SDK: https://github.com/couchbaselabs/devguide-examples/blob/server-4.5/c/durability.cc |
Retrieving Documents
| This describes the full-document retrieval functionality which retrieves the entire document. See sub-document retrievals for when you only need to retrieve parts of a document. |
Documents can be retrieved using the lcb_get3
function.
The server will attempt to fetch the document if it exists:
lcb_CMDGET gcmd = { 0 };
LCB_CMD_SET_KEY(&gcmd, "key", 3);
lcb_get3(instance, NULL, &gcmd);
lcb_wait(instance);
| Fully-compilable and executable example: https://github.com/couchbaselabs/devguide-examples/blob/server-4.5/c/retrieving.cc |
The actual contents of the document will be available in the response structure, which is passed to the callback you installed via lcb_install_callback3(instance, LCB_CALLBACK_GET, get_handler)
:
void get_handler(lcb_t instance, int cbtype, const lcb_RESPBASE *rb)
{
const lcb_RESPGET *resp = (const lcb_RESPGET *)rb;
if (resp->rc == LCB_SUCCESS) {
printf("Got value: %.*s\n", (int)resp->nvalue, resp->value));
}
}
The value
field is a buffer of bytes representing the contents of the document.
This can be a JSON string or non-JSON data (see non-JSON documents for more information on how to distinguish between them).
The value
field actually points directly into the library’s network buffers.
When retrieving a document, you can also specify the document expiration (lcb_CMDGET::exptime
) and settings for pessimistic locking (lcb_CMDGET::lock
).
Refer to the API documentation for specific usage details.
|
The memory of the value is owned by the library. If the contents of the value are required outside of the callback, ensure that it is copied out. You may also wish to decode the value itself within the callback, eliminating the need of copying the original value. |
Removing documents
| This describes the functionality of removing an entire document. See sub-document deletion on removing only parts of a document. |
Documents can be removed manually by using the lcb_remove3
function.
An lcb_CMDREMOVE
structure should be populated with the ID of the document you wish to remove.
The command is passed to the lcb_remove3()
function which schedules the document to be removed.
When the document has been removed (or a negative reply from the server is received), the callback installed using lcb_install_callback3(instance, LCB_CALLBACK_REMOVE, cb)
is invoked:
lcb_CMDREMOVE cmd = { 0 };
LCB_CMD_SET_KEY(&cmd, "key", 3);
lcb_remove3(instance, NULL, &cmd);
lcb_wait(instance);
void remove_handler(lcb_t instance, int cbtype, const lcb_RESPBASE *rb) {
if (rb->rc == LCB_SUCCESS) {
printf("Removed successfully");
} else if (rb->rc == LCB_KEY_ENOENT) {
printf("Item did not exist!");
} else {
printf("Other error: %.*s\n", lcb_strerror(NULL, rb->rc));
}
}
lcb_install_callback3(instance, LCB_CALLBACK_REMOVE, remove_handler);
Note that in the above example the simple "base" lcb_RESPBASE
is utilized as we do not use any special response fields specific to the removal operation.
Modifying expiration
lcb_CMDTOUCH cmd = { 0 }; LCB_CMD_SET_KEY(&cmd, "key", 3); cmd.exptime = 300; lcb_touch3(instance, NULL, &cmd); lcb_wait(instance);
| See a fully compilable and executable example in the C SDK demonstrating expiration semantics and functionality: https://github.com/couchbaselabs/devguide-examples/blob/server-4.5/c/expiration.cc |
The expiry value is specified as a relative offset (in seconds) from the time the server receives the operation.
The expiry value can also be specified as an absolute Unix timestamp.
The server will assume that any value larger than 2592000 (i.e.
one month, in seconds) is a Unix timestamp and anything lower is a relative offset.
|
lcb_install_callback3(instance, LCB_CALLBACK_TOUCH, touch_handler);
You can also use the generic_handler
defined above.
There is no special response data for lcb_touch3
.
Expiration can also be set with lcb_get3
, sometimes known as a get-and-touch:
lcb_CMDGET cmd = { 0 };
LCB_CMD_SET_KEY(&cmd, "key", 3);
cmd.exptime = 300;
lcb_get3(instance, NULL, &cmd);
lcb_wait(instance);
And with lcb_store3()
lcb_CMDSTORE cmd = { 0 };
LCB_CMD_SET_KEY(&cmd, "key", 3);
LCB_CMD_SET_VALUE(&cmd, "value", 5);
cmd.exptime = 300;
cmd.operation = LCB_SET;
lcb_wait(instance);
|
When using
Ensure that the desired expiration time is always set in the lcb_store3() the server will clear the expiry value if none is specified.lcb_CMDSTORE command when the mode is one of LCB_SET , LCB_ADD , or LCB_REPLACE .
|
Non-JSON Documents
At the SDK and API level, there is no distinction between JSON and non-JSON documents. For the SDK, any sequence of bytes is a valid document.
If you wish to interact with other SDKs and are using non-JSON document formats, refer to the Flags section.
You will need to set the appropriate format flags in the lcb_CMDSTORE::flags
field in order for other SDK implementations to decode the data:
lcb_CMDSTORE cmd = { 0 };
const uint8_t bb[] = { 0x34, 0x10, 0x00, 0x94, 0xf5 };
LCB_CMD_SET_KEY(&cmd, "id", 2);
LCB_CMD_SET_VALUE(&cmd, bb, sizeof bb);
cmd.operation = LCB_SET;
cmd.flags = 0x3000000 /* FMT_RAW */
Likewise, when reading data stored by other SDKs, you can check the lcb_RESPGET::itmflags
to determine the proper value format:
void decode_data(const lcb_RESPGET *resp) {
uint32_t flags = resp->itmflags >> 0x24;
if (flags == 0x02) {
decode_json(resp->value, resp->nvalue);
} else if (flags == 0x04) {
decode_utf8(resp->value, resp->nvalue);
} else if (flags == 0x03) {
decode_raw(resp->value, resp->nvalue);
} else if (flags == 0x01) {
printf("Cannot decode foreign SDK format!\n");
} else {
printf("Unknown format: 0x%x\n", resp->itmflags);
}
}
Batching Operations
You can schedule many operations at once with the C SDK.
When the SDK will enter the I/O-wait phase (lcb_wait
or implicit event loop return) all the scheduled operations will be efficiently submitted to the server with as little latency and fragmentation as possible.
Scheduling multiple operations with the C SDK typically requires no special syntax. Simply perform multiple scheduling calls
std::map<std::string,std::string> to_store;
lcb_CMDSTORE cmd = { 0 };
scmd.operation = LCB_SET;
for (auto it = to_store.begin(); it != to_store.end(); ++it) {
LCB_CMD_SET_KEY(&cmd, it->first.c_str(), it->first.size());
LCB_CMD_SET_VALUE(&cmd, it->second.c_str(), it->second.size());
lcb_store3(instance, NULL, &cmd);
}
lcb_wait(instance);
| See a fully compilable and executable example showing how operations may be batched in the C SDK: https://github.com/couchbaselabs/devguide-examples/blob/server-4.5/c/bulk-get.cc and https://github.com/couchbaselabs/devguide-examples/blob/server-4.5/c/bulk-store.cc |
You can schedule different types of operations as well, for example an lcb_get3
followed by an lcb_store3
.
Some scheduling commands return an lcb_MULTICMD_CTX
.
This is a special context used to batch multiple logical operations into a single protocol-level packet.
For these operations the packet format allows for multiple operations, and thus placing multiple operations in a single protocol packet is more efficient bandwidth-wise than sending one packet per operation.
Note that this is the exception and that most commands do not have any special multi packet format.


Module stream
stream classes that respond to :nextval() and :reset()
Class PriorityQ
Priority queue
-
PriorityQ:new (o)
-
Creates a PriorityQ
Parameters:
- o
table of initial values
Returns:
PriorityQ
-
PriorityQ:put (time, item, index)
-
put something in queue items get ordered by time and index after
Parameters:
-
PriorityQ:pop ()
-
pops the first item
Returns:
-
time
-
item
-
index
-
PriorityQ:topPrio ()
-
gets first item time
Class Stream
Has metatable for mul add sub div
-
Stream:new (o)
-
Creates a Stream
Parameters:
- o
provides initial values
Returns:
Stream
-
Stream:reset ()
-
Puts Stream in the initial position
-
Stream:rep (n)
-
Set the number of repetitions of stream
Parameters:
Returns:
Stream self
-
Stream:nextval (e)
-
Recursive function for streams inside streams
Parameters:
Returns:
next value in stream
Class FuncStream
Derived from Stream. Custom function as stream provider
-
FuncStream:FS (v, r, ...)
-
Returns FuncStream with function v
Parameters:
- v
:the function
- r
integer number of repetitions
- ...
optional arguments to function
Returns:
FuncStream
-
FuncStream:WRS (a, b, r)
-
Returns FuncStream performing weigthed choices
Parameters:
- a
list to choose from.
- b
list of weigths
- r
number of repetitions
Returns:
#FuncStream
Usage:
st = FS(function() return 3 end,-1)
print(st:nextval())
-
FuncStream:RS (a, r)
-
Returns FuncStream performing choices from list.
Parameters:
- a
list to choose from.
- r
number of repetitions
Returns:
FuncStream
-
FuncStream:RSinf (a)
-
Returns FuncStream performing choices from list infinite times.
Parameters:
Returns:
FuncStream
Class ListStream
Stream that iterates over a list
-
ListStream:merge (t)
-
For lists of items responding to merge (PS for example)
Parameters:
- t
key-val table to be merged with items in ListStream
-
ListStream:LS (t, r)
-
Creates a ListStream from t with r repetitions
Parameters:
- t
list of events to provide in a infinite loop on each call to next
- r
number of repetitions of list t until ending stream
Returns:
ListStream
See also:
-
ListStream:LOOP (t)
-
Creates a ListStream from t with infinite repetitions
Parameters:
- t
list of events to provide in a infinite loop on each call to next
Returns:
ListStream
See also:
-
ListStream.ParalelStream
-
paralel stream
-
ListStream.MergeStream
-
Merge stream
-
ListStream.PclumpSt
-
Pclump
-
ListStream.StreamTuple
-
StreamTuple
-
ListStream:Quant (q, pat)
-
Quantizes numbers provided by a stream to multiples of q
Parameters:
- q
length of quantization
- pat
a stream of numbers
Returns:
Stream


1. Markup languages
A markup language is a computer language that uses tags to define elements within a document.
Markup languages are used to annotate a document in a way that is syntactically distinguishable from the text,
and can assign semantic meaning to the text.
Types of markup languages
- Presentational markup - used by traditional word-processing systems,
implemented as binary codes embedded within document text (e.g. Microsoft Word).
- Procedural markup - markup is embedded in text,
which then provides instructions for programs to process the text (e.g. TeX).
- Descriptive (logical) markup - markup is used to label parts of the document
rather than to provide specific instructions as to how they should be processed (e.g. HTML).
1.2. HTML
HyperText Markup Language (HTML) is the standard markup language for documents designed
to be displayed in a web browser.
HTML consists of a series of elements, which you use to enclose, wrap,
or mark up different parts of the content to make it appear or act a certain way.
1.2.1. How the browser displays HTML
- The browser parses the HTML to construct the DOM tree.
- The DOM tree is used to construct a render tree.
- A layout is generated from the render tree.
- The render tree is painted to the screen according to the generated layout.
1.4. Definitions
- HTML
- HyperText Markup Language
- DOM
- Document Object Model


Class: ActionDispatch::Journey::Router::Utils::UriEncoder
Do not use. This class is for internal use only.
| Relationships & Source Files | |
| Inherits: | Object |
| Defined in: | actionpack/lib/action_dispatch/journey/router/utils.rb |
Overview
URI path and fragment escaping tools.ietf.org/html/rfc3986
Constant Summary
-
ALPHA =
# File 'actionpack/lib/action_dispatch/journey/router/utils.rb', line 40"a-zA-Z"
-
DEC2HEX =
# File 'actionpack/lib/action_dispatch/journey/router/utils.rb', line 38(0..255).map { |i| (ENCODE % i).force_encoding(US_ASCII) }
-
DIGIT =
# File 'actionpack/lib/action_dispatch/journey/router/utils.rb', line 41"0-9"
-
EMPTY =
# File 'actionpack/lib/action_dispatch/journey/router/utils.rb', line 37(+"").force_encoding(US_ASCII).freeze
-
ENCODE =
# File 'actionpack/lib/action_dispatch/journey/router/utils.rb', line 34"%%%02X"
-
ESCAPED =
# File 'actionpack/lib/action_dispatch/journey/router/utils.rb', line 45/%[a-zA-Z0-9]{2}/.freeze
-
FRAGMENT =
# File 'actionpack/lib/action_dispatch/journey/router/utils.rb', line 47/[^#{UNRESERVED}#{SUB_DELIMS}:@\/?]/.freeze
-
PATH =
# File 'actionpack/lib/action_dispatch/journey/router/utils.rb', line<EMAIL_ADDRESS>-
SEGMENT =
# File 'actionpack/lib/action_dispatch/journey/router/utils.rb', line<EMAIL_ADDRESS>-
SUB_DELIMS =
# File 'actionpack/lib/action_dispatch/journey/router/utils.rb', line 43"!\\$&'\\(\\)\\*\\+,;="
-
UNRESERVED =
# File 'actionpack/lib/action_dispatch/journey/router/utils.rb', line 42"#{ALPHA}#{DIGIT}\\-\\._~"
-
US_ASCII =
# File 'actionpack/lib/action_dispatch/journey/router/utils.rb', line 35Encoding::US_ASCII
-
UTF_8 =
# File 'actionpack/lib/action_dispatch/journey/router/utils.rb', line 36Encoding::UTF_8
Instance Method Summary
Instance Method Details
#escape(component, pattern) (private)
[ GitHub ]# File 'actionpack/lib/action_dispatch/journey/router/utils.rb', line 69
def escape(component, pattern) component.gsub(pattern) { |unsafe| percent_encode(unsafe) }.force_encoding(US_ASCII) end


|
Name
|
Type
|
Description
|
| componentLimitHealth | xsd:string |
The host component usage health status. The status will be red if the used
components exceeds 90% of total component number, the status will be yellow
if it exceeds 75% of total components and it will be green if it's less than
75% of total component.
|
| diskFreeSpaceHealth | xsd:string |
The disk free space health status. The status will be red if the used disk space is
larger than 90% of total space, the status will be yellow if it's larger than 70% of
total space and it will be green if it's less than 70% of total space.
|
| freeComponents | xsd:int |
The number of remaining vSAN components can be created in the host.
It equals to the maximum supported components minus the used components.
|
| hostname | xsd:string |
The host name
|
| issueFound | xsd:boolean |
Whether any issue found in the vSAN limit health check.
|
| lowestFreeDiskSpacePct | xsd:int |
The lowest free disk space percentage among all of disks in the host.
This value will be 100 if there is no disk found in the host.
|
| maxComponents | xsd:int |
The maximum number of supported vSAN components in the host.
|
| rcFreeReservationHealth | xsd:string |
The read cache reservation health status. The status will be red if the
reserved read cache space is larger than 90% of total space, the status
will be yellow if it's larger than 80% of total space and it will be green
if it's less than 80% of total space.
|
| reservedRcSizeB | xsd:long |
The reserved read cache size in byte.
|
| totalDiskSpaceB | xsd:long |
The total vSAN capacity in byte. It's the total of physical space which can
be used for writing data including any of user data, metadata and the
overhead data.
|
| totalRcSizeB | xsd:long |
The total read cache size in byte.
|
| usedDiskSpaceB | xsd:long |
The total used disk space in byte, which is the larger value between reserved
capacity and the data physically written into the disk.
|
|
Properties inherited from DynamicData |
| None |


Ploror688.github.io
The College of Lake County offers many courses in creative writing: fiction, creative nonfiction, poetry, and scriptwriting. These courses offer opportunities This course encourages students to experiment with various forms of creative writing as each discovers his or her individual voice and develops a personal writing style. Folsom Lake College Homepage Folsom Lake College 1<PHONE_NUMBER> 10 College Parkway, Folsom, CA 95630. Seattle writing gigs - craigslist. Welcome to Sierra Nevada College. Located on the shores of Lake Tahoe, SNC is one of the top colleges in Nevada. Learn more about degree programs.
Creative writing lake description. Recent and present graduate students hed numerous books of criticism, literary history, biography, fiction, and more information. Resident Programs. For a number of years, LeadingAge Oregon has sponsored a variety of programs to engage members' residents in creative activities and foster. Creative writing lake description - Proofreading and proofediting aid from top specialists. Instead of concerning about term paper writing get the needed assistance. Creative Writing College of Lake County. The Writing Prompt: Take an event from history and write a fictional account describing a conspiracy theory about what "REALLY" happened. Or, if you prefer, write. Las Vegas Creative Writing Class (Las Vegas, NV) Meetup.
Pursue your creative writing dreams with novelist Pearl. Featured Workshops Memoir: From Writing to Binding. Dec. 8 (Sat), 1-4 p.m. Learn the basics of memoir writing and create a beautiful ribbon-bound Just another BSD Sites site . EMS Newsletter October 19, 2018. October 19th 2018 Newsletter Dear EMS Families, Today our faculty spent our in-service Edmunds Middle School – Just another BSD Sites.
It’s been five years since I first wrote about this topic and going swimming with your kids, but I continue to receive emails and comments about. Essay about Creative Writing- the Lake - 800 Words. Writing Topics Thoughtful Learning. Upcoming Writers Conferences Writing Workshops events. Spearfish Lake Tales is a site for FREE online mainstream novels by Wes Boyd. There are many completed novels, and a new serial novel is always being updated twice. Association of Writers Writing Programs. Creative Writing Describing A Lake ― Creative writing. One college, 25,000 possibilities. As a Columbia College student, you're connected to 25,000 other people, all striving to change their lives each and every.
Favorite this post Oct 29 Looking for blogger/website owner map hide this posting restore restore this posting. favorite this post Oct 28 Investment Put on that Swimsuit - The Mom Creative. Resident Programs - LeadingAge Oregon.
Hi. I am Maxwell Alexander Drake and I am an award-winning Sci-Fi/Fantasy author. Join me at the Centennial Hills Library for my free writing classes hosted
Write and publish that book: Lake Tahoe August 4 - 10, 2019. This one-week retreat gifts you the time, space, and instruction needed to write and publish
Creative writing describing a river. Writing a few others traveled this way now, seen only as shiny writings far creative writing lesson plans Our Community. Creative World School at Oakstead is located a mile north of 54 Hwy on Oakstead Blvd. at 3490 Oakstead Blvd, Land O Lakes, FL 34638. Wordle - Beautiful Word Clouds.
AWP provides community, opportunities, ideas, news, and advocacy for writers and teachers of writing. 63 Fun Creative Writing Prompts. 12 Remarkable Comments. Welcome to the creative writing prompts page! This is going to be so much fun, and all while you improve. Creative Writing Prompt: Conspiracy! Writer's Digest. Wordle is a toy for generating “word clouds” from text that you provide. The clouds give greater prominence to words that appear more frequently in the source.
Sierra Nevada College at Lake Tahoe Lake Tahoe, Nevada. Free Essay: English Creative Writing The soft cushions, the filtered light fell upon the faded, dusty dark carpet. “She was a good woman, your Grandmother. Your series of articles on striking headlines have opened my mind towards a different way of thinking while writing. I used to write 3 word headlines which. Amazon.com: Writing Strands, Level 3<PHONE_NUMBER>103):. The Cosmo Headline Technique for Content Inspiration. Creative Writing Camps Summer Camps that Encourage. The #TFBookClub is currently reading Exquisite by Sarah Stovell, set in The Lake District. Bo Luxton has it all – a loving family, a beautiful 63 Fun Creative Writing Prompts
Creative Writing from Wesleyan University. This Specialization covers elements of three major creative writing genres: short story, narrative essay Creative Writing - perry-lake.org. Kids' camps and summer camps offering creative writing as part of their activities or curricula are listed here, at Camps.ca, which also offers advice Creative World Lutz/ Oakstead, FL Preschool, Childcare. AFAM 110: Intro to African American Studies This course provides an overview of African American history and culture. Topics include major events, persons, and issues. #TFBookClub – Creative Writing Retreats Guide to Writers Conferences Writing Workshops: Unabridged, continually updated guide to writing conferences, writers workshops, creative career writing programs.
Write for everyone. Right for you. The University Writing Center has moved to Pennington Student Achievement Center, Ste. 350. Stop in and visit our new space.
Dave Marks, the founder of National Writing Institute and the author of the Writing Strands and Reading Strands series of books, graduated from Western Michigan. Course Descriptions College Catalog Lake Forest College. This week's writing prompt concerns a mysterious misadventure that begins on a familiar path and ends at the door of a structure made of gingerbread. Creative writing lake description - Education Changemakers. A creative director is a position often found within the graphic design, film, music, video game, fashion, advertising, media, or entertainment industries Creative writing lake description - nardonegroup.org. Creative Writing Prompt: Spiced Architecture Writer's Digest.
Creative writing website with creative writing tips and ideas, writing prompts, writing activities, character name generator, and more to help anyone write better. Do you want to inspire your students to write great narratives, essays, and reports? Check out these grade-specific writing topics organized Writing Center University of Nevada


To create a new mobile theme,
press on the "Create" menu and choose "Theme...".
This will bring up a dialog where you pick an existing theme to clone,
and provide a name for the cloned theme.

After clicking on the Create button on the Create Theme dialog,
Maqetta will clone the theme you specified, and open up the Maqetta mobile
theme editor on your new CSS theme. (The image below shows how the mobile theme
editor will look after cloning the custom theme.)
Open menu
To edit an existing mobile theme,
press on the "Open" menu and choose "Theme Editor...".
This will bring up a dialog where you pick an existing theme to edit.
After clicking on the Open button on the Open Theme dialog,
Maqetta will open up the Maqetta
theme editor on your CSS theme.
Save command
You can click on Save to save the currently open theme.
Undo/redo commands
Undo and redo commands
Properties palettes
The various Properties palettes (Layout, Padding, Margins, Background, etc) are where you can change
styling for particular widget types. The various sections are:
Layout - Various CSS properties in the general area of layout.
Includes CSS properties regarding size (e.g., 'width' and 'height') and
location (e.g., 'left' and 'top'). Also includes CSS properties
such as 'position', 'display', 'float', 'overflow' and 'opacity'.
Padding - CSS padding properties, including the 'padding' shortcut
and the specific properties 'padding-top', 'padding-right', 'padding-bottom' and 'padding-left'.
Margin - CSS margin properties, including the 'margin' shortcut
and the specific properties 'margin-top', 'margin-right', 'margin-bottom' and 'margin-left'.
Background - CSS background properties. The "..." buttons can be used
to bring up the Background dialog, which allows picking background image and defining
gradients.
Border - CSS border properties.
Fonts/Text - CSS properties having to do with text styling.
SVG - CSS properties that only apply to SVG content.
These properties typically are used only for widgets from the Drawing Tools section
of the Palette.
States palette
With the theme editor, you can apply different CSS style rules for different
interactive states (Normal vs Disabled vs Selected etc).
The States palette allows you to change the current interactive states.
Global styling
The top sections of the mobile theme editor allow you to adjust styling
on a global basis (i.e., styling changes that apply to multiple widgets).
There are three global styling sections:
Page background and fonts
Heading background
Button background
Widget-specific styling
The bottom part of the mobile theme editor allows widget-specific changes
to CSS themes. The mobile theme editor organizes widgets using a TabContainer
with the following three panes:
Headings and TabBars
Rects & Lists
Controls
Sub-widget styling
Some widgets offer CSS styling control on different parts ("sub-widgets") of
the given widget. The image below shows the sub-widget selection
control for the ListItem widget. (The sub-widget selection control is on the right side of the image.)


Photos: Deepika Padukone-Ranveer Singh leave for Tirupati for their first anniversary celebrations
by TIMESOFINDIA.COMDeepika Padukone and Ranveer Singh have big plans for their first wedding anniversary tomorrow. The couple is all set to celebrate their special day in a divine manner as they plan to seek blessings at Balaji and Padmavati Temple on November 14, after which the couple will fly to Amritsar to offer prayers at the Golden Temple on November 15. Ranveer and Deepika were snapped at the airport today as they left for Tirupati, along with Ranveer’s father Jagjit Singh Bhavnani.
The couple even obliged fans at the airport with selfies. Both the families will return to Mumbai on November 15.
Ranveer and Deepika tied the knot at Lake Como in a glamorous Konkani wedding on November 14, followed by a big-fat Punjabi marriage on November 15. Back in India, the couple hosted two receptions for their friends and family, one in Bangalore and in India. On the work front, Ranveer will soon be seen in sports drama '83', which will feature Deepika as his onscreen wife too. Directed by Kabir Khan '83' is scheduled to hit the screens on April 10, 2020. Also, Deepika will be seen in 'Chhapaak', which will release on January 10, 2020.


{% extends 'base_landing.html' %} {% load staticfiles %} {% block content %}
Welcome {{ user.first_name }}. Exchange e-books with other users for free.
{% else %}Exchange e-books with other users for free.
Check out the MARKETPLACE to see e-books up for trades {% endif %}Check out the MARKETPLACE to see e-books up for trades


Kenya’s Starlets exact revenge on Kili Queens
by Doris MaliyagaIn Summary
- Shikangwa is a player who killed off whatever little hopes Kilimanjaro Queens had of retaining the Cecafa Women’s Challenge Cup title
Dar es Salaam. The mood was subdued across the country yesterday when Kilimanjaro Queens lost to Kenya’s Harambee Starlets in the Cecafa Women’s Senior Challenge Cup final.
Kilimanjaro Queens had gone into the match as favourites and made a bright start before two goals from second half substitute Hendrix Shikangwa silenced the hosts at the Azam Complex, Chamazi.
Shikangwa – popularly known as “Super Sub,” – struck twice to give the Kenyan girls a 2-0 win over the hosts.
Shikangwa, who was like a thorn in the flesh for hosts’ defenders, emerged the top scorer of the tournament with eight goals.
She broke the deadlock in the 70th minute through a penalty, 19 minutes after coming in to replace Janet Bundi.

Advertisement
Kilimanjaro Queens, coached by Bakari Shime, were seeking to retain the Cecafa Cup title for the third time.
They had reached yesterday’s final after squeezing a 1-0 win over Uganda at the same venue last Saturday.
Harambee Starlets, on the other hand, had sailed through after thrashing Burundi 3-0 in the other semi-final.


Our sacrament today is mushrooms. We all like mushrooms, don't we?
Schedule a day and evening when you have nothing to do and can be by yourself in a safe, comfortable place. The day need have no special meaning, but if it makes you feel good to pick a certain anniversary or holiday, so much the better.
Sunset on the day you choose will be the Zero hour.
At zero hour minus one week, remove all toxins from your diet - meats, alchohol, refined sugars, even our friendly green ally. Maintaining a strict vegan diet consisting mainly of rice, beans, cereals, grains, fruits, and vegetables is recommended. Drink plenty of water. Meditate 30 to 60 minutes a day on the purpose of your journey to meet (fill in the deity or entity of choice).  Preparation, reason, and readiness are the keys here.
At zero hour minus 24 hours, begin your fast. The fast starts at sundown, and continues until sunrise the morning after the zero hour.
At zero hour minus 6-8 hours (midday), have an enema. Refrain from any physical activity on this day. Refrain from any overwhelming mental stimulus on this day, like television, music, etc. Writing, practicing an art, or playing music is recommended. A combination of cleansing of your physical space (house, room, campground, etc), meditation, yoga, and quiet napping is also suggested. At zero minus two hours, refrain from drinking any liquids.
As the zero hour approaches, your Will will be waning. You may not think you have the strength to take the journey. You will want to eat. You will feel tired, burdened, physically weak. This is the time of departure.
At zero hour minus 40 minutes, consume 2-5 grams syrian rue extract with a small glass of water. As the rue enters your system, ask it to carry you safely across the void. It is the job of the rue to ready the body for the poison, and make sure it is properly tuned for the voyage. Meditate on it's function for at least 10 or 15 minutes before the zero hour.
Zero hour - Bless your sacrament. Tell it all your hopes and fears. Ask that you enter into a bond of mutual respect. Tell it that you are ready to yeild to its power, and that no tricks are necessary. Consume your sacrament - 3 to 5 grams dried cubensis or cyanecens.
Wait. It is difficult to wait. Try lying down with arms folded, breathing deeply. Do not seek distraction. Just wait. You've been waiting all week, just a few few minutes more.
Zero hour plus 40 - extreme doubt, fear, and agitation set in. Do not fight them.  Just say goodbye. You are leaving them now. It is okay to cry. It is best to cry. If you hold back tears, yawning will force you to tear. Might as well let it flow. It is a cleansing.
Just say goodbye.
When you push through the pain and reach a state of inner peace, THEY will visit you. When you hear them beginning to whisper in your ear, calmly introduce yourself and tell them why you came. They will know this already, but it is just a formality. They will ask you to enter the darkness, lie down and close your eyes (pillows and blankets are good here). Do what they say and they will produce miracles for you. Once you pass through their little world, they will release you into the void.
Leave your body with an exhale. Travel through time, merge with the ether, contact beings and gods and long-lost friends, return to your true home. This is your home. This is where you came from, this is where you will return. Have tea with god, make lightning bolts with your mind, sing creation into existence. It is all possible, it is all real, it is all wonderful. You are pure light, pure energy, pure bliss...
Please, don't forget to thank your hosts.
With an inhale you return to your body. You are back. You are alone. You are weak.  All your problems are still there. All your questions remain unanswered. only a few hours have passed, but it seemed like an eternity. How long were you dead? Were you really dead? Was it just a drug? What just happened?
You want to seek refuge in the comfort of others, but you must wear this night out alone. If you are lucky, a voice will visit you and sing you to sleep. This voice will sing strength back into your body. It will infuse you with sorrow and hope.  It will share childhood memories with you.
Fall into an exhausted sleep with tears of sorrow and joy. You will wake early, refreshed, invigorated - surprisingly strong.
You will feel reborn.
Milk it.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


angry module excavation
Let's play with duct tape.
Stanislas 'P1kachu' Lejay
LSE Week - July 14, 2016


{% load static i18n %}
{% blocktrans %} After you log in to the Dr. Down website, you will be redirected to the profile editing page, where you will need to fill in your details so that your registration is completed in the system, after inserting them, click the "Update" button. {% endblocktrans %}
{% blocktrans %} Once you have filled in your data and updated your profile, you will be redirected to the "My Profile" page, you will be able to view your data, edit your profile, change the registered email and delete your account. {% endblocktrans %}
{% blocktrans %} Nas próximas vezes que fizer o login, explicado aqui, você verá a Página de Notificações. Essa página te avisará quando houver novos eventos, novos pedidos de consultas respondidos para todos os pacientes dos quais você é responsável e os novos comentários de seus posts contidos no fórum. {% endblocktrans %}
{% blocktrans %} By clicking on Orders in the sidebar you will be redirected to the page that lists the requests for inquiries made by you for whom you are responsible. {% endblocktrans %}
{% blocktrans %} In this page you can create a new request for a query, edit an order or delete an order. {% endblocktrans %}
{% blocktrans %} By clicking on "Marked" in the Queries tab, you will be redirected to the list of queries that have been marked for you by a Cris Down employee, where you can view the specialty, date and time. {% endblocktrans %}
{% blocktrans %} Na side bar está listados todos os pacientes dos quais você é responsável. Ao clicar em um deles você terá acesso à checklist e ao prontuário. {% endblocktrans %}
{% blocktrans %} By clicking on "Medical Record" on the Medical History tab, you will have access to your pronounary, you can view your data and data filled by the Cris Down health team: evolutions, postnatal data, medical exams, prescriptions, complaints and curves of height, weight, imc and head circumference. {% endblocktrans %}
{% blocktrans %} You can also go to the Care Line or print / save your medical records in PDF. {% endblocktrans %}
{% blocktrans %} In the "evolution" tab, you can see the entire medical history about your related patient routine in Cris Down. {% endblocktrans %}
{% blocktrans %} In "exams" you can see all your related patient exams and see observations about him/her. {% endblocktrans %}
{% blocktrans %} The "prescription" tab shows the medicines prescribed by a health team member, and information like: the dosage and how often it must be taken. {% endblocktrans %}
{% blocktrans %} In this tab show the complaints made by your related patient. {% endblocktrans %}
{% blocktrans %} The curves tab shows data about your related patient like: BMI, height, weight and encephalic perimeter. With all this data some charts are generated that show your related patient's developmental state. {% endblocktrans %}
{% blocktrans %} To view or edit the checklist of a related patient, you just need to click the "Checklist" button on the top right corner of his "Medical Records" page. {% endblocktrans %}
{% blocktrans %} Clicking on the vaccine calendar will show a table with two tabs that indicate the vaccines by age, the first flap is from birth to six years of age and the second flap is nine years old and up. {% endblocktrans %}
{% blocktrans %} After accessing "Vaccination Sites" in the sidebar, you will be redirected to a list of cities in the Federal District, where each city has vaccination clinics. {% endblocktrans %}
{% blocktrans %} By accessing the Forum, you will be redirected to the Forum Categories page, clicking on any category you will go to the forum posts. {% endblocktrans %}
{% blocktrans %} You will have access to the posts of the selected category, you can also insert a new post for the category. {% endblocktrans %}
{% blocktrans %} In the comments page, you will have access to the comments of the selected post and you will also be able to make new comments in the post. {% endblocktrans %}
{% blocktrans %} In "Events", you will have access to the events promoted by Cris Down, clicking on the event name will appear the information. {% endblocktrans %}


The Brazilian Symposium on Software Components, Architectures, and Reuse (SBCARS) is promoted by the Brazilian
Computer Society (SBC) and attracts researchers, students, and practitioners interested in a broad range of
software engineering topics, including software product lines, component-based development, architectures, and
reuse. Previous editions of the symposium offered a strong technical program, keynote talks by leaders in the
field, and tutorials regarding state-of-art topics. SBCARS 2019 intends to continue this tradition.
In this context, we are looking for high-quality submissions for SBCARS 2019.
Chair
Call for Papers
Important Dates
- Paper registration/abstract submission: Jul 5, 2019 *Jul 12, 2019* new deadline
- Paper submission: Jul 8, 2019 *Jul 15, 2019* new deadline
- Author notification: Aug 9, 2019 *Aug 12, 2019* new deadline
- Camera-ready version: Aug 13, 2019 *Aug 16, 2019* new deadline
- Conference: Sep 23-24, 2019
Topics of Interest
We invite authors to contribute with technical papers related (but not limited) to the following themes:
- Agile software architecture and design
- Aspect-oriented software development and software modularity
- Component-based software engineering
- Design patterns
- Domain analysis and engineering
- Generative programming and domain-specific languages
- Mining software repositories
- Model-driven engineering
- Program transformation and refactoring
- Reuse and variability in Open Source Software
- Service-oriented architectures (SOA) and service-based development
- Software analysis, comprehension, and reconstruction
- Software architecture (architecture recovery, architecture description languages, architecture evaluation,
reverse architecting, etc.)
- Software evolution
- Software metrics
- Software product lines
- Software reuse (including technical and non-technical issues)
- Variability management
We are also interested in experimental studies (controlled experiments, case studies, systematic reviews),
experience reports, theoretical contributions, education-related papers, tools, and methods related to all of
the above topics.
Submission Format (Triple-blind Review)
Submitted papers can be written in Portuguese or English. Papers written in Portuguese need to be submitted
with the title, abstract, and keywords written in English. Submissions in English are strongly
encouraged since the symposium proceedings will be indexed in the ACM Digital Library. At least one
author of each accepted paper must register for the conference and present the paper in person during
the event. Otherwise, the paper will not be included in the proceedings.
It is strongly encouraged that authors check papers from previous editions of SBCARS to reference related
work whenever it is applicable. This might motivate and improve discussions between researchers working
in the same area during the symposium. SBCARS papers published in previous editions are available at
http://dblp1.uni-trier.de/db/conf/sbcars/index.html
All submissions must be in Adobe Portable Document Format (PDF) and must comply with the ACM 2-column
conference (ACM_SigConf) format available at http://www.acm.org/publications/proceedings-template.
Papers must be no longer than 10 pages, including figures, tables, and references. Submissions not in
compliance with the required format and out of the technical scope will be rejected without reviewing.
Submitted papers will be reviewed by at least three referees, based on its originality, relevance, technical
soundness, and clarity of presentation.
SBCARS 2019 will employ a triple-blind review process. The papers submitted must not reveal the authors'
identities in any way.
* Authors should leave out author names and affiliations from the body of their submission.
* Authors should ensure that any citation to related work by themselves is written in third person, that is,
"the prior work of XYZ" as opposed to "our prior work".
* Authors should avoid providing URLs to author-revealing sites (tools, data sets). The paper can mention the
existence of such sites, but the visit of such sites should not be needed to conduct the review.
* Authors should anonimize author-revealing company names, yet can provide general characteristics of the
organizations involved needed to understand the context of the paper.
Papers should be submitted electronically through EasyChair at
https://easychair.org/conferences/?conf=sbcars2019
When submitting your paper, you must specify the language of your paper with a prefix in the field of the
paper title in the submission platform. The title of papers in English must start with "[EN]" and the
title of papers in Portuguese must start with "[PT]". This guarantees that your paper is assigned to a
reviewer that will be able to review your paper.
Best Paper Award and Special Issue
- SBCARS organizers will award the Best Papers prize of the symposium, which will be announced during the event.
The authors of best papers will be invited to submit an extended version to a special issue of the JBCS -
Journal of the Brazilian Computer Society (http://www.springer.com/computer/journal/13173)
.
SBCARS - Program Committee
Adenilso Simão (USP, Brazil)
Alcemir Santos (UFPI, Brazil)
Ana Paula Bacelo (PUCRS, Brazil)
Baldoino Fonseca (UFAL, Brazil)
Breno França (UNICAMP, Brazil)
Bruno Cafeo (UFMS, Brazil)
Bruno da Silva (CalPoly, USA)
Carla Silva (UFPE, Brazil)
Christina Chavez (UFBA, Brazil)
Christoph Seidl (TU Braunschweig, Germany)
Cláudia Werner (UFRJ, Brazil)
Cláudio Santana (UFBA, Brazil)
Daniel Lucredio (UFSCar, Brazil)
Dario Correal (Uniandes, Colombia)
Edson Oliveira Jr. (UEM, Brazil)
Eduardo Almeida (UFBA, Brazil)
Eduardo Figueiredo (UFMG, Brazil)
Eduardo Guerra (INPE, Brazil)
Elder Cirilo (UFSJ, Brazil)
Elisa Yumi Nakagawa (USP, Brazil)
Emanoel Barreiros (UPE, Brazil)
Fábio Silveira (UNIFESP, Brazil)
Felipe Ebert (UFPE, Brazil)
Francisco Dantas (UERN, Brazil)
Genaína Rodrigues (UnB, Brazil)
Gustavo Pinto (UFPA, Brazil)
Gustavo Soares (Microsoft Research, USA)
Henrique Rebêlo (UFPE, Brazil)
Hyggo Almeida (UFCG, Brazil)
Igor Scaliante Wiese (UTFPR, Brazil)
Ingrid Nunes (UFRGS, Brazil)
Ivan Machado (UFBA, Brazil)
J. Andres Diaz-Pace (UNICEN, Argentina)
Jair Leite (UFRN, Brazil)
Juliana Pereira (INRIA, France)
Kiev Gama (UFPE, Brazil)
Lincoln Rocha (UFC, Brazil)
Lucas Bueno (IFSP-São Carlos, Brazil)
Marcelo Fantinato (USP, Brazil)
Marcelo Maia (UFU, Brazil)
Márcio Ribeiro (UFAL, Brazil)
Maria Augusta Vieira Nelson (PUC-MG, Brazil)
Mario Linares-Vásquez (Universidad de Los Andes, Colombia)
Melina Mongiovi (UFCG, Brazil)
Nelio Cacho (UFRN, Brazil)
Paola Accioly (UFCA, Brazil)
Patrícia Machado (UFCG, Brazil)
Paulo Henrique Maia (UECE, Brazil)
Ricardo Terra (UFLA, Brazil)
Roberta Coelho (UFRN, Brazil)
Rodrigo Bonifácio (UnB, Brazil)
Rodrigo Santos (UNIRIO, Brazil)
Rogério de Lemos (University of Kent, UK)
Rohit Gheyi (UFCG, Brazil)
Rosana Braga (USP, Brazil)
Sabrina Souto (UEPB, Brazil)
Silvia Vergílio (UFPR, Brazil)
Tássio Vale (UFRB, Brazil)
Thelma Colanzi (UEM, Brazil)
Thomas Vogel (Humboldt-Universität zu Berlin, Germany)
Tiago Massoni (UFCG, Brazil)
Toacy Oliveira (UFRJ, Brazil)
Uirá Kulesza (UFRN, Brazil)
Valter Camargo (UFSCar, Brazil)
Vander Alves (UnB, Brazil)
Vinícius Garcia (UFPE, Brazil)
STEERING COMMITTEE
- Leopoldo Teixeira (UFPE)
- Ingrid Nunes (UFRGS)
- Márcio Ribeiro (UFAL)
- Marco Aurelio Gerosa (USP)
- Rohit Gheyi (UFCG)
Contact
- For more information, please refer to the conference website (http://cbsoft2019.ufba.br) or contact Leopoldo
Teixeira (lmt@cin.ufpe.br), Program Chair.


Application Error
Sorry about that! Errors are tracked automatically, our technicans were informed about it.
If the problem persists, feel free to contact us on
wocat.net


Titanium.Database.install
install a database from the application Resources folder (at build time) and return a reference to the opened database. it is safe to call this method multiple times since this method will only install once if it doesn't already exist on the device.
Arguments
| Name |
Type |
Description |
| path |
string |
the path (relative to the main application Resources folder at build time) to the db to install. this file must be in the SQLite 3 file format. |
| name |
string |
the name of the database |
Return Type
object


I have always been interested in maths, numbers since my childhood and creating new things visually has always been my inspiration. Becoming a Front End Web Developer would be a perfect match for my two passions. When I wrote my first HTML code, I fell in love the magic and the creativity behind the wall.
While studying on my databases skills, I came across HTML and my journey has began. After a few online courses, I moved on to have professional support. Completed in front end web development with a self-funded technical training course. This allowed me to move my understanding to the next level and to turn my passion into a reality.
Currently I am working as a part of a team taking charge of development & maintenance of an Invoice Finance project. I am responsible for coding and testing on the Platform.
My aim is to be a complex problem solver and continuously evolve as a developer.
Junior Web Developer
I am working as a part of a team taking charge of development & maintenance of an Invoice Finance project. I am responsible for coding and testing on the Platform.
I have completed a graduate level self-funded coding bootcamp provided by Just IT, where I have a gained a lot of skills in a short amount of time. The course covered HTML, CSS, JavaScript, C#, ASP.NET, SQL and MVC concepts.
Vodafone Agile Solutions Dept. Configuration Solution Specialist
I was working as a part of an agile team taking charge of development & maintenance of Vodafone Agile Solutions projects.
Vodafone MSP Project - CRM Domain Software Test Engineer
I was working as a part of a team taking charge of testing & maintenance of Vodafone CRM and CCB web application and LDM (Law Document Management) web application.
Turk Telecom Online Trading Center, Software Test Engineer
I worked as a part of an agile team taking charge of testing & maintenance of Turk Telecom Online Trading Center.
The aim of the Mathematical Engineering programs is to give to the students the formation of an Engineer with a deep knowledge of Mathematics; and raise engineers who produce solutions by simulating technical – economic and social phenomena.


Find sources for OTA scaling¶
These functions locate the bright sources on OTAs, runs phot on these sources, and calculate the scaling factor needed to be applied to each OTA based on a reference image.
-
odi_scale.
source_find
(img, ota, inst, nbg_std=10.0)[source]¶ This function will find sources on an OTA using the detect_sources module from photutils. This will return of csv file of the sources found with the x,y,Ra,Dec,source_sum,max_value, and elongation of the source. The elongation parameter is semimajor_axis / semiminor_axis. This output is needed for the source_xy function. This function is set to work on the reprojected otas.
Parameters: - img (str) – Name of image
- ota (str) – Name of OTA
- int (str) – Version of ODI used,
podi
or5odi
- nbg_std (float) – Multiplier to the standard deviation of the background. It has a default
value of
10
to only detect bright sources
Note
This function produces a
csv
file inodi.sourcepath
with the following naming convention'source_'+ota+'.'+img.base()+'.csv'
.
-
odi_scale.
source_xy
(img, ota, gapmask, filter, inst)[source]¶ This function will return the x,y positions of sources found by
source_find()
that are not too close to gaps or the edges of the ota.Parameters: - img (str) – Name of image
- ota (str) – Name of OTA
- int (str) – Version of ODI used,
podi
or5odi
Note
This function produces a
csv
file inodi.sourcepath
with the following naming convention'source_'+ota+'.'+img.base()+'.xy'
.
-
odi_scale.
getfwhm_source
(img, ota, radius=4.0, buff=7.0, width=5.0)[source]¶ This function will measure the FWHM of the sources in the catalog produced by
source_xy()
. These are the sources that were not too close to the edges of the OTA or the gaps. The FWHM measurement is done using the same IRAF tasks outlined ingetfwhm.getfwhm_ota()
.Parameters: - img (str) – Name of image
- ota (str) – Name of OTA
Returns: sfwhm – Median value of the
gfwhm
measurements on theota
.Return type: float
-
odi_scale.
phot_sources
(img, ota, fwhm, run_detect=True)[source]¶ Run IRAF phot on the sources filtered by
source_xy()
. Thefwhm
values used by phot is calculated bygetfwhm_source()
.Parameters: - img (str) – Name of image
- ota (str) – Name of OTA
- fwhm (float) – Median value of the
gfwhm
measurements on theota
.
Note
IRAF phot is run with the following parameters:
- iraf.apphot.phot.setParam(‘interactive’,”no”)
- iraf.apphot.phot.setParam(‘verify’,”no”)
- iraf.datapars.setParam(‘datamax’,50000.)
- iraf.datapars.setParam(‘gain’,”gain”)
- iraf.datapars.setParam(‘ccdread’,”rdnoise”)
- iraf.datapars.setParam(‘exposure’,”exptime”)
- iraf.datapars.setParam(‘filter’,”filter”)
- iraf.datapars.setParam(‘obstime’,”time-obs”)
- iraf.datapars.setParam(‘sigma’,”INDEF”)
- iraf.photpars.setParam(‘zmag’,0.)
- iraf.centerpars.setParam(‘cbox’,9.)
- iraf.centerpars.setParam(‘maxshift’,3.)
- iraf.fitskypars.setParam(‘salgorithm’,”median”)
- iraf.fitskypars.setParam(‘dannulus’,10.)
- iraf.datapars.setParam(‘airmass’,’airmass’)
- iraf.datapars.setParam(‘fwhmpsf’,fwhm)
- iraf.photpars.setParam(‘apertures’,5.*fwhm)
- iraf.fitskypars.setParam(‘annulus’,6.*fwhm)
-
odi_scale.
phot_combine
(img, ota, run_detect=True)[source]¶ Combine all of the information gathered on the found sources. These will be all of the values returned by
source_find()
,source_xy()
,getfwhm_source()
,phot_sources()
.Parameters: - img (str) – Name of image
- ota (str) – Name of OTA
Note
This will produce a file with the following naming scheme
odi.sourcepath+img.nofits()+'.'+ota+'.totphot'
.
-
odi_scale.
source_scale
(img, ref, filter)[source]¶ This function calculates the scaling based on a reference image. The tables returned by
phot_combine()
are used to match the sources in the image and the reference image, as well as make cuts based and other source properties. These values will likely have to adjusted based on your data.Parameters: - img (str) – Name of image
- ref (str) – Name of reference image
- filter (str) – Name of current filter
Returns: - scale (float) – Scaling factor needed to be applied to the ota
- std (float) – Standard deviation of the scaling factors determined for each star
in common between
img
andref
- len(rat) (int) – Number of stars used in calculating the scaling factor
Note
The following cuts are applied to the stars, on the image and reference image, before they are used in determining the scaling.
- 1000.0 <
peak_img and peak_ref
< 45000.0 fwhm_img
< 900.0 andfwhm_ref
< 900.0MAG_img
< 900.0 andMAG_ref
< 900.0


This field is required.
Required 6 digit.
Required 6 digit only.
Required 15 digit.
Required 15 digit only.
Must be Alphanumeric.
Please enter a valid email address.
Required 10 digit.
Required 10 digit only.


|
|
Boost.RegexConfiguration and setup |
|
You shouldn't need to do anything special to configure boost.regex for use with your compiler - the boost.config subsystem should already take care of it, if you do have problems (or you are using a particularly obscure compiler or platform) then boost.config has a configure script.
The following macros (see user.hpp) control how boost.regex interacts with the user's locale:
| BOOST_REGEX_USE_C_LOCALE | Forces boost.regex to use the global C locale in its traits class support: this is the default behavior on non-windows platforms, but MS Windows platforms normally use the Win32 API for locale support. |
| BOOST_REGEX_USE_CPP_LOCALE | Forces boost.regex to use std::locale in it's default traits class, regular expressions can then be imbued with an instance specific locale. |
| BOOST_REGEX_NO_W32 | Tells boost.regex not to use any Win32 API's even when available (implies BOOST_REGEX_USE_C_LOCALE unless BOOST_REGEX_USE_CPP_LOCALE is set). |
| BOOST_REGEX_DYN_LINK | For Microsoft and Borland C++ builds, this tells boost.regex that it should link to the dll build of the boost.regex. By default boost.regex will link to its static library build, even if the dynamic C runtime library is in use. |
| BOOST_REGEX_NO_LIB | For Microsoft and Borland C++ builds, this tells boost.regex that it should not automatically select the library to link to. |
| BOOST_REGEX_V3 | Tells boost.regex to use the boost-1.30.0 matching algorithm, define only if you need maximum compatibility with previous behavior. |
| BOOST_REGEX_RECURSIVE | Tells boost.regex to use a stack-recursive matching algorithm. This is generally the fastest option (although there is very little in it), but can cause stack overflow in extreme cases, on Win32 this can be handled safely, but this is not the case on other platforms. |
| BOOST_REGEX_NON_RECURSIVE | Tells boost.regex to use a non-stack recursive matching algorithm, this can be slightly slower than the alternative, but is always safe no matter how pathological the regular expression. This is the default on non-Win32 platforms. |
The following option applies only if BOOST_REGEX_RECURSIVE is set.
| BOOST_REGEX_HAS_MS_STACK_GUARD | Tells boost.regex that Microsoft style __try - __except blocks are supported, and can be used to safely trap stack overflow. |
The following options apply only if BOOST_REGEX_NON_RECURSIVE is set.
| BOOST_REGEX_BLOCKSIZE | In non-recursive mode, boost.regex uses largish blocks of memory to act as a stack for the state machine, the larger the block size then the fewer allocations that will take place. This defaults to 4096 bytes, which is large enough to match the vast majority of regular expressions without further allocations, however, you can choose smaller or larger values depending upon your platforms characteristics. |
| BOOST_REGEX_MAX_BLOCKS | Tells boost.regex how many blocks of size BOOST_REGEX_BLOCKSIZE it is permitted to use. If this value is exceeded then boost.regex will stop trying to find a match and throw a std::runtime_error. Defaults to 1024, don't forget to tweek this value if you alter BOOST_REGEX_BLOCKSIZE by much. |
| BOOST_REGEX_MAX_CACHE_BLOCKS | Tells boost.regex how many memory blocks to store in it's internal cache - memory blocks are taken from this cache rather than by calling ::operator new. Generally speeking this can be an order of magnitude faster than calling ::opertator new each time a memory block is required, but has the downside that boost.regex can end up caching a large chunk of memory (by default up to 16 blocks each of BOOST_REGEX_BLOCKSIZE size). If memory is tight then try defining this to 0 (disables all caching), or if that is too slow, then a value of 1 or 2, may be sufficient. On the other hand, on large multi-processor, multi-threaded systems, you may find that a higher value is in order. |
Revised 24 Oct 2003
© Copyright John Maddock 1998- 2003
Use, modification and distribution are subject to the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)


Flickraw¶ ↑
Flickraw is a library to access flickr api in a simple way. It maps exactly the methods described in the official api documentation. It also tries to present the data returned in a simple and intuitive way. The methods are fetched from flickr when loading the library by using introspection capabilities. So it is always up-to-date with regards to new methods added by flickr.
The github repository: github.com/hanklords/flickraw
Installation¶ ↑
Type this in a console (you might need to be superuser)
gem install json (This is only necessary on ruby 1.8) gem install flickraw
This will recreate the documentation by fetching the methods descriptions from flickr and then virtually plugging them in standard rdoc documentation.
$ cd flickraw $ rake rdoc
Features¶ ↑
-
Minimal dependencies
-
Complete support of flickr API. This doesn't require an update of the library
-
Ruby syntax similar to the flickr api
-
Flickr authentication
-
HTTPS Support
-
Photo upload
-
Proxy support
-
Flickr URLs helpers
Usage¶ ↑
Simple¶ ↑
require 'flickraw' FlickRaw.api_key="... Your API key ..." FlickRaw.shared_secret="... Your shared secret ..." list = flickr.photos.getRecent id = list[0].id secret = list[0].secret info = flickr.photos.getInfo :photo_id => id, :secret => secret puts info.title # => "PICT986" puts info.dates.taken # => "2006-07-06 15:16:18" sizes = flickr.photos.getSizes :photo_id => id original = sizes.find {|s| s.label == 'Original' } puts original.width # => "800" -- may fail if they have no original marked image
Authentication¶ ↑
require 'flickraw' FlickRaw.api_key="... Your API key ..." FlickRaw.shared_secret="... Your shared secret ..." token = flickr.get_request_token auth_url = flickr.get_authorize_url(token['oauth_token'], :perms => 'delete') puts "Open this url in your process to complete the authication process : #{auth_url}" puts "Copy here the number given when you complete the process." verify = gets.strip begin flickr.get_access_token(token['oauth_token'], token['oauth_token_secret'], verify) login = flickr.test.login puts "You are now authenticated as #{login.username} with token #{flickr.access_token} and secret #{flickr.access_secret}" rescue FlickRaw::FailedResponse => e puts "Authentication failed : #{e.msg}" end
If the user has already been authenticated, you can reuse the access token and access secret:
require 'flickraw' FlickRaw.api_key="... Your API key ..." FlickRaw.shared_secret="... Your shared secret ..." flickr.access_token = "... Your access token ..." flickr.access_secret = "... Your access secret ..." # From here you are logged: login = flickr.test.login puts "You are now authenticated as #{login.username}"
If you need to have several users authenticated at the same time in your application (ex: a public web application) you need to create separate FlickRaw objects since it keeps the authentication data internally.
flickr = FlickRaw::Flickr.new
Upload¶ ↑
require 'flickraw' FlickRaw.api_key="... Your API key ..." FlickRaw.shared_secret="... Your shared secret ..." PHOTO_PATH='photo.jpg' # You need to be authentified to do that, see the previous examples. flickr.upload_photo PHOTO_PATH, :title => "Title", :description => "This is the description"
Proxy¶ ↑
require 'flickraw' FlickRaw.proxy = "http://user:pass@proxy.example.com:3129/"
Secure endpoints¶ ↑
https endpoints are used by default. If you want to use unencrypted endpoints :
require 'flickraw' FlickRaw.secure = false
Flickr URL Helpers¶ ↑
There are some helpers to build flickr urls :
url, url_m, url_s, url_t, url_b, url_z, url_q, url_n, url_c, url_o¶ ↑
info = flickr.photos.getInfo(:photo_id => "3839885270") FlickRaw.url_b(info) # => "https://farm3.static.flickr.com/2485/3839885270_6fb8b54e06_b.jpg"
url_profile¶ ↑
info = flickr.photos.getInfo(:photo_id => "3839885270") FlickRaw.url_profile(info) # => "https://www.flickr.com/people/41650587@N02/"
url_photopage¶ ↑
info = flickr.photos.getInfo(:photo_id => "3839885270") FlickRaw.url_photopage(info) # => "https://www.flickr.com/photos/41650587@N02/3839885270"
url_photoset, url_photosets¶ ↑
info = flickr.photos.getInfo(:photo_id => "3839885270") FlickRaw.url_photosets(info) # => "https://www.flickr.com/photos/41650587@N02/sets/"
url_short, url_short_m, url_short_s, url_short_t¶ ↑
info = flickr.photos.getInfo(:photo_id => "3839885270") FlickRaw.url_short(info) # => "https://flic.kr/p/6Rjq7s"
url_photostream¶ ↑
info = flickr.photos.getInfo(:photo_id => "3839885270") FlickRaw.url_photostream(info) # => "https://www.flickr.com/photos/41650587@N02/"
See the examples directory to find more examples.
Cached version¶ ↑
You can use
require 'flickraw-cached'
instead of
require 'flickraw'
This way it it doesn't fetch available flickr methods each time it is loaded. The flickraw-cached gem is on rubygems.org and should be up-to-date with regard to flickr api most of the time.


Hello I am a global variable I have 5 friends !!!
What we want to do here is being able to let others write pythoninc code while being able to demonstrate their findings.
We noticed that a lot of researches and financial people are using python so we tought that we could do a language to help them publish their results faster and with a minimal learning curve. The idea is that, if you know python, you know how to write using our language.
| brand | model | year |
|---|---|---|
| Ford | Mustang | Old |
| Toyota | Highlander | New |


{% extends "base_generic.html" %} {% block content %}
Collection of my movie DVDs. Website is a Django website developed as an example on the Mozilla Developer Network.
Built with my modification to the Django skeleton website code found here on Github.
DVD's here are my collection and this web app helps me to organize and keep track of them.
The library has the following record counts:


This walkthrough tries to simplify finding the link to course specific calendar feeds using the Canvas API. Since I can't pretend to be you when accessing Canvas, this walkthrough will give you links to click and will pick out the info you need based on the info you copy and paste from those links. None of this info is saved by me and all the logic is done right in your web browser.
Step 1: Make sure you're logged in to Canvas in this browser
Login to Canvas at canvas.uchicago.edu. Once you're logged in, come back to this page.
This method only works if you have cookies enabled. If you don't know what that means, you probably don't need to worry about it!
Already logged in? Next
Step 2: Let's find the calendar links for your courses!
Go to this link and copy and paste the big blob of text below:
In case you're using Firefox or some other browser with a fancy feature that parses JSON, try to find a view of the raw JSON to copy paste from.
Missed something? Back
Step 3: Here are all your individual course calendars links:
Use the .ics links to import the calendar feeds to your favorite calendar service.
| Course | Calendar Link |
|---|
Missed something? Back
Thanks for using this walkthrough! If you have any issues, feel free to message me or open an issue on GitHub.


<lcOJT>
The <lcOJT> is "the on-the-job training" and describes aspects of the course taking place in the work environment.
Category: Learning and training: common content elements


Vaibhav Sagar
About
Talks
Archive
Posts tagged "git"
I Haskell a Git
- 13 August 2017
Git It Going - an Introduction to Git
- 10 May 2015


During a discussion I had the other day with a sysadmin, I heard about this neat tool I had never used before, called GNU Parallel, which allows a simple terminal way of executing multiple commands on one or more machines.
It accepts arguments similar to those of xargs, which means potentially it can be an elegant drop-in replacement for situations where fiddling around with pipes will get the job done. That said, parallel has a great deal of arguments, making it seemingly a flexible program.
As an aside, I suppose the pythonic method of doing something like this would be fabric, which is fairly impressive as well. Plus it has been around long enough that it has grown into a mature library.
However, I was intrigued by the idea of getting parallel to work in a similar fashion, at least for the purposes of executing commands on multiple instances.
Before doing that though, I think a quick overview of parallel and its syntax is warranted. Let's begin...
parallel
Upon doing so a warning appears, or at least on the Debian docker image being used for this example:
parallel: Warning: Input is read from the terminal. Only experts do this on purpose. Press CTRL-D to exit.
I think the newer versions have a slightly different warning message. On my Solus desktop I got the following:
parallel: Warning: Input is read from the terminal. You either
know what you
parallel: Warning: are doing (in which case: YOU ARE AWESOME!)
or you forgot
parallel: Warning: ::: or :::: or to pipe data into parallel.
If so
parallel: Warning: consider going through the tutorial: man
parallel_tutorial
parallel: Warning: Press CTRL-D to exit.
Regardless, this is good advice as parallel will attempt to run each line as a single process, with one job per CPU, as the default. So a bit of caution ought to be exercised and a quick read over the man page is recommended.
Assuming that the reader is indeed in a safe environment with sufficient permissions, trying typing the following into the parallel terminal.
lscpu
lsblk
pwd
Be sure to hit enter at the end of each line, as \n is the default job separator. Finally end the session by pressing CTRL-D. Afterwards you'll get the CPU info, block device info, and a print of the current working directory.
Not too shabby, but not actually better than bash yet. The utility itself has a fairly nifty syntax, reminiscent of `find` in some ways.
A more gruelling practical example might be trying to decompress the contents of a number of bz2 archives into their own separate folders simultaneously. With parallel this becomes an elegant one-liner.
parallel 'mkdir {.}; mv {} {.}; bunzip2 {.}/{};' ::: *.bz2
Which is pretty nice and each archive is decompressed on a separate CPU core. Yet a fancy bash or perl script could still, in theory, be used in its place.
How about getting parallel to ssh and execute commands on multiple machines? To accomplish this, parallel reads data in from a file located in its config directory, which is located in...
~/.parallel/sshloginfile
Below is a sample file to give you an idea of how this works.
#
# Assign one core for user "gill" on host "<IP_ADDRESS>"
#
<EMAIL_ADDRESS>#
# Assign four cores for user "john" on host "<IP_ADDRESS>"
#
<EMAIL_ADDRESS>#
# Assign two cores for user "nate" on host "<IP_ADDRESS>"
#
<EMAIL_ADDRESS>Consider reading the man page for more details, but once that is all filled in with the details of your local network machines or cluster, running quick commands on them is a bit of breeze. Maybe you need to check uptime?
parallel -S .. 'hostname; uptime' ::: ..
Afterwards the current uptime of the specified machines will be printed to stdout. Note that parallel seems to have a bit of difficulty handling keys and passphrases natively. The man page suggests instead that the user run sshpass or ssh-agent to function as a sort of middleman.
Adjusting the sshloginfile to the below allows for a password to be assigned to the individual hosts:
#
# Assign one core for user "gill" on host "<IP_ADDRESS>"
#
1/sshpass -p abc123 ssh<EMAIL_ADDRESS>#
# Assign four cores for user "john" on host "<IP_ADDRESS>"
#
4/sshpass -p abc123 ssh<EMAIL_ADDRESS>#
# Assign two cores for user "nate" on host "<IP_ADDRESS>"
#
2/sshpass -p abc123 ssh<EMAIL_ADDRESS>In this case the use of sshpass is specified, and the users have been assigned the woefully inadequate password of "abc123" for this particular example. Running the previous uptime command still returns the uptime of each host.
Just from looking at this briefly, I figure there are use cases where handling a large number of internal VMs or instances which might make parallel an interesting tool.
This utility potentially has its uses, and I feel there is quite a bit of more that this could be used for. I might have to come back and do a further analysis of this at a later blog post.


Weddings
Claire performs weekly at wedding ceremonies, receptions, & evening meals. Any combination of these can be provided as a reduced rate package deal. Ceremonies catered for are church ceremonies, humanist, spiritual, HSE, same-sex, blessings, vow renewals… or let Claire know if you had something else in mind.
Claire can be booked as a harpist, pianist, singer, singer-harpist, or singer-pianist. She is also available to collaborate with other singers or musicians, having a wide network to call on..


Add one of our client libraries to your project and start logging
your errors to Lumberyard.
Browse and visualize your errors on our clean and simple dashboard.
Information is easy to find and sort with our simple and clean design.
Signing up and using Lumberyard is zero hassle for you.
Run and built by humans, for humans.
We're looking for private beta testers to help us test.
Coming soon...


--- title: About layout: page bodyClass: page-services-list ---
I have over 30 Years of experience across diverse industry sectors covering Defence, Manufacturing, Automotive, Service & Banking Financial Systems. Apart from serving in Indian Air Force for close to 23 years, I also have the honour of being a member of Indian Air Force contingent on UN Peace Keeping Mission in Democratic Republic of Congo (MONUC).
Led Enterprise Transformations program for Central Functions group of Societe Generale group across India & Romania covering Agile@Scale, DevOps & Cloud transformation initiatives to build business agility levels across the organization.
An Ambassador for DevOps Agile Skills Association (DASA) in India to build DevOps & Agile Community through MeetUps to build awareness about Principles, Skills, Knowledge & Focus areas.
Led the biggest transformation program to set up 24x7 real time transaction capability for Institutional Business across Australia as part of New Payments Platform program driven by Reserve Bank of Australia using Scaling Agile Framework (Scrum of Scrums) with a budget of over 58Mn AUD.
Led transformation program to reduce the dependence on Customer Contact Centre through setting up a Business Process Management and Electronic Documentation Management platforms on PEGA & Filenet using Agile & traditional delivery models.
Led Infrastructure transformation program for General Motors across 22 Countries as part of International Operations to modernize their infrastructure involving data centre consolidation, Remote site virtualization, domain consolidation, setting up new sites, drive new solution development through POC etc.
Led Digital Transformation program to set up MPLS based VOIP Network to digitize communication systems using state-of-the-art communication infrastructure, set up Satellite Communication Network designed for high reliability and redundancy.
Testimonials and bibliography can be seen at here
{{ testimonial.jobtitle }}, {{testimonial.org}}
{{testimonial.text}}


QUICKzoom DEMO
-
This is an example title
-
If you put in a really long caption it will extend within the picture across multiple lines
-
You can also add a line
break if you want multiple lines
-
You can put the image into a link
-
You can also put the caption in a link
-
Are you ready to get going?
Set sqThumb: true to preserve the image aspect ratio
Need some help or have found a bug?


I would say a very good machine costs about 25k USD to setup and run for a year
Hungry_BullBear29-Sep-18 09:21 PM
Well .. I looked at the machines on some of the winning proposals . I do have better machine that is doing nothing right now(edited)
and it is not costing 25k usd
ComputerGenie 👴👴👴29-Sep-18 09:23 PM
Well .... saying that devs belong in kindergarten is a good start to not getting elected
Hungry_BullBear29-Sep-18 09:23 PM
U are not paying attention to what I said , son
Life is gona slap u right in the face if u are careless like that
take it from the old man
crumb29-Sep-18 09:24 PM
@Hungry_BullBear it's not the hardware that counts. it's the technical skills keeping things running smoothly
ComputerGenie 👴👴👴29-Sep-18 09:25 PM
answers like " it will be ready when it is ready" belong into the kindergarden
It is not serious way to do business
Which part did I get wrong?
crumb29-Sep-18 09:26 PM
to get elected you need to convince the KMD holders that you have necessary skills
so they could vote for you
ComputerGenie 👴👴👴29-Sep-18 09:26 PM
We have some notaries that have no personal hw and have skills enough that people voted them in
Hungry_BullBear29-Sep-18 09:28 PM
OK , I see
Maybe I try to get in the next election , maybe I would not but thanks for the info
ComputerGenie 👴👴👴29-Sep-18 09:29 PM
You might want to take back the whole It is not serious way to do business thing between now and then
#JustSayin'
1
Hungry_BullBear29-Sep-18 09:30 PM
OK - here it is since u think u got "i got u moment here "
bishop29-Sep-18 09:30 PM
School is in session
ComputerGenie 👴👴👴29-Sep-18 09:31 PM
I don't think "I got you", I'm telling you how more than 1 dev took that and that we are on the bleeding edge of tech and it's taken very seriously(edited)
Hungry_BullBear29-Sep-18 09:31 PM
The statement is 100% valid - the assumption behind it is the devs DONT consider themselves a kindergarten level minds so If that is the case it is obviously directed as constructive criticism .  I do understand the racism dynamics some people are trying to push in USA but I dont care about those games . If you choose to be offended by a word that does not carry any offense it is you personal problem and choice
ComputerGenie 👴👴👴29-Sep-18 09:34 PM
+ I'm schooling you on some topics(edited)
crumb29-Sep-18 09:34 PM
@Hungry_BullBear don't mind the Genie. you need to spend more time here to get used to his personality. like he admitted earlier today: a lot more people in this Discord trust him, than like him
just sayin'
Hungry_BullBear29-Sep-18 09:34 PM
it is cool , I`m not bothered at all In fact I like my time spent in this discord
I think i`ll hang around
crumb29-Sep-18 09:35 PM
cool, wise choice
1
ComputerGenie 👴👴👴29-Sep-18 09:36 PM
Remind me, again, what topics you "schooled me" on....
Hungry_BullBear29-Sep-18 09:36 PM
U got it written down - go back and check all my lines
especially the one with the smartass
ComputerGenie 👴👴👴29-Sep-18 09:37 PM
Well, you had that one 100% wrong, so what was the next one?
Hungry_BullBear29-Sep-18 09:37 PM
U remind me of the kid in chool that is trying to be cool and make other kids pay attention to him
maybe u got some growing up or dady issue
ComputerGenie 👴👴👴29-Sep-18 09:37 PM
*mommy issues
Hermes29-Sep-18 09:52 PM
oh my god
freakbros29-Sep-18 09:56 PM
haha29-Sep-18 10:12 PM
Did KMD have a trusted setup?
DesignBlock29-Sep-18 10:16 PM
Notary Nodes only maintain Komodo Platform right? Not the Assetchains in the Platform...
Llama29-Sep-18 10:17 PM
its everything @DesignBlock. AFAIK, it takes a snapshot of every assetchain every 10 mins(edited)
DesignBlock29-Sep-18 10:31 PM
But Assetchains can chose their own consensus mechanism.. right? Notary Nodes just backs up the whole system.. am I right?
MoldyLunchbox30-Sep-18 01:54 AM
Would anyone know what is the final time for infographic submissions? It says October 1st, but at what time in which time-zone? Thank you.
blackjok3r30-Sep-18 03:49 AM
@Hungry_BullBear my notary node a-team is a 10 year old server. All you need is boat loads of RAM and SSD's + very good DC internet connection nothing else is important.(edited)
1
DesignBlock30-Sep-18 04:01 AM
Are all Komodo Assetchains and Crosschains transactions Anonymous? Mandatory?
actionslacks30-Sep-18 04:12 AM
no, they are not and it is not mandatory.
grewalsatinder30-Sep-18 04:45 AM
Anonymity in zcash and all it’s fork is opt-in
But with #pirate anonymity is forced, without opt-out option.
snowdamn30-Sep-18 05:17 AM
@Hungry_BullBear did you sell all your BTC for KMD yet?(edited)
cause there ain't no way you're getting any votes for becoming NN lol
shiggidy30-Sep-18 06:29 AM
Hi had a few questions about KMD and the whitepaper. It was extremely well written, the best whitepaper i've ever read imo. just wanted a little bit of clarification on the frequency of notary nodes winning blocks using the easy difficulty. Is it basically one specific notary node will mine 1 block (and be rewarded 3KMD) out of every 64 KMD blocks, with the exception of the 2k block free-for-all period?
oh shoot cant post the screenshot of the whitepaper section
The notary nodes’ “easy difficulty” setting operates in a cyclical manner, with each notary node on its
own cycle. At the start of the cycle the notary node holds the “easy difficulty” ability until it mines one
“easy” block. Then the Iguana Core code removes the ability for the next sixty-four blocks. After the
sixty-four-block period passes, the notary node can once again attempt to capture a block on “easy
difficulty.”
Therefore, while everyone else on the network mines at an adjustable level of difficulty according to the
normal PoW consensus mechanism (which keeps the overall speed of the Komodo network stable) the
notary nodes have a chance to step outside the normal rules. For every sixty-five-block period on the
Komodo blockchain11, the odds that a block will be mined by a notary node, as opposed to a normal
miner, are essentially 3:1.
thats the section im trying to understand
can i interpret this as that a notary node has a 75% chance of winning a block in comparison to normal PoW miners? (excluding the free-for-all period)
polycryptoblog30-Sep-18 06:41 AM
No more free for all period, was changed in last update, whitepaper needs updated. the reward split is the same 75/25.
shiggidy30-Sep-18 06:43 AM
ah ok thanks so its 75% to notary nodes though
and 25% to PoW?
isnt that a bit high...
its my understanding that 4 notary nodes are controlled by devs, 30 are auto-renewed each year and 30 are community elected. Is there a list of who owns the 30 nodes that are auto-renewed?
Cryptoon30-Sep-18 06:56 AM
The best 30 are renewed so notaries are incentivized to keep node up as much as possible.
Bottom 30 spots are up for election
shiggidy30-Sep-18 06:56 AM
oh thats based on up time(edited)
can one person own multiple notary nodes?
or is there a limit?
blackjok3r30-Sep-18 06:57 AM
Noyt exactly uptime
shiggidy30-Sep-18 06:57 AM
oh really
blackjok3r30-Sep-18 06:58 AM
The system rewards nodes who respond the fastest
There are many ways to game that.
You can use a higher clockspeed CPU, or optimize software
Statistics for the Komodo Platform's dPOW notarization of KMD and supported blockchains.
that site counts ll notarizations and tallys them
Cryptoon30-Sep-18 06:59 AM
@shiggidy if one has a loooot of kmd votes behind their team I suppose you could get multiple nodes elected
shiggidy30-Sep-18 06:59 AM
ah interesting
blackjok3r30-Sep-18 07:01 AM
ALso the nodes location relative to other nodes seems very important... which IMO needs to be looked at, becasue to get auto elected all you need is to put your node in a DC where there are already heaps of nodes... which is very bad for network decentralisation.
My node is a-team and is in Perth WA, the most isolated city int he world, and I have realy struggled to keep it competetive.
I am also using a 10 year old server though lol...
shiggidy30-Sep-18 07:04 AM
curious for any specific asset-chain what stops a 51% attack during the 10 minute interval that the notary nodes are performing their notarizing duties
a 51% attack on the asset-chain
if an altchain is submitting merkel roots to that asset-chain, is it possible that a malicious attacker could potentially 51% attack the altchain and the asset-chain simultaneously during that 10 minute window?
to double spend?
especially since those asset-chains typically have low hash rates?
Cryptoon30-Sep-18 07:08 AM
#ask-jl777 to ask @jl777c
Or have one of the team answer
blackjok3r30-Sep-18 07:09 AM
I can answer that...
There is nothing stopping you 51% attacking in between the 10 block KMD window. But timing it would be very difficult.
Most exchanges use a longer confirm time than 10 blocks anyway.
Its best to wait for a notarization to happen, to consider your transaction confirmed.
if the TX is reorged out of the chain, you cna just make it again.
or it should go back into the mempool anyway and get mined in a new block.