Main Window
The main window consists of different sections: Configuration, Player, Import, Soundbank and Export.
Configuration Section
In the configuration section you can configure the follwing things:
Language: GUI language
Note System: Which set of note names to use
Half Tone Symbols: Which symbols to use for half tones
Default Half Tone: If an ambiguous half tone should be displayed as sharp or flat in the GUI
Octave Naming: How to name notes in different octaves
Syntax: Which keywords and case (lower/upper) to use for the MidicaPL syntax
Percussion IDs: Which language to use for percussion instruments
Instrument IDs: Which language to use for chromatic instruments
Import Section
The fields Imported File and File Type describe the currently imported file.
If the Remember checkbox is checked, the same file will be imported automatically when Midica is started next time.
The select file button opens the import file chooser.
The import file chooser window contains several tabs, depending on the format of the file to be imported.
MidicaPL Tab: Choose the source code file to be imported
The encoding (charset) can also be chosen. The chosen encoding must be compatible to the source file to be imported.
MIDI Tab: Choose the MIDI file to be imported
The default encoding (charset) can also be chosen. This is only used if the encoding cannot be found in the file itself. It is only relevant for text messages like lyrics etc.
ALDA Tab: Choose the ALDA file to be imported
ALDA must be installed. The command or full path to the ALDA executable must be correctly set for importing ALDA files.
ABC Tab: Choose the ABC file to be imported
abcMIDI must be installed. The command or full path to the abc2midi executable must be correctly set for importing ABC files.
LilyPond Tab: Choose the LilyPond file to be imported
LilyPond must be installed. The command or full path to the lilypond executable must be correctly set for importing LilyPond files.
MuseScore Tab: Choose a MuseScore compatible file to be imported
MuseScore must be installed. The command or full path to the musescore executable must be correctly set for importing MuseScore compatible files.
The following formats can be imported here:
- MusicXML (compressed and uncompressed)
- MuseScore
- Guitar Pro
- Capella
- Bagpipe Music Writer
- Sonicscores Overture
- Sonicscores Score Writer
- PowerTab
Soundbank Section
The Current Soundbank field describes the currently loaded soundbank.
If the Remember checkbox is checked, the same soundbank will be loaded automatically when Midica is started next time.
The select file button opens the soundbank file or URL chooser.
File Tab: Choose a soundbank file in SF2 or DLS format.
URL Tab: Choose a URL to a soundbank in SF2 or DLS format.
Already downloaded soundbanks are automatically cached. This saves time if the same URL is used a second time.
The soundbank cache can be cleared. That may be useful if an updated soundbank version is available on an already cached URL.
Export Section
The Transpose Level shows if the music will be exported to a higher or lower pitch than the imported sequence.
The default is 0
(equal pitch). Positive values transpose to a higher pitch, negative values to a lower pitch.
The transpose level can be changed in the player.
The select file button opens the export file chooser.
The export file chooser window contains several tabs, depending on the format of the file to be exported.
MIDI Tab: Choose the MIDI file to be exported.
The encoding can also be chosen. This is only relevant for text messages like lyrics etc.
It doesn't need to be the same encoding as in the imported sequence.
However if you want to stick to the official MIDI standard, it should be either ISO-8859-1
or Shift_JIS
.
If you don't care about the standard, choose whatever encoding you like.
MidicaPL Tab: Choose the MidicaPL file to be exported.
The chosen encoding is used for the complete file.
It doesn't need to be the same encoding as in the imported sequence.
This feature is still experimental!
If the Directly Import... checkbox is checked, the exported file will be directly re-imported after the export.
ALDA Tab: Choose the ALDA file to be exported.
This feature is still experimental!
If the Directly Import... checkbox is checked, the exported file will be directly re-imported after the export.
Audio Tab: Choose the Audio file to be exported.
Supported formats for the Audio export are: WAV, AU, SND, AIFF and AIFC
By clicking the Options icon you can open a window to fine-tune the audio export.
The Audio Export Settings window to fine-tune the audio export.
ABC Tab: Choose the ABC file to be exported.
abcMIDI must be installed. The command or full path to the midi2abc executable must be correctly set for exporting ABC files.
LilyPond Tab: Choose the LilyPond file to be exported.
LilyPond must be installed. The command or full path to the midi2ly executable must be correctly set for exporting LilyPond files.
MuseScore Tab: Choose a MuseScore compatible file to be exported.
MuseScore must be installed. The command or full path to the musescore executable must be correctly set for exporting MuseScore compatible files.
The following formats can be exported here:
- MusicXML (compressed and uncompressed)
- MuseScore
- MP3
- Ogg Vorbis
- FLAC
- PNG
- SVG


The next category of algorithms we describe are used to locate elements within a sequence that satisfy certain properties. Most commonly the result of a search is then used as an argument to a further operation, for example, std::copy() (Section 13.2.2), std::partition() (Section 13.4.4), or std::inplace_merge() (Section 13.4.6.)
NOTE -- The example functions described in the following sections are in the file alg2.cpp.
The searching routines described in this section return an iterator that identifies the first element that satisfies the search condition. It is common to store this value in an iterator variable, as follows:
std::list<int>::iterator where; where = std::find(aList.begin(), aList.end(), 7);
If you want to locate all the elements that satisfy the search conditions, you must write a loop. In that loop, the value yielded by a previous search is first advanced, since otherwise the value yielded by the previous search would once again be returned. The resulting value is then used as a starting point for the new search. For example, the following loop from the std::adjacent_find() example program (Section 13.3.2) will print the value of all repeated characters in a string argument:
while ((where = std::adjacent_find(where, stop)) != stop) { std::cout << "double " << *where << " in position " << where - start << std::endl; ++where; }
NOTE -- The searching algorithms in the C++ Standard Library all return the end-of-sequence iterator if no value is found that matches the search condition. As it is generally illegal to dereference the end-of-sequence value, it is important to check for this condition before proceeding to use the result of a search.
Many of the searching algorithms have an optional argument that can specify a function for comparing elements in place of the equality operator==() for the container element type. In the descriptions of the algorithms, we write these optional arguments inside square brackets to indicate they need not be specified if the standard equality operator is acceptable.
There are two algorithms, std::find() and std::find_if(), that are used to find the first element that satisfies a condition. The declarations of these two algorithms are as follows:
namespace std { InputIterator find_if(InputIterator first, InputIterator last, Predicate); InputIterator find(InputIterator first, InputIterator last, const T&); }
The algorithm std::find_if() takes as argument a predicate function, which can be any function that returns a boolean value (see Section 3.3). std::find_if() returns a new iterator that designates the first element in the sequence that satisfies the predicate. The second argument, the past-the-end iterator, is returned if no element is found that matches the requirement. Because the resulting value is an iterator, the dereference operator * must be used to obtain the matching value. This is illustrated in the example program.
The second form of the algorithm, std::find(), replaces the predicate function with a specific value, and returns the first element in the sequence that tests equal to this value, using operator==() for the given datatype.
NOTE -- The algorithms find() and find_if() perform a linear sequential search through the associated structures. The set and map data structures, which are ordered, provide their own find() member functions, which are more efficient. Because of this, the generic find() algorithm should not be used with set and map.
The following example program illustrates the use of std::find() and std::find_if():
void find_test () // illustrates the use of the find algorithm // see alg2.cpp for complete source code { int vintageYears[] = {1967, 1972, 1974, 1980, 1995}; int *start = vintageYears; int *stop = start + 5; int *where = std::find_if(start, stop, isLeapYear); if (where != stop) std::cout << "first vintage leap year is " << *where << std::endl; else std::cout << "no vintage leap years" << std::endl; where = std::find(start, stop, 1995); if (where != stop) std::cout << "1995 is position " << where - start << " in sequence" << std::endl; else std::cout << "1995 does not occur in sequence" << std::endl; }
The std::adjacent_find() algorithm is used to discover the first element in a sequence equal to the next immediately following element. For example, if a sequence contained the values 1 4 2 5 6 6 7 5, the algorithm would return an iterator corresponding to the first 6 value. If no value satisfying the condition is found, then the end-of-sequence iterator is returned. The declaration of the algorithm is as follows:
namespace std { ForwardIterator adjacent_find (ForwardIterator first, ForwardIterator last [, BinaryPredicate ] ); }
The first two arguments specify the sequence to be examined. The optional third argument must be a binary predicate, a binary function returning a boolean value. If present, the binary function is used to test adjacent elements, otherwise the equality operator, operator==(), is used.
The example program searches a text string for adjacent letters. In the example text these are found in positions 5, 7, 9, 21, and 37. The increment is necessary inside the loop in order to avoid the same position being discovered repeatedly.
void adjacent_find_example () // illustrates the use of the adjacent_find instruction // see alg2.cpp for complete source code { char *text = "The bookkeeper carefully opened the door."; char *start = text; char *stop = text + strlen(text); char *where = start; std::cout << "In the text: " << text << std::endl; while ((where = std::adjacent_find(where, stop)) != stop) { std::cout << "double " << *where << " in position " << where - start << std::endl; ++where; } }
The algorithm std::find_first_of() is used to find the first occurrence of some element from one sequence that is also contained in another sequence:
namespace std { ForwardIterator1 find_first_of (ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2 [, BinaryPredicate pred ] ); }
The algorithm returns a new iterator that designates the first element found in [first1,last1) that is also contained in [first2,last2). If no match is found, the second argument is returned. Because the resulting value is an iterator, the dereference operator * must be used to obtain the matching value. This is illustrated in the example program:
void find_test () // illustrates the use of the find algorithm // see alg2.cpp for complete source code { int vintageYears[] = {1967, 1972, 1974, 1980, 1995}; int requestedYears[] = {1923, 1970, 1980, 1974 }; int *start = vintageYears; int *stop = start + 5; int *where = find_first_of(start, stop, requestedyears, requestedyears+4); if (where != stop) std::cout << "first requested vintage year is " << *where << std::endl; else std::cout << "no requested vintage years" << std::endl; } // The output would indicate 1974.
Note that this algorithm, unlike many that manipulate two sequences, uses a starting and ending iterator pair for both sequences, not just the first sequence.
Like the algorithms std::equal() and std::mismatch(), an alternative version of std::find_first_of() takes an optional binary predicate that is used to compare elements from the two sequences.
The basic_string class provides its own versions of the find_first_of and find_end algorithms, including several convenience overloads of the basic pattern indicated here.
The algorithms std::search() and std::search_n() are used to locate the beginning of a particular sub-sequence within a larger sequence. The easiest example to understand is the problem of looking for a particular substring within a larger string, although the algorithm can be generalized to other uses. The arguments are assumed to have at least the capabilities of forward iterators.
namespace std { ForwardIterator search (ForwardIterator first1, ForwardIterator last1, ForwardIterator first2, ForwardIterator last2 [, BinaryPredicate ]); }
Suppose, for example, that we want to discover the location of the string "ration" in the string "dreams and aspirations". The solution to this problem is shown in the example program. If no appropriate match is found, the value returned is the past-the-end iterator for the first sequence.
void search_example () // illustrate the use of the search algorithm // see alg2.cpp for complete source code { char *base = "dreams and aspirations"; char *text = "ration"; char *where = std::search(base, base + std::strlen(base), text, text + std::strlen(text)); if (*where != '\0') std::cout << "substring position: " << where - base << std::endl; else std::cout << "substring does not occur in text" << std::endl; }
Note that this algorithm, unlike many that manipulate two sequences, uses a starting and ending iterator pair for both sequences, not just the first sequence.
Like the algorithms std::equal() and std::mismatch(), an alternative version of std::search() takes an optional binary predicate that is used to compare elements from the two sequences.
What determines the speed of the search? In the worst case, the number of comparisons performed by the algorithm std::search() is the product of the number of elements in the two sequences. Except in rare cases, however, this worst case behavior is highly unlikely.
The algorithm std::find_end() is used to locate the beginning of the last occurrence of a particular sub-sequence within a larger sequence. The easiest example to understand is the problem of looking for a particular substring within a larger string, although the algorithm can be generalized to other uses. The arguments are assumed to have at least the capabilities of forward iterators.
namespace std { ForwardIterator find_end (ForwardIterator first1, ForwardIterator last1, ForwardIterator first2, ForwardIterator last2 [, BinaryPredicate ]); }
Suppose, for example, that we want to discover the location of the last occurrence of the string "le" in the string "The road less traveled". The solution to this problem is shown in the example program. If no appropriate match is found, the value returned is the past-the-end iterator for the first sequence.
void find_end_example () // illustrate the use of the find_end algorithm // see alg2.cpp for complete source code { char *base = "The road less traveled"; char *text = "le"; char *where = std::find(base, base + std::strlen(base), text, text + std::strlen(text)); if (*where != '\0') std::cout << "substring position: " << where - base << std::endl; else std::cout << "substring does not occur in text" << std::endl; }
Note that this algorithm, unlike many that manipulate two sequences, uses a starting and ending iterator pair for both sequences, not just the first sequence.
Like the algorithms std::find_first_of() and std::search(), an alternative version of std::find_end() takes an optional binary predicate that is used to compare elements from the two sequences.
What determines the speed of the search? As with std::search(), in the worst case, the number of comparisons performed by the algorithm std::find_end() is the product of the number of elements in the two sequences.
The functions std::max() and std::min() can be used to find the maximum and minimum of a pair of values. These can optionally take a third argument that defines the comparison function to use in place of the less-than operator <. The arguments are values, not iterators:
namespace std{ template <class T> const T& max(const T& a, const T& b [, Compare ] ); template <class T> const T& min(const T& a, const T& b [, Compare ] ); }
The maximum and minimum functions are generalized to entire sequences by the generic algorithms std::max_element() and std::min_element(). For these functions the arguments are input iterators.
namespace std { ForwardIterator max_element (ForwardIterator first, ForwardIterator last [, Compare ] ); ForwardIterator min_element (ForwardIterator first, ForwardIterator last [, Compare ] ); }
These algorithms return an iterator that denotes the largest or smallest of the values in a sequence, respectively. Should more than one value satisfy the requirement, the result yielded is the first satisfactory value. Both algorithms can optionally take a third argument, which is the function to be used as the comparison operator in place of the default operator.
The example program illustrates several uses of these algorithms. The function named split() that was used to divide a string into words in the string example is described in Section 12.3. The function randomInteger() is described in Section 2.5.
void max_min_example() // illustrates use of max_element and min_element algorithms // see alg2.cpp for complete source code { // make a vector of random numbers between 0 and 99 std::vector<int> numbers(25); for (int i = 0; i < 25; i++) numbers[i] = randomInteger(100); // print the maximum std::vector<int>::iterator max = std::max_element(numbers.begin(), numbers.end()); std::cout << "largest value was " << * max << std::endl; // example using strings std::string text = "It was the best of times, it was the worst of times."; std::list<std::string> words; std::split (text, " .,!:;", words); std::cout << "The smallest word is " << *std::min_element(words.begin(), words.end()) << " and the largest word is " << *std::max_element(words.begin(), words.end()) << std::endl; }
The maximum and minimum algorithms can be used with all the datatypes provided by the C++ Standard Library. However, for the ordered datatypes set and map, the maximum or minimum values are more easily accessed as the first or last elements in the structure.
The name std::mismatch() might lead you to think this algorithm is the inverse of the std::equal() algorithm, which determines if two sequences are equal (Section 13.6.4). Instead, the std::mismatch() algorithm returns a pair of iterators that together indicate the first positions where two parallel sequences have differing elements. The structure pair is described in Section 9.1 and Section 9.2.1.
The second sequence is denoted only by a starting position, without an ending position. It is assumed, but not checked, that the second sequence contains at least as many elements as the first. The arguments and return type for mismatch() can be described as follows:
namespace std { pair<InputIterator, InputIterator> mismatch (InputIterator first1, InputIterator last1, InputIterator first2 [, BinaryPredicate ] ); }
The elements of the two sequences are examined in parallel, element by element. When a mismatch is found, that is, a point where the two sequences differ, then a pair containing iterators denoting the locations of the two differing elements is constructed and returned. If the first sequence is exhausted before discovering any mismatched elements, then the resulting pair contains the ending value for the first sequence, and the last value examined in the second sequence. The second sequence need not yet be exhausted.
The example program illustrates the use of this procedure. The function std::mismatch_test() takes as arguments two string values. These are lexicographically compared and a message printed indicating their relative ordering. This is similar to the analysis performed by the std::lexicographic_compare() algorithm, although that function simply returns a boolean value.
Because the std::mismatch() algorithm assumes the second sequence is at least as long as the first, a comparison of the two string lengths is performed first, and the arguments are reversed if the second string is shorter than the first. After the call on std::mismatch(), the elements of the resulting pair are separated into their component parts. These parts are then tested to determine the appropriate ordering.
void mismatch_test (char *a, char *b) // illustrates the use of the mismatch algorithm // see alg2.cpp for complete source code { std::pair<char *, char *> differPositions(0, 0); char *aDiffPosition; char *bDiffPosition; if (std::strlen(a) < std::strlen(b)) { // make sure longer string is second differPositions = std::mismatch(a, a + std::strlen(a), b); aDiffPosition = differPositions.first; bDiffPosition = differPositions.second; } else { differPositions = std::mismatch(b, b + std::strlen(b), a); // note following reverse ordering aDiffPosition = differPositions.second; bDiffPosition = differPositions.first; } // compare resulting values std::cout << "string " << a; if (*aDiffPosition == *bDiffPosition) std::cout << " is equal to "; else if (*aDiffPosition < *bDiffPosition) std::cout << " is less than "; else std::cout << " is greater than "; std::cout << b << std::endl; }
A second form of the std::mismatch() algorithm is similar to this one, except it accepts a binary predicate as a fourth argument. This binary function is used to compare elements in place of operator==().


Securing a clean energy future
Greener, cleaner, better
That’s what real power looks like. And that’s exactly what we want to bring to every home in Australia. Our innovative, energy-efficient solutions not only have the planet’s best interests at heart but also deliver significant energy savings to all our consumers.
Our services
Space Heating & Cooling
Maximum comfort at minimal costs --- that’s the promise of our innovative, energy-efficient space heating and cooling solutions designed for all types of weather.
Lighting Upgrade
Looking to upgrade to LED lighting solutions? Our range of commercial light fittings ensure that saving power and saving money go hand-in-hand.
Heat Pump
Leverage the latest heating technology with our quiet, powerful and easy-to-install range of water heating systems that are eco-friendly, energy efficient, and remarkably fast.
Clean energy, made easy
Tonnes Carbon Reduced
Globes Installed
Customers
Make every watt count
Only get the power you require. Use the energy calculator to determine what power you need and the best price for it.
Victorian Energy Upgrades program
The VEU program is helping Victorians cut power bills and reduce greenhouse gas emissions by giving households and businesses access to discounted energy-efficient products and services.


There are two basic methods for bringing up dialogs using javascript.
alert(message) -- Display message and OK button.
confirm(message) -- Display message and OK and Cancel buttons.
Results of dialogs:


In this procedure it is assumed that you have your members and regions defined where you want to run functions.
Main tasks:
- Write the function code.
- Register the function on all servers where you want to execute the function. The easiest way to register a function is to use the
gfsh
deploy
command to deploy the JAR file containing the function code. Deploying the JAR automatically registers the function for you. See Register the Function Automatically by Deploying a JAR for details. Alternatively, you can write the XML or application code to register the function. See Register the Function Programmatically for details. - Write the application code to run the function and, if the function returns results, to handle the results.
- If your function returns results and you need special results handling, code a custom
ResultsCollector
implementation and use it in your function execution.
Write the Function Code
To write the function code, you implement the Function
interface in the org.apache.geode.cache.execute
package.
Code the methods you need for the function. These steps do not have to be done in this order.
- Implement
getId
to return a unique name for your function. You can use this name to access the function through theFunctionService
API. For high availability:
- Code
isHa
to return true to indicate to Geode that it can re-execute your function after one or more members fails - Code your function to return a result
- Code
hasResult
to return true
- Code
Code
hasResult
to return true if your function returns results to be processed and false if your function does not return any data - the fire and forget function.If the function will be executed on a region, implement
optimizeForWrite
to return false if your function only reads from the cache, and true if your function updates the cache. The method only works if, when you are running the function, theExecution
object is obtained through aFunctionService
onRegion
call.optimizeForWrite
returns false by default.If the function should be run with an authorization level other than the default of
DATA:WRITE
, implement an override of theFunction.getRequiredPermissions()
method. See Authorization of Function Execution for details on this method.Code the
execute
method to perform the work of the function.- Make
execute
thread safe to accommodate simultaneous invocations. - For high availability, code
execute
to accommodate multiple identical calls to the function. Use theRegionFunctionContext
isPossibleDuplicate
to determine whether the call may be a high-availability re-execution. This boolean is set to true on execution failure and is false otherwise. Note: TheisPossibleDuplicate
boolean can be set following a failure from another member’s execution of the function, so it only indicates that the execution might be a repeat run in the current member. - Use the function context to get information about the execution and the data:
- The context holds the function ID, the
ResultSender
object for passing results back to the originator, and function arguments provided by the member where the function originated. - The context provided to the function is the
FunctionContext
, which is automatically extended toRegionFunctionContext
if you get theExecution
object through aFunctionService
onRegion
call. - For data dependent functions, the
RegionFunctionContext
holds theRegion
object, theSet
of key filters, and a boolean indicating multiple identical calls to the function, for high availability implementations. - For partitioned regions, the
PartitionRegionHelper
provides access to additional information and data for the region. For single regions, usegetLocalDataForContext
. For colocated regions, usegetLocalColocatedRegions
. Note: When you usePartitionRegionHelper.getLocalDataForContext
,putIfAbsent
may not return expected results if you are working on local data set instead of the region.
- The context holds the function ID, the
- To propagate an error condition or exception back to the caller of the function, throw a FunctionException from the
execute
method. Geode transmits the exception back to the caller as if it had been thrown on the calling side. See the Java API documentation for FunctionException for more information.
- Make
Example function code:
import java.io.Serializable;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import org.apache.geode.cache.execute.Function;
import org.apache.geode.cache.execute.FunctionContext;
import org.apache.geode.cache.execute.FunctionException;
import org.apache.geode.cache.execute.RegionFunctionContext;
import org.apache.geode.cache.partition.PartitionRegionHelper;
public class MultiGetFunction implements Function {
public void execute(FunctionContext fc) {
if(! (fc instanceof RegionFunctionContext)){
throw new FunctionException("This is a data aware function, and has
to be called using FunctionService.onRegion.");
}
RegionFunctionContext context = (RegionFunctionContext)fc;
Set keys = context.getFilter();
Set keysTillSecondLast = new HashSet();
int setSize = keys.size();
Iterator keysIterator = keys.iterator();
for(int i = 0; i < (setSize -1); i++)
{
keysTillSecondLast.add(keysIterator.next());
}
for (Object k : keysTillSecondLast) {
context.getResultSender().sendResult(
(Serializable)PartitionRegionHelper.getLocalDataForContext(context)
.get(k));
}
Object lastResult = keysIterator.next();
context.getResultSender().lastResult(
(Serializable)PartitionRegionHelper.getLocalDataForContext(context)
.get(lastResult));
}
public String getId() {
return getClass().getName();
}
}
Register the Function Automatically by Deploying a JAR
When you deploy a JAR file that contains a Function (in other words, contains a class that implements the Function interface), the Function will be automatically registered via the FunctionService.registerFunction
method.
To register a function by using gfsh
:
- Package your class files into a JAR file.
- Start a
gfsh
prompt. If necessary, start a Locator and connect to the Geode distributed system where you want to run the function. At the gfsh prompt, type the following command:
gfsh>deploy --jar=group1_functions.jar
where group1_functions.jar corresponds to the JAR file that you created in step 1.
If another JAR file is deployed (either with the same JAR filename or another filename) with the same Function, the new implementation of the Function will be registered, overwriting the old one. If a JAR file is undeployed, any Functions that were auto-registered at the time of deployment will be unregistered. Since deploying a JAR file that has the same name multiple times results in the JAR being un-deployed and re-deployed, Functions in the JAR will be unregistered and re-registered each time this occurs. If a Function with the same ID is registered from multiple differently named JAR files, the Function will be unregistered if either of those JAR files is re-deployed or un-deployed.
See Deploying Application JARs to Apache Geode Members for more details on deploying JAR files.
Register the Function Programmatically
This section applies to functions that are invoked using the Execution.execute(String functionId)
signature. When this method is invoked, the calling application sends the function ID to all members where the Function.execute
is to be run. Receiving members use the ID to look up the function in the local FunctionService
. In order to do the lookup, all of the receiving member must have previously registered the function with the function service.
The alternative to this is the Execution.execute(Function function)
signature. When this method is invoked, the calling application serializes the instance of Function
and sends it to all members where the Function.execute
is to be run. Receiving members deserialize the Function
instance, create a new local instance of it, and run execute from that. This option is not available for non-Java client invocation of functions on servers.
Your Java servers must register functions that are invoked by non-Java clients. You may want to use registration in other cases to avoid the overhead of sending Function
instances between members.
Register your function using one of these methods:
XML:
<cache> ... </region> <function-service> <function> <class-name>com.bigFatCompany.tradeService.cache.func.TradeCalc</class-name> </function> </function-service>
Java:
myFunction myFun = new myFunction(); FunctionService.registerFunction(myFun);
Note: Modifying a function instance after registration has no effect on the registered function. If you want to execute a new function, you must register it with a different identifier.
Run the Function
This assumes you’ve already followed the steps for writing and registering the function.
In every member where you want to explicitly execute the function and process the results, you can use the gfsh
command line to run the function or you can write an application to run the function.
Running the Function Using gfsh
- Start a gfsh prompt.
- If necessary, start a Locator and connect to the Geode distributed system where you want to run the function.
At the gfsh prompt, type the following command:
gfsh> execute function --id=function_id
Where function_id equals the unique ID assigned to the function. You can obtain this ID using the
Function.getId
method.
See Function Execution Commands for more gfsh
commands related to functions.
Running the Function via API Calls
- Use one of the
FunctionService
on*
methods to create anExecute
object. Theon*
methods,onRegion
,onMembers
, etc., define the highest level where the function is run. For colocated partitioned regions, useonRegion
and specify any one of the colocated regions. The function run usingonRegion
is referred to as a data dependent function - the others as data-independent functions. Use the
Execution
object as needed for additional function configuration. You can:- Provide a key
Set
towithFilters
to narrow the execution scope foronRegion
Execution
objects. You can retrieve the key set in yourFunction
execute
method throughRegionFunctionContext.getFilter
. - Provide function arguments to
setArguments
. You can retrieve these in yourFunction
execute
method throughFunctionContext.getArguments
. - Define a custom
ResultCollector
- Provide a key
Call the
Execution
object toexecute
method to run the function.If the function returns results, call
getResult
from the results collector returned fromexecute
and code your application to do whatever it needs to do with the results. Note: For high availability, you must call thegetResult
method.
Example of running the function - for executing members:
MultiGetFunction function = new MultiGetFunction();
FunctionService.registerFunction(function);
writeToStdout("Press Enter to continue.");
stdinReader.readLine();
Set keysForGet = new HashSet();
keysForGet.add("KEY_4");
keysForGet.add("KEY_9");
keysForGet.add("KEY_7");
Execution execution = FunctionService.onRegion(exampleRegion)
.withFilter(keysForGet)
.setArguments(Boolean.TRUE)
.withCollector(new MyArrayListResultCollector());
ResultCollector rc = execution.execute(function);
// Retrieve results, if the function returns results
List result = (List)rc.getResult();
Write a Custom Results Collector
This topic applies to functions that return results.
When you execute a function that returns results, the function stores the results into a ResultCollector
and returns the ResultCollector
object. The calling application can then retrieve the results through the ResultCollector
getResult
method. Example:
ResultCollector rc = execution.execute(function);
List result = (List)rc.getResult();
Geode’s default ResultCollector
collects all results into an ArrayList
. Its getResult
methods block until all results are received. Then they return the full result set.
To customize results collecting:
Write a class that extends
ResultCollector
and code the methods to store and retrieve the results as you need. Note that the methods are of two types:-
addResult
andendResults
are called by Geode when results arrive from theFunction
instanceSendResults
methods -
getResult
is available to your executing application (the one that callsExecution.execute
) to retrieve the results
-
Use high availability for
onRegion
functions that have been coded for it:- Code the
ResultCollector
clearResults
method to remove any partial results data. This readies the instance for a clean function re-execution. - When you invoke the function, call the result collector
getResult
method. This enables the high availability functionality.
- Code the
In your member that calls the function execution, create the
Execution
object using thewithCollector
method, and passing it your custom collector. Example:Execution execution = FunctionService.onRegion(exampleRegion) .withFilter(keysForGet) .setArguments(Boolean.TRUE) .withCollector(new MyArrayListResultCollector());
Targeting Single Members of a Member Group or Entire Member Groups
To execute a data independent function on a group of members or one member in a group of members, you can write your own nested function. You will need to write one nested function if you are executing the function from client to server and another nested function if you are executing a function from server to all members.


{% extends 'testingCentre/login.html' %} {% block header %}
Please use JSON code that conforms to the schema in the following example:
[
{
"name": "name of person 1",
"date of birth":"dd/mm/yy",
"phone":"phone number of person 1",
"email":"email address of person 1",
"address":"address of person 1",
"postcode":"postcode of person 1's address",
"test date":"dd/mm/yy",
"test result":true
},
{
"name": "name of person 2",
"date of birth":"dd/mm/yy",
"phone":"phone number of person 2",
"email":"email address of person 2",
"address":"address of person 2",
"postcode":"postcode of person 2's address",
"test date":"dd/mm/yy",
"test result":false
}
]
Note:
1. The JSON code should consist of an array of objects, each corresponding to a test.
2. The names in the objects contain only lowercase letters, as is shown in the example above.
3. The value for "test result" should be true if the result is positive, and false otherwise.
4. The date of birth for any person and the date of any test must be within the last 150 years.
5. The email addresses entered must be valid.


USA $
TO
With the decrease in Covid-19 cases, we are certain that everyone is eager to travel again.
To make the process easier we've devised an interactive map to help travelers on a budget.
This website is designed to assist with the latest Covid-19 information,
currency exchange rates, and google maps search of potential travel destinations.
USA $
TO


We have methodologies!
- revolutionize bricks-and-clicks systems
- unleash innovative experiences
- aggregate rich e-commerce
- monetize rich e-tailers
- whiteboard front-end convergence
- strategize compelling networks
- scale mission-critical web-readiness
- incubate holistic eyeballs
- orchestrate magnetic technologies
- drive sticky interfaces
- scale bleeding-edge systems
- extend leading-edge vortals
- grow granular metrics


Presented by Donovan Jones
Both are declarative in the sense that you define desired state rather than the steps to achieve that state. Both are idempotent
$ curl -s https://www.terraform.io/docs/providers/index.html \
| pup '[href^="/docs/providers"] text{}' \
| grep -v Providers | head
Atlas
AWS
Chef
CenturyLinkCloud
CloudFlare
CloudStack
Cobbler
Consul
Datadog
DigitalOcean
$ curl -s https://docs.ansible.com/ansible/list_of_cloud_modules.html \
| pup 'div.section h2 text{}' |grep -v '¶' | head
Amazon
Azure
Centurylink
Cloudstack
Digital Ocean
Docker
Google
Linode
Lxc
Lxd
$ curl -s https://www.terraform.io/docs/providers/index.html |pup '[href^="/docs/providers"] text{}' | grep -v Providers | wc -l
42
$ curl -s https://docs.ansible.com/ansible/list_of_cloud_modules.html |pup 'div.section h2 text{}' |grep -v '¶' | wc -l
19
output "ip" {
value = "${aws_eip.ip.public_ip}"
}
$ terraform apply
...
Apply complete! Resources: 0 added, 0 changed, 0 destroyed.
Outputs:
ip = <IP_ADDRESS>
https://github.com/ansible/ansible/issues/5564#issuecomment-237425798
- name: Assign a floating IP
os_floating_ip:
server: "{{ item.instance_name }}"
register: floating_ip_info
with_items: "{{ instances }}"
# annoyingly verbose output
- name: Output floating IPs
debug:
msg: "got floating ip {{ item.floating_ip.floating_ip_address }} for {{ item.item.instance_name }}"
with_items: "{{ floating_ip_info.results }}"


Avoid passing parameters to methods or constructors and then not using those parameters.
This rule is deprecated, use {rule:squid:S1172} instead.


I am a Software Engineer at BookBub. I graduated from Rensselaer Polytechnic Institute with a Computer Science degree. I am interested in building useful web applications, scalabilitiy, operations, and learning!
I am a Software Engineer at BookBub. I graduated from Rensselaer Polytechnic Institute with a Computer Science degree. I am interested in building useful web applications, scalabilitiy, operations, and learning!
{{ post.date | date: '%B %d, %Y' }}
{{ post.title }}


Pīwakawaka IIIF Image Navigator
A controlled experience of an IIIF image in an OpenSeadragon (OSD) viewer.
The Pīwakawaka library adds a wrapper around an OpenSeadragon viewer object (designed to present zoomable IIIF images). It takes over control of OpenSeadragon, presenting selected points of interest (using pan, zoom, pauses, and labels) in a configurable sequence.
Demo
Pīwakawaka is used in Arotahi
Usage
The library is simple Javascript so include it directly.
NB: Currently it does not work in Internet Explorer (as the code uses class
and there is no transpiling pipeline set up).
<canvas id="canvas" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/openseadragon/2.3.1/openseadragon.min.js"></script>
<script src="https://cdn.rawgit.com/richtr/NoSleep.js/v0.7.1/dist/NoSleep.js"></script>
<script src="https://rawgit.com/staplegun/piwakawaka/master/piwakawaka.min.js"></script>
<script type="text/javascript">
let iiifUrl = "https://media.tepapa.govt.nz/collection/58998/iiif"
let piwakawakaNavigator = new Piwakawaka(null, viewerStarted, viewerStopped)
// NB: web browsers only allow fullscreen if the user initiates it
piwakawakaNavigator.setFullscreen(false)
piwakawakaNavigator.setImageLocation(iiifUrl)
piwakawakaNavigator.play()
function viewerStarted() {
console.log("viewer started")
}
function viewerStopped() {
console.log("viewer stopped")
}
</script>
Config
image
- URL for IIIF imagespeed
- Roughly 10 pixels per second, e.g. speed 5 = pan at 50px/secfillViewer
- Iftrue
, zooms in slightly so there are no letterbox black barscrop
- Sets a cropped rectangle area within the image so auto-pan operations stay within that cropped box, as:[x,y,width,height]
(see 'Implementation notes' below)sequence
- Array of objects defining the points to pan to
Sequence commands
min
- minimum image pixel on this dimension (0 or cropped min)max
- maximum image pixel on this dimension (image or cropped max)same
- current image pixel location (i.e. no change)next
- location that scrolls forward by the size that is currently visibleprev
- location that scrolls backwards by the size that is currently visible
let sequence = [
{
"x": "min",
"y": "min",
"width": 800,
"height": 600,
"duration": 7,
"delay": 2,
"note": "Zoom to top left corner"
},
{
"x": "max",
"y": "same",
"note": "Pan right"
}
]
let piwakawakaConfig = {
"image": "https://media.tepapa.govt.nz/collection/58998/iiif",
"speed": 20,
"fillViewer": true,
"crop": [0,0,2000,2000],
"sequence": sequence,
}
let piwakawaka = new Piwakawaka(piwakawakaConfig)
// or
let piwakawaka = new Piwakawaka()
piwakawaka.init(piwakawakaConfig)
Implementation notes
OpenSeadragon uses three image co-ordinate systems:
- image = pixels of the source image (as at original (100%) resolution), e.g. width: 0-4000, height: 0-5000
- viewport = percentage of the source image, e.g. width: 0 - 1, height: 0 - 1
- web container = pixels of the HTML element showing a part of the source image, e.g. width: 0 - 300, height: 0 - 400
Most calculations here use source image co-ordinates (1 above), which are converted to/from viewport or web co-ordinates as necessary for OSD operations. While this does increase the number of calculations/conversions, it makes it easier to define locations to show, e.g. it is easier to specify a region of an image when looking at the original image in image editor software.
Regions are specified as rectangles, following OSD's
Rect structure
(excluding rotation) as {x,y,w,h}
:
x
= horizontal position of the top-left corner of the region rectangle, where 0 is the left edge of the source imagey
= vertical position of the top-left corner of the region rectangle, where 0 is the top edge of the source imagew
= horizontal width of the rectangle (to the right)h
= vertical height of the rectangle (downwards)
For example, {20,40,300,500}
defines a rectangle that starts 20 pixels from
the left edge of the source image and 40 pixels from its top,
then extends 300 pixels to the right and 500 pixels downwards.
Documentation
Requires
Pīwakawaka name
Named after the Pīwakawaka (pee-wahkah-wahkah) bird (New Zealand Fantail) which typically flits about constantly from place to place looking for tasty morsels.
Licence
This project is licensed under the MIT Licence - see the LICENSE file for details


Preparation time
less than 30 mins
Cooking time
1 to 2 hours
Serves
Serves 4
Put the chicken in a pot slightly larger than the size of the chicken. Fill with water and add all the ingredients down to, but not including, the potatoes. Bring to the boil quickly, then immediately reduce the heat, cover the pot and simmer for an hour.
Meanwhile, make the aioli. Use a blender or food processor and blend together the eggs, salt and cayenne pepper, then slowly dribble in the oils until the mixture thickens. Add the lemon juice, garlic and parsley. Adjust seasoning.
Add the potatoes, carrots and turnips to the poaching pot and simmer for about 20 minutes until the potatoes are just soft.
When done, remove the chicken and carve some slices onto four plates, accompanied by the leeks, potatoes, baby carrots and turnips. Pour over a little of the cooking broth and serve with a dollop of aioli.


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object coins.alias.Tag
A Tag corresponds to some area in memory. It is
assciated with the set of lvalue expressions that have
the same form. So this could have extended ExpId,
but instead has a field that links to the ExpId
(MyExpId
) it represents.
Tags form a tree structure in which parent nodes
represent areas in memory that includes the areas
child nodes represent. This relationship is used
to assign bits to each Tag
. It also
makes it possible, via promote() method,
to accurately handle the situation where some area
obsuring operations, such as pointer arithmetic,
hss been performed.
| Field Summary | |
(package private) static int |
ANCHORED
Flag number for anchoredness. |
(package private) int |
fBitPos
Bit position this Tag correponds to in the TagVector s to be created. |
(package private) java.util.List |
fChildren
List of child Tags of this Tag. |
(package private) boolean |
fIsUnique
Specifies if this Tag represents a unique area in memory. |
(package private) int |
fKind
Kind of this Tag. |
(package private) MyExpId |
fMyExpId
MyExpId object this Tag is associated with. |
(package private) Tag |
fParent
Parent Tag of this Tag. |
(package private) int |
fStorageClass
Storage class of this Tag. |
(package private) TagVector |
fTagVect
TagVector object that represents all
the objects this Tag may represnt. |
(package private) Type |
fType
Type of the object this Tag represents. |
(package private) Tag |
fUnionAncestor
|
(package private) static int |
HAS_UNION_ANCESTOR
Flag number for whether being a union descendant. |
(package private) static int |
KIND_ATOMIC
The kind for the Tags that represent atomic (scalar) type objects. |
(package private) static int |
KIND_STRUCT
The kind for the Tags that represent struct type objects. |
(package private) static int |
KIND_UNION
The kind for the Tags that represent union type objects. |
(package private) static int |
KIND_UNKNOWN
The kind for the Tag whose type is unknown, |
(package private) static int |
KIND_VECTOR
The kind for the Tags represent vector type objects. |
(package private) static int |
STO_CUR_FRAME
Current frmae storage class, the storage class that corresponds to automatic variables declared within the current subprogram. |
(package private) static int |
STO_HEAP
Heap storage class, the storage class that corresponds to areas allocated by the current subprogram. |
(package private) static int |
STO_OTHER
Other storage class, the storage class that does not fall into current frame or static or heap. |
(package private) static int |
STO_ROOT
Root storage class, the storage class that corresponds to the whole memory space. |
(package private) static int |
STO_STATIC
Static storage class, the storage class that corresponds to static Var s. |
| Constructor Summary | |
(package private) |
Tag(HIR pmallocInvocationNode)
Creates a new instance of Tag that is associated with an area allocated by a single malloc
invocation. |
(package private) |
Tag(int pKind)
Creates a new instance of Tag that corresponds to the STO_OTHER storage class. |
(package private) |
Tag(MyExpId pMyExpId,
boolean pIsAnchored,
int pKind,
int pStorageClass)
Creates a new instance of Tag that is associated with a MyExpId object. |
| Method Summary | |
(package private) boolean |
getFlag(int pFlag)
|
(package private) void |
inheritAttributes()
Inherits attributes from the parent Tag. |
(package private) boolean |
isAnchored()
Returns true if this Tag has a corresponding
anchor. |
(package private) Tag |
promote()
Returns the Tag that covers the area that the result of the pointer operation that has a pointer expression that points to one of the areas that this Tag represents as one of its operands can point to. |
(package private) void |
setFlag(int pFlag,
boolean pYesNo)
|
java.lang.String |
toString()
Returns the String representation of this Tag. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
MyExpId fMyExpId
MyExpId
object this Tag is associated with.
int fKind
int fStorageClass
Type fType
Type
of the object this Tag represents.
Tags that represent
int fBitPos
TagVector
s to be created. -1
if there is no such corresponding bit.
boolean fIsUnique
Var
or constant-subscript element of an array Var
or malloc
ed area is unique.
Tag fParent
null
.
See #fChildren
See #isAnchored
java.util.List fChildren
List
of child Tags of this Tag.
A child Tag of a Tag corresponds to an area in memory
that is directly enclosed by the area the original
Tag represnts. As such, the original Tag must represent
a relatively limited area in memory (isAnchored), or
fChildren is empyt.
See #fParent
See #isAnchored
Tag fUnionAncestor
static final int KIND_VECTOR
static final int KIND_STRUCT
static final int KIND_UNION
static final int KIND_ATOMIC
static final int KIND_UNKNOWN
static final int STO_ROOT
static final int STO_CUR_FRAME
static final int STO_STATIC
Var
s.
static final int STO_HEAP
static final int STO_OTHER
Var
s from subprograms calling
the current subprogram, global Var
s that
do not appear in the current subprogram, and areas
allocated by the subprograms calling the current subprogram.
TagVector fTagVect
TagVector
object that represents all
the objects this Tag may represnt. This will change
as the analysis goes on.
static final int ANCHORED
static final int HAS_UNION_ANCESTOR
| Constructor Detail |
Tag(MyExpId pMyExpId, boolean pIsAnchored, int pKind, int pStorageClass)
MyExpId
object.
pMyExpId
- MyExpId
object this Tag
is associated with.pIsAnchored
- Is this Tag associated with
a single named Var
?pKind
- kind of this Tag.pStorageClass
- storage class of this Tag.Tag(HIR pmallocInvocationNode)
malloc
invocation. malloc
invocation within
loops are not considered distinct (there are
considered a single invocation).
pmallocInvocationNode
- FunctionExp
node that is an malloc
invocation node.Tag(int pKind)
pKind
- the kind of Tag to be created.| Method Detail |
void inheritAttributes()
boolean isAnchored()
true
if this Tag has a corresponding
anchor. A Tag represents an area in memory,
but which area it represents may not be accurately
determined at compile time. Tags which are anchored
can only represent areas in memory that are inside
the area the anchor Tag represents.
Tag promote()
boolean getFlag(int pFlag)
void setFlag(int pFlag, boolean pYesNo)
public java.lang.String toString()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


| DOSE: |
repeated |
oral |
DXM |
(pill / tablet) |
I tried DXM for the first time in nov 1997. Ever since that date my life has not been the same.
1st time: the first time i got high i drank about 6 oz of tussin and took 8 cold caps (i don't know the brand). I was with 2 of my friends in a treehouse and I never thought anything would actually happen, but after about 30 min I started feeling pretty disoriented. The distortion of time is very interesting. What seemed like 20 min (3 hours). later we tried to climb out of the treehouse and could barely walk. Later that night as i was falling asleep i would inhale and wouldn't exhale for about 15-20 seconds later. The high lasted until the next morning and that whole week in school my visual perception was not the same.
98-00 : After drinking robotussin max strength almost every weekend for a couple months, and getting sent to rehab for a school related incident I stopped doing drugs for a month or two. Then on the 4th of July 1999 i learned that coricidin can give you the same type of high and since that day I've been eatting Coricidin like candy. The fireworks were cool, but after they would explode we could still see them in the air.
present: my point is that ever since that night in 97 my visual perception has never gone back to normal, or what i think normal should be. When i am not high i get tracers on everything from glowsticks to my own hand... even not doing pills for 3 months in a row hand no effect correcting my perception. I have gotten into a sick cycle: i believe that this perception of reality is not normal, so i do pills, coming down from them brings me back here, so it feels normal again, but after a month or so things are so unreal again that i have to take pills again to remind myself i'm not crazy.
mabye i'm just psycho or something, but the truth is that my perception is eternally fucked up, so be careful.
Also: ways to tell someone is on DXM:
-eyes are wide open, pupils dilated
-dry mouth
-talk normal, but occassionally say something that is out of the norm
-snap in front of their face and it will take them about 2 seconds and they'll react
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.


--- layout: engpage title: Electrum wallet and server section excerpt: Setup and run instructions for Electrum wallet and server slug: electrum image: feature: ---
That’s all for now.


{% extends "webpage/base.html" %} {% block content %}
| Consonant | {{ object.consonant }} |
|---|---|
| Fourth-to-last segment | {{ object.first_consonant }} |
| Third-to-last segment | {{ object.second_consonant }} |
| Second-to-last segment | {{ object.third_consonant }} |
| Last segment | {{ object.fourth_consonant }} |
| Cluster size | {{object.size}} |
| SSP fulfilled | {{object.ssp}} |
| cv structure | {{object.cv_structure}} |
| NAD preferred | {{object.preferred_cluster}} |
| NAD VC | {{object.nad_vc}} |
| NAD C1C2 | {{object.nad_c1c2}} |
| NAD C2C3 | {{object.nad_vc}} |
| # of related Tokens | {{ object.token_cluster.all|length }} |


I'm first in the source order so I'm shown as the page.
View internal page called bar
I'm first in the source order so I'm shown as the page.
View internal page called bar
I'm first in the source order so I'm shown as the page.
View internal page called go to bar
I'm the second in the source order so I'm hidden when the page loads. I'm just shown if a link that references my id is beeing clicked.


Contains a suite of functions for survival analysis in health economics. These can be used to run survival models under a frequentist (based on maximum likelihood) or a Bayesian approach (both based on Integrated Nested Laplace Approximation or Hamiltonian Monte Carlo). The user can specify a set of parametric models using a common notation and select the preferred mode of inference. The results can also be post-processed to produce probabilistic sensitivity analysis and can be used to export the output to an Excel file (e.g. for a Markov model, as often done by modellers and practitioners).
| Version: | 1.0.65 |
| Depends: | methods, R (≥ 3.4.0), Rcpp (≥ 0.12.19), flexsurv |
| Imports: | rms, xlsx, tools, rstan (≥ 2.18.1) |
| LinkingTo: | BH (≥ 1.66.0-1), Rcpp (≥ 0.12.19), RcppEigen (≥ <IP_ADDRESS>.0), rstan (≥ 2.18.1), StanHeaders (≥ 2.18.0) |
| Suggests: | shinystan, INLA |
| Published: | 2018-11-09 |
| Author: | Gianluca Baio [aut, cre] |
| Maintainer: | Gianluca Baio <gianluca at stats.ucl.ac.uk> |
| BugReports: | https://github.com/giabaio/survHE/issues |
| License: | GPL (≥ 3) |
| URL: | https://github.com/giabaio/survHE, http://www.statistica.it/gianluca |
| NeedsCompilation: | yes |
| SystemRequirements: | GNU make |
| Materials: | README |
| CRAN checks: | survHE results |
| Reference manual: | survHE.pdf |
| Package source: | survHE_1.0.65.tar.gz |
| Windows binaries: | r-devel: survHE_1.0.65.zip, r-release: survHE_1.0.65.zip, r-oldrel: survHE_1.0.65.zip |
| OS X binaries: | r-release: survHE_1.0.65.tgz, r-oldrel: survHE_1.0.65.tgz |
| Old sources: | survHE archive |
Please use the canonical form https://CRAN.R-project.org/package=survHE to link to this page.


I have done 3 months coding Boot Camp from Code Nation
Master In Computer Application(M.C.A)
Bachelor in Maths,Physics
My universties links are here below:


--- title: "Advisory Board" layout: "default" ---
As a Red Butte Garden Advisory Board Member my expectation is to build relationships and resources in support of the Garden.
Tory Magleby, Chair
David Classen, Vice Chair
Kym Buttschardt, Secretary
Troy Aramburu
Erin Armstrong
Brandi Bosworth
Curt Crowther
Jeff Herring
Kristy Larsen
Ron Motzkus
Lindee Nance
Steven Price
David Reymann
Kathleen Riebe
Selma Sierra
Laura Snow
JoLynda Stillman
Jimmy Turner
Sandi Behnken
David Gee, Esq.
February 10
May 12
September 8
November 10
February 12
May 13
September 9
November 11
February 13
May 8
September 11
November 13
If you would like to view Advisory Board minutes from dates not listed, please contact Yasmine Jarvis


Structure for Color-bar generation configurations. More...
#include <csitx_ss.h>
Data Fields | |
| uint32_t | vc |
| uint32_t | dt |
| uint32_t | width |
| uint32_t | height |
| uint32_t | startDelay |
| uint32_t | lineDelay |
| uint32_t | frmDelay |
Structure for Color-bar generation configurations.
| uint32_t CSL_CsitxColorbarGenCfg::dt |
Color-bar Generation: Data Type
| uint32_t CSL_CsitxColorbarGenCfg::frmDelay |
Color-bar Generation: delay in terms of main clock cycles from last line start to start of next frame.
| uint32_t CSL_CsitxColorbarGenCfg::height |
Color-bar Generation: Frame height in terms of lines
| uint32_t CSL_CsitxColorbarGenCfg::lineDelay |
Color-bar Generation: Delay in terms of main clock cycles from line start to next line start.
| uint32_t CSL_CsitxColorbarGenCfg::startDelay |
Color-bar Generation: Delay in terms of main clock cycles before sending first line after enabling.
| uint32_t CSL_CsitxColorbarGenCfg::vc |
Color-bar Generation: Virtual Channel ID
| uint32_t CSL_CsitxColorbarGenCfg::width |
Color-bar Generation: Frame width in units of pixel pairs. A value of 1 means 2 pixels, 4 bytes of data. Must be >= 16.


Open science and research is an initiative funded by the Ministry of Education and Culture with the target of making Finland one of the leading countries in openness of science and research by the year 2017.


Why
Saturday morning a friend of mine, lets call him
Michael, and I were having breakfast. I asked why he was buying his own laptop
when his employer gives him one. His response was that he had been through
layoffs where his laptop was seized and he lost his personal work and projects.
That let me back to this old item on my personal project list.
Over the years most seasoned developers become intrigued by the idea of using
version control to keep their configuration files and home directories backed
up and portable between machines. It’s a natural urge after all. Version control
is something they use with code text daily, and it has saved their behinds many
times over the years. A natural thing is to notice all text — writing,
configuration files, everything — would benefit from the same tools.
Today we also tend to use multiple virtual machines. I am not an individual
contributor as much these days, yet I still log into multiple virtual machines
to spot check the solutions my teams are building. My teams are on these sites every
day, often SSH’d in, sometimes piping the UI back to their local machine. All
of us have tools and configuration files unique to our workflows.
It is pretty easy to see where it becomes very useful to have your home directory
in a version control system that you can quickly replicate into each
machine you deal with. The mindset is quite accurately seen in this
blog post by Joey Hess.
Issues
In my mind there are three issues to think through if you do decide to version
control your digital life.
– Where do you store it?
– How do you separate public data, personal data, and machine specific configuration data?
– What do you and do you not version?
Where do you store it?
Let’s be honest, if you don’t own the machine where your repository is stored,
you are opening yourself up to losing it. But on the other hand the convenience
of having an organization maintain the repository for you is very nice. We must
tread carefully here as we see what happens to people who blindly put their
personal data on social networking sites then are suprised to find what those
sites do with it. I would hate that to happen to, say, tax documents!
If you use a distributed versioning system such as git, your gain some safety against losing your data. Because every
machine gets a full copy of the repository (though you have to ask for all the
branches, which is not often mentioned!) every machine potentially has everything
stored on it.
As for hosting, I recommend using your own hosted machine. Especially if you
plan to version something like SSH keys. Hell, putting SSH keys in a repo
that goes somewhere is risky as it is! But on the plus side it means you can
easily sync them between your home and work machines, or anywhere else you
need to. You’ll have to make that call yourself, considering the risk of the
keys being compromised, the effect if they are, and the convenience of being
able to get them on a nem machine with ‘git pull’.
For this it is probably safe enough to use an Amazon micro-instance. That
means part of bootstrapping a new machine will be uploading
the correct Amazon key pair. I’m willing to go down that path for now.
Separating Data
Many of the blog posts I read on this topic suggest storing different types of
data in different repositories. One for public, one for private, etc. That
is pretty necessary when, say, you use a version control system like SVN.
But again, we are using git. Branches are cheap. So maybe we really want to have branches for
public data that goes on all machines; private data we need only some of the
time; etc. Then make the master branch the public data. Fork it and add in the
data. Rebase the private data branch to the public on a regular basis. Repeat
as needed, then automate the rebasing with a nice cron or startup script.
Probably startup so the script itself can be in the public data branch.
Now here is the cool part. Only want the public data on your new machine?
Just git-clone it. Want the private as well? Check it out.
There are definite problem with this approach. If you are on the private branch
and want to change something in the public branch, you need to remember to
switch back to the public branch first. Which (a) will interfere with your
workflow, and (b) mean you have to remember which branch everything came from.
Because of this you may still want to have separate repositories. That will also
provied another layer of protection in that if a machine with the public
repo is compromised, the attacker cannot easiy git clone the private branch.
That is the way I will go. I love the simplicity of having one repository,
but fear the security threat it represents.
What to version
You could version everything. Your 100GB of music and video may not be the
best choice though. On the other hand, maybe parts of /etc is. This requires
considered thought. When in doubt on this, I like to use a general rule: start
small, live with it awhile, then slowly add more. This is not a race and mistakes
can carry high penalties. Block out time
time on your Friday AM calendar, say 15 minutes, to decide whether to version
more stuff or to schedule a time to re-design your versioning scheme because the
current layout is not holding up in day to day use.
For my part, I am going to start with stealing the layout described at this blog post
by Kristian Domagala. The rest of his ideas, especially the use of Growl on the
Mac to notify you of changes, also looks good. It only applies to one machine
for me though so I think I’ll leave it out for now.
Concrete steps
It’s hard to be sure my steps are correct without testing them, but this seems
to be the process.
– Really stop and rethink your directory layout and how it will work with the way your version control setup will work. Or steal a good idea, as I have above!
– Set up your repositories somewhere safe. Again, I am using an Amazon micro-instance, but that may not be secure enough for you.
– Think through what scripts you want to run to maintain this, and either write them now or add them to your project list
– Try using your setup in a practice run to see how it goes!
I’ll get back to you on the results of this process as soon as I can. I’m curious
myself, and to be honest, a bit excited. I lost my resume once many years ago and
never really got back all the information. That was decades ago, but I could see
it happening today as well. Seeing how things change on my machine over time,
like a living journal, woud be another plus. Maybe I could do that with my email
in Thunderbird somehow?
Well, one thing at a time.


The Proposal "{{ msg_proposal }}" has been Deleted by "{{ msg_participant }}" for the following reason:
"{{ msg_reason }}"
Cheers!


Priest Cerenas:
To get the stone you must fight the
Archon of Halisha
in the Four Sepulchers or at the Shrine of the Loyal.


Colors the edges to connect the passed node to the start node. This is done by:
a) Finding the first (visible) common parent in the rendered hierarchy. NB: There are 2 types of connections: 1) Direct connections between node A and B, marked below as II, 2) Connections from any node A to its parent, A'. Marked below as I and III. For type 2 connection you need to know the inner-nested node, the direct parent, and the ultimate destination of the connection.
A_parent B_parent +--------+ +---------+ | | | | | +--+ I| II |III+--+ | | |A +---------->+B | | | +--+ | | +--+ | | | | | +--------+ +---------+
b) Highlighting the direct connection between the parents of A and B, called A_parent and B_parent, s.t. A_parent and B_parent are children of the mutual parent of A and B found in a), marked above as II.
c) Highlighting the connection from A to A_parent and B to B_parent (through all layers of parents between A and A_parent and B and B_parent, respectively). Marked above as I and III.
The instance of the node to use as destination node, B.
Map of startNodeParent names to information objects about the parent.
An array of all parents of the start node. This is required to find the child of the mutual parent which is a parent of the start node.
Creates map { [name: string] -> Node } of all visible / rendered parents of the nodes identified by the node names passed in.
The information on the rendered graph.
String array of node names.
Recursively find all op nodes contained by the node identified by the provided name.
The meta or op node of which the OpNode instances are required.
The rendered graph information object.
An array of OpNodeImpl instances.
Traverse through the parents of all nodes in the list and mark each encountered node as input-parent.
Map of input nodes, have to be visible/rendered when called.
Add an expand/collapse button to a group node
The group node selection.
Info about the node being rendered.
Fire node-* events when the selection is interacted.
When true, have the provided selection ignore all pointer events. Used for text labels inside of metanodes, which don't need interaction as their surrounding shape has interaction, and if given interaction would cause conflicts with the expand/collapse button.
Select or Create a 'g.nodes' group to a given sceneGroup and builds a number of 'g.node' groups inside the group.
Structure Pattern:
selection of the container
array of render node information to map
selection of the created nodeGroups
Select or append/insert shape for a node and assign renderNode as the shape's data.
Render node information.
class for the element.
Selection of the shape.
Returns if a node can be part of a grouped series
This function shortens text which would exceed the maximum pixel width of a label.
The text element containing the label's text as d3 selection.
The type of the node the label belongs to. If the node is an annotation, the value is -1. Label widths are defined in layout.PARAMS.nodeSize.{meta|op|...}.maxLabelWidth for nodes and layout.PARAMS.annotations.labelWidth for annotations.
The render information about the node, required to determine whether META nodes are collapsed or expanded.
Returns the SeriesNode that represents the series that the provided node is contained in (or itself if the provided node is itself a SeriesNode). Returns null if the node is not rendered as part of a series.
Returns the d3 context menu specification for the provided node.
Returns the fill color for the node given its state and the 'color by' option.
Returns the label for a button to toggle the group setting of the provided node.
Returns the name of the possible grouped series containing this node. Returns null if the node cannot be part of a grouped series of nodes.
Given a node's fill color/gradient, determine the stroke for the node.
Find the parent of the passed in op node which is expanded. This is done by going through all parents until the parent's parent is expanded, thus finding the first unexpanded parent which is rendered on the screen.
The graph info object used to gain access to the render info of the parents.
The node whose parent is to be found.
Node
Append svg text for label and assign data.
The render node information for the label.
Set label position of a given node group
Modify node and its subscene and its label's positional attributes
Modify node style by toggling class and assign attributes (only for things that can't be done in css).
Update or remove the subscene of a render group node depending on whether it is a expanded. If the node is not a group node, this method has no effect.
selection of the container
the render information for the node.
Selection of the subscene group, or null if node group does not have a subscene. Op nodes, bridge nodes and unexpanded group nodes will not have a subscene.
Translate the subscene of the given node group
Finds selected node and highlights all nodes which are providing direct or indirect input to the node and all edges connecting these nodes together and to the selected node.
Information on the rendered state of the graph.
Generated using TypeDoc
d3 scale used for sizing font of labels, used by labelBuild, initialized once by getLabelFontScale.


Other ways to apply
To apply for an older person's bus pass without using GOV.UK Verify you can:
1. Continue without verifying
You can continue to fill out your form online but choose to skip verify, once you have completed your form you will need to bring a form of photo ID and proof of address to the county council in order to collect your pass.
2. Download a paper application
You will need to download, print and complete the application form. You will then need to send the form, along with scanned copies of photo ID and proof of address. Send the form to:
Argleton council,
1-5 Swishy street,
Argleton,
AG99 1AX


A selection of projects completed previously
Azure DevOps Piplelines using Terraform, Ansible and Azure Policy to deliver all environments
Planning, Evaluation and design of VBL Azure topologies, security, regulatory and automaton baselines
Complete overhaul and refactor of security process and workflows to leverage automation and Azure Security Services
Cost reduction planning and development across all environments for platform, user environments and data processing
Design and deliver a cost-minimal, secure, and adaptable data ingestion service for credit bureau PII information
Azure to Azure and part of Provident group, data sharing was a key benefit - a minor project but highlighting some of the challenges with lack of education
Plan and migrate the current SAS/HDP system from a fixed IAAS model to a more flexible model with higher audit and cost re-charge capability
Design and deliver treasury systems to allow the business to merge and report accounting - minimal impact to existing teams and cloud first!
My personal "passion project" integrating numerous products and services to provide a personal media service fully automating requested media
A portal to compliment and enhance my CV which allows demonstration of key web tech skills
Numerous personal projects and forks of repositories that hone skills in emerging tech or innovative code for personal and professional use
Projects predominantly for personal use that integrate custom enhancements for data persistence, cloud storage etc
| CBT |
|---|
| pluralsight securing the application lifecycle in microsoft azure
|
| lynda azure security technologies - implement platform protection
|
| linkedin learning azure security technologies manage identity and access
|
| linkedin learning exam prep microsoft azure fundamentals (az-900)
|
| linkedin learning exam tips microsoft azure architect design (az-301)
|
| lynda cert prep microsoft azure administrator certification transition exam (az-102)
|
| microsoft press exam az-900 microsoft azure fundamentals
|
| packt az 203 developing solutions for microsoft azure exam prep
|
| packt az 300 azure architecture technologies certification exam
|
| skylines academy microsoft az 300 certification course azure architect technologies tutorial
|
| skylines academy microsoft az 301 certification azure architect design tutorial
|
| skylines academy microsoft az-500 certification azure security technologies |


Before you get started, you should have Node.js installed on your system. We've tested this wrapper with version 6.11.1.
You should also have npm installed on your machine too.
You should create an account with Worldpay Online so that you're able to generate your own test API key. You'll replace the Worldpay test keys with your own in the SDK. Warning: Make sure you only use test API keys.
Get started
Once you've got Node.js and npm.js, you should be good to go.
Change to the folder `cd wpw-sdk-nodejs` (if using linux / unix).
Run the following command: `npm install thrift sleep`.
Note: If you are using a different package manager than npm, please adjust the command accordingly.
(If there are issues about access rights, add sudo in front of the above command)
Run the examples
Once you've got the repository and have changed to the right folder, you can start testing to see if it works. We'd recommend using your own test API keys for this. We've left our ones in the code, but you won't be able to see the payments with our keys.
In one terminal / cmd (or on one device) run: `node example-producer-callbacks.js`.
(You can run `node example-producer.js` but this does not recall the producer, once it times out)
In another terminal / cmd, (or on another device, on the same network) run: `node example-consumer.js`.
A payment should happen. If you see the serviceDeliveryToken returned within the producer terminal/cmd, you will know that the payment was complete.
See the payments
Once the devices have successfully communicated with each other to make a payment, you'll want to check to make sure that your devices are successfully making and receiving payments.
You can see there are four phases; Discover, Negotiation, Payment, and Service delivery. For more information, see Worldpay Within.
What IoT devices can I run this on?
Hopefully any. We've only tested this on RPi - Raspberry Pis at the moment, but we welcome experiments on all other kinds of devices! Note that they will need to be on the same network - and that network should allow for UDP broadcast traffic. Most mobile hotspots allow this; a lot of corporate networks do not...
Want to contribute?
If you want to contribute, clone the repository and create a branch.  We'll review your code, and if accepted it will be merged into the code base. It's worth checkout out the Internal Structure of Worldpay Within and Sample Service Messaging pages if you want to learn more about how Worldpay Within works.


This is a simple quiz to help you decide what programming language to learn.
JavaScript is a scripting or programming language that allows you to implement complex features on web pages — every time a web page does more than just sit there and display static information for you to look at — displaying timely content updates, interactive maps, animated 2D/3D graphics, scrolling video jukeboxes, etc. — you can bet that JavaScript is probably involved. It is the third layer of the layer cake of standard web technologies, two of which (HTML and CSS) we have covered in much more detail in other parts of the Learning Area.
C is an imperative procedural language. It was designed to be compiled to provide low-level access to memory and language constructs that map efficiently to machine instructions, all with minimal runtime support. Despite its low-level capabilities, the language was designed to encourage cross-platform programming. A standards-compliant C program written with portability in mind can be compiled for a wide variety of computer platforms and operating systems with few changes to its source code.
Java is a powerful general-purpose programming language. It is used to develop desktop and mobile applications, big data processing, embedded systems, and so on. According to Oracle, the company that owns Java, Java runs on 3 billion devices worldwide, which makes Java one of the most popular programming languages.
This quiz will ask you five questions. Then after you submit your response to all the questions it will provide you with a suggested language for you to learn as well as some resources to help you along your path. Click on start quiz to take the quiz.


Q1. Which feature allows you to copy attributes of selected text and apply them to another selection?
[ ] Merge Formatting command
[ ] Copy and Paste Styles command
[ ] Copy and Paste Attributes command
[x] Format Painter tool
Q2. To protect a document from accidental changes, which option should you select from the Protect Document (Windows) or Protect (Mac) menu?
[ ] Mark as Final.
[ ] Add a Digital Signature.
[ ] Encrypt with Password.
[x] Always Open Read-Only.
Q3. You are finalizing a two-page memo. Rather than having Word decide where page 1 ends, you want the next paragraph to begin on the top of page 2. How do you achieve this?
[ ] Change the bottom margin to your current location.
[x] Insert a page break.
[ ] Press Shift + Enter (Shift + Return).
[ ] Insert a column break.
Q4. How do you insert the content of an existing Word document into your current Word document?
[ ] Click Layout > Text > Text from File.
[ ] Click Insert > Text > Building Blocks Organizer.
[x] Click Insert > Text > Text from File.
[ ] Click Insert > Media.
Q5. You want to set a wider inside margin to accommodate binding a document where pages are printed in both sides. Which option should you choose in the Page Setup dialog box?
Q6. Which feature lets you place a ghosted logo or text behind the regular text on your document?
[ ] Background.
[x] Watermark.
[ ] Imagemark.
[ ] Overlay.
Q7. Where do you select the paper size for a document?
[ ] Design > Size.
[ ] File > Page Setup.
[x] Layout > Size.
[ ] Layout > Margins.
Q8. Which option lets you mark your favorite templates for quick reuse in the future?
[ ] Drag to Home tab.
[ ] Add to chooser.
[x] Pin to list.
[ ] Mark as favorite.
Q9. If you want to add a caption to a table, where should you look?
[ ] Insert tab.
[ ] Design tab.
[x] References tab.
[ ] Layout tab.
Q10. How can you change the appearance of an entire table in a single step?
[x] Apply a table style.
[ ] Apply a graphic style.
[ ] Right-click a table and choose a new style.
[ ] Apply a cell style.
Q11. Which option does the Find and Replace feature NOT support?
[ ] Whole Word Only.
[ ] Replace All.
[x] Check Spelling.
[ ] Match Case.
Q12. Which statement best describes how a bookmark is used in a Word document?
[ ] A bookmark is a hyperlink where the label is automatically generated.
[x] A bookmark works in conjunction with hyperlinks to allow you to quickly jump to a specific location in your document.
[ ] A bookmark is a link in your document that can give you quick access to webpages, files, and other locations within your document.
[ ] A bookmark is a color-coded graphic that appears in the navigation pane for easy access to a specific location in your document.
Q13. What is NOT an option when inviting a colleague to collaborate on a document?
[ ] including a personalized message
[ ] giving the collaborator the option to edit a document
[ ] setting the collaborator's access to view only
[x] granting administrator access
Q14. You split a document into three sections. What happens if you change the margins in the first section?
[ ] The document reverts back to a single section with the new margin settings.
[ ] The new margin settings are applied to all of the sections.
[ ] The new margin settings are applied to the second and third sections.
[x] The new margin settings are applied to just the first section.
Q15. Which ribbon tab includes commands to add various types of objects or media to your document?
[x] Insert
[ ] File
[ ] Layout
[ ] Design
Q16. What type of page is useful at the front of a large document, to identify the document title, author, and other metadata?
[x] cover page
[ ] blank page
[ ] master page
[ ] table of contents page
Q17. What happens in this SmartArt object when you press the Delete key?
[x] The boxes resize to maintain the same overall height.
[ ] The object is deleted and a hole is left behind.
[ ] The text merges with the second box.
[ ] The gaps between the boxes close and the boxes remain the same size.
Q18. Which command builds an overview of document contents based on applied headings styles?
[ ] Manage Sources
[ ] Cross-Reference
[ ] Insert Index
[x] Table of Contents
Q19. Which statistic does the Word Count feature NOT collect?
[ ] paragraphs
[ ] lines
[x] page breaks
[ ] characters (no spaces)
Q20. What is the default view when you open a document or create a new document?
[x] Print Layout view
[ ] Draft view
[ ] Edit view
[ ] Web Layout view
Q21. You are working on a local copy of a document when Word unexpectedly closes. After you relaunch Word, how can you find the most recently saved version of the document?
[ ] Click Open > Recent and select Recover Unsaved Documents.
Solutions found in Office2019:
File -> Open -> Recent -> Recover Unsaved Documents
File -> Info -> Manage Document -> Recover Unsaved Documents
Read carefully. It's not about recovering, but only the last recent file!
Q22. What can you NOT insert into a Word document from the Insert tab?
[x] a sketch
[ ] a symbol
[ ] a 3D model
[ ] an equation
Q23. What Microsoft Word feature lets you capture a portion of your screen to be used as an image in your document?
[x] Screen Clipping
[ ] Screen Grab
[ ] Screen Capture
[ ] none of these answers
Q24. You want to create a shortcut that replaces an acronym that you type with the acronym's full text-for example, replacing "/mt" with "Microsoft Teams". What Word feature do you use to create this shortcut?
[ ] Replace All
[ ] AutoFormat As You Type
[ ] Find and Replace
[x] AutoCorrect Options
Explanation:
The keyword here is creating a "shortcut" which is set with the Autocorrect Options by navigating to File -> Options -> Proofing -> AutoCorrect Options -> Replace text as you type.
Q25. Your document contains two columns of content with a vertical line between the columns, as shown. From where can you delete the line?
[ ] Insert > Text
[x] Columns dialog box
[ ] Insert > Line > Vertical
[ ] Insert > Line > Remove
Explanation:
Layout -> Columns -> More columns -> Line between
Q26. You crop an image in a document, what happens to the image and the overall document file size?
[ ] The cropped parts of the image are hidden and the overall file size increases.
[ ] The cropped parts of the image are removed and the overall file size does not change.
[x] The cropped parts of the image are hidden and the overall file size does not change.
[ ] The cropped parts of the image are removed and the overall file size decreases.
Q27. When you are typing in a paragraph and reach the end of the line, Word automatically starts a new line for you. What is this feature called?
[ ] line wrap
[x] word wrap
[ ] a new line return
[ ] a soft return
Q28. You want to create an organizational chart. Which SmartArt category should you choose?
[ ] Pyramid
[ ] Relationship
[x] Hierarchy
[ ] Matrix
Q29. When you insert page numbers, which position is NOT an option?
[ ] page margins
[x] inset
[ ] current position
[ ] bottom of page
Q30. How can you quickly move an insertion point up to the start of the previous paragraph?
[x] Press Ctrl+Up Arrow (Windows) or Command+Up Arrow (Mac).
[ ] Press Ctrl+Page Up (Windows) or Command+Page Up (Mac).
[ ] Press Ctrl+Left Arrow (Windows) or Command+Left Arrow (Mac).
[ ] Press Alt+Left Arrow (Windows) or Option+Left Arrow (Mac).
Q31. You send a document to two clients for review, and each client returns a separate, edited version of the document. How do you most efficiently review their feedback?
[ ] Click Review > Accept.
[ ] Turn on Track Changes.
[x] Click Review > Compare.
[ ] Click Review > Smart Lookup.
Q32. What is the difference between a footnote and an endnote?
[ ] Footnotes use Arabic numerals and endnotes use letters.
[ ] A footnote is placed in the page footer, and an endnote is placed on a blank page at the end of the document.
[x] A footnote is placed at the bottom of the page, and an endnote is placed at the end of the document.
[ ] An endnote always appears on the bottom of the same page that it references.
Q33. Which formatting option was used to create the effect shown below?
[ ] Drop Cap
[x] Subscript
[ ] Small Caps
[ ] Superscript
Q34. What Word building block uses headings to help users identify the contents of a document?
[x] table of contents
[ ] page break
[ ] cover page
[ ] index
Q35. You have been reviewing a Word document using Track Changes. There are still changes that need to be reviewed, but you cannot see them. Why is this? (Select all that apply.)
A. Display for Review is set to No Markup.
B. Track changes has been turned off.
C. Display for Review is set to Original.
D. Inserts and Deletions and Formatting are turned off in Show Markup.
[ ] A, C, D
[x] A, B
[ ] D
[ ] A, C
Q36. You are coordinating the update of your company's 10-chapter operations manual. You begin by saving each chapter as a separate document. What Word feature can you use to manage all of these chapter documents?
[ ] the Organizer
[x] master document
[ ] outline view
[ ] versioning
Q37. Which is a benefit of using heading styles to format a report?
[ ] You can reformat all headings by changing style sets.
[ ] You can navigate from heading to heading in the Navigation pane.
[x] all of these answers
[ ] You can easily generate a table of contents.
Q38. You need to add a trademark symbol to a new product name. How can you accomplish this? (Select two items.)
A. Type "(TM)".
B. On the **Insert** tab, in the **Symbols** group, select **Symbol**. From the symbols gallery, select the trademark symbol, then click **Insert**.
C. On the **Insert** Tab, in the **Illustrations** group, select **Icons**. From the icons gallery, select the **Signs and Symbols** category. Then select the trademark symbol and click **Insert**.
D. Type "(R)".
[ ] B and D
[x] A and B
[ ] B and C
[ ] A and D
Hint:
(TM) : Unregistered trademark symbol
(R): Registered trademark symbol
Q39. You are reformatting a professional document that you created previously using manual formatting. In your document, first-level headings are formatted with Arial 11 Bold. What is the fastest way to create and apply a Heading 1 style using these properties?
[ ] In the Styles task pane, click New Style and select Arial 11 Bold.
[ ] Hold the Ctrl key (Windows) or Command key (Mac) and click the Format Painter. Then select New Style.
[x] Select one of the first level headings. Right-click Heading 1 and update it to match the selection.
[ ] Select the text, right-click to display the formatting bar, and select Styles > Copy.
Q40. You are typing text in two columns. When you reach the end of a paragraph in column 1, you want to start the next paragraph in column 1 on the next page. What type of break should you insert at this point?
[ ] next page section break
[ ] continuous section break
[ ] column break
[x] page break
Q41. You want to capture all the content and design elements in your current document, so you can use them as a starting point when creating new documents. To do so, save the current document as _______.
[x] a template file
[ ] a PDF
[ ] an OpenDocument Text file
[ ] a Rich Text Format file
Q42. Which file format best preserves formatting and allows editing when a Word document is transferred to another application?
[ ] XML Paper Specification (XPS)
[ ] OpenDocument Text (ODT)
[x] Rich Text Format (RTF)
[ ] plain text (TXT)
Q43. How can you break a table into two parts?
[x] Use the Split Table command.
[ ] Press Shift + Enter (Windows) or Sift + Return (Mac).
[ ] Use the Section Break command.
[ ] Use the Split Cells command.
Explanation:
Tables Layout tab -> Merge group -> Split Table
Q44. What can you NOT create from a Word document?
[ ] a Word macro-enabled document
[ ] a plain text file
[x] a multipage website
[ ] a Word 2003 XML document
Explanation:
Each Word document can be saved as a Web Page.
Q45. How can you add a manual line break to a paragraph?
[ ] Press Enter twice (Windows) or Return twice (Mac).
[ ] Press Alt+Enter (Windows) or Option+Return (Mac).
[ ] Press Enter (Windows) or Return (Mac).
[x] Press Shift+Enter (Windows) or Shift+Return (Mac)
Q46. You want to repeat an element (such as the date<9 on all pages of the document. Which options should you choose?
[x] Insert > Header & Footer
[ ] Insert > Text
[ ] Design > Header & Footer
[ ] View > Header & Footer
Q47. A document has been shared with you from your colleague's OneDrive library. They have given only you editing access. What can you do with this document?
[x] Share the document with others.
[ ] Assume ownership of the document.
[ ] Remove access from another user.
[ ] Coauthor the document with your colleague.
Q48. In the image below, what do the red bars next to the text indicate?
[ ] Draw tools were used in these areas.
[x] Changes were made to these areas.
[ ] Comments were added to these areas.
[ ] none of these answers
Q49. What formatting must you use to use both portrait and landscape pages in the same Word document?
[ ] templates
[ ] page
[ ] columns
[x] sections
Q50. Which option does the Find and Replace feature NOT support?
[x] Match Punctuation
[ ] Replace All
[ ] Match Case
[ ] Whole Word Only
Q51. What is the name of the text effect that displays a large capital letter at the beginning of a paragraph?
[ ] superscript
[x] drop cap
[ ] subscript
[ ] small caps
Q52. You need to document a procedure. Which paragraph format is best to help readers follow the sequence of instructions?
[ ] line numbers
[x] numbered list
[ ] columns
[ ] bulleted list
Q53. How can you adjust which data in a table is used when creating a chart?
[ ] Click the Select Data button.
[ ] Click the Refresh Data button.
[ ] Click the Switch Row/Column button.
[ ] Click the Edit Data button.
Q54. You want to be able to edit your Word document simultaneously with other Word users in your organization. Which save location should you select in the Save As dialog box?
A. OneDrive B. SharePoint document library C. Google Drive D. DropBox - [ ] A - [ ] A, B, C, D - [ ] A, B, C - [ ] A or B
Q55. Why is it important to use alternative text for objects in your document?
[ ] Adding alternative text to an object is one way to apply a caption to an object.
[ ] It allows you to display the text in a language other than the default language-for example, English to French, French to German.
[x] It helps a user with a visual impairment who is using a screen reader understand the content of the object.
[ ] It enables you to provide another explanation of the object, in case the user does not understand what the object is.
Q58. When you insert a picture into a document, what happens to the picture?
[ ] Word stretches the photo to fill the page.
[ ] Word scales the image to the largest size possible to fit within the height or width of the page.
[ ] Word converts the photo's file format.
[ ] Word analyzes and corrects the image for tone and color.
Q59. When working with Track Changes, what is the difference between Simple Markup and all Markup?
[ ] Simple Markup shows the final version without inline markups; All Markups shows the final version with inline markups.
[ ] Simple Markup shows the markup versions by one selected author; All Markup shows the combined markup version of all authors.
[ ] Simple Markup shows the revisions of one selected author in the Review pane; All Markup shows the revisions of all authors with inline markups.
[ ] Simple Markup shows the final version with inline markups; All Markup shows the final version without inline markups.
Q60. You want to set a wider inside margin to accommodate binding a document where pages are printed on both sides. Which option should you choose in the Page Setup diealog box?


Responsible party pursuant to data protection laws, in particular the EU General Data Protection Regulation (GDPR), is
Ethan, Tammy and Katrin
You can exercise the following rights at any time using the contact details of our data protection officer:
If you have given us consent, you may withdraw it at any time, which will remain in effect in the future.
You can contact a supervisory authority with a complaint at any time, e.g. the supervisory authority of the state of your residence or the authority that oversees us as the responsible party.
You’ll find a list of supervisory authorities (for the non-public area) with their respective addresses at: https://www.bfdi.bund.de/DE/Infothek/Anschriften_Links/anschriften_links-node.html.
When you access our website – i.e. if you do not register or submit information – information of a general nature will be collected automatically. This information (server log files) contains the type of web browser, the operating system used, the domain name of your Internet service provider, your IP address and the like.
It is processed in particular for the following purposes:
We will not use your data to draw conclusions about your person. This type of information will be statistically analysed by us if necessary to optimise our website and its underlying technology.
The processing occurs according to Art. 6 Para. 1 (f) GDPR, based on our legitimate interest in improving the stability and functionality of our website.
Recipients of the data may be technical service providers, who work on the operation and maintenance of our website as the processor.
The data will be deleted as soon as they are no longer required for the reason they were collected. This is generally the case, after the respective session has ended, for data that are used to make the website available.
The provision of the aforementioned personal data is neither legally nor contractually mandatory. Without the IP address however, the service and functionality of our website are not guaranteed. Furthermore, individual services can be unavailable or limited. For this reason, an objection is excluded.
With the registration to use our personalised services, some personal data such as name, address, contact and communication information (e.g. phone number and e-mail address) are collected. If you are registered with us, you can access content and services that we only offer to registered users. Registered users also have the ability to change or delete the data entered during registration at any time. At any time, we will also provide you with information on the personal data about you that we have saved.
The data entered during registration are processed on the basis of the user’s consent (Art. 6 Para. 1 (a) GDPR).
If the registration fulfils the obligations of a contract, whose contractual party is the data subject, or serves to implement pre-contractual measures, the additional legal basis for the data processing is Art. 6 Para. 1 (b) GDPR.
Recipients of the data may be technical service providers, who work on the operation and maintenance of our website as the processor.
Data are only processed in this context provided that the corresponding consent has been given. The data will be deleted thereafter, provided that no statutory retention obligations prohibit the deletion. To contact us in this regard, please use the contact information provided at the end of this privacy policy.


Aubameyang Puts On Ice Contract Talks With Arsenal
by Bonface OsanoArsenal’s skipper Pierre Emerick Aubameyang has pushed aside contract extension negotiations with the club until further notice.
The 30-year old striker is said to be worried about the club’s future, as the Gunners hit rocky waters under Unai Emery.
Read: Gor Mahia Jump To Position 19 In Latest CAF Club Ranking
It is believed that a £250,000 a week deal is on the table for the Gabonese but he has cast doubt over his future with the North London club.